歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

Live Ubuntu Backup V2.2,備份你的 Ubuntu 為可啟動的 squashfs 文件

lub ( Live Ubuntu Backup)。目前的版本是 2.2,新增支持 9.10 和 grub2。
下載 lub.zip 並解壓,然後拷貝到 /usr/local/bin 裡面就可以了。(要用 sudo cp)

把需要備份的系統啟動起來,然後在終端輸入
sudo lub -b
按照指示進行就可以了。(注意要先安裝 lupin-casper 等,腳本會提示你)

在備份目錄會產生用於直接啟動備份映像的內核和菜單文件等,看備份目錄裡的示例菜單就明白了。

恢復過程必須要先從備份文件引導到 live 環境裡,然後在終端執行
sudo lub -r
按照指示進行就可以了。

用 lub -h 可以查看幫助文檔和版本信息。

2.2 雙語版,支持 grub2
下載lub.zip

1.2 英文版,存檔留底
下載lub.sh.zip

幫助文檔:用 lub -h 查看
代碼: ubuntu@ubuntu-laptop:~$ lub -h
live ubuntu backup, 作者 billbear
本程序將幫助你備份運行中的 ubuntu 系統為一個可啟動的 squashfs 壓縮備份文件。
要恢復的時候, 從備份文件啟動並再次運行本程序。
可以把備份文件恢復到另一台機器。
可以把虛擬機裡的 ubuntu 遷移到真機。
可以把 wubi 安裝的系統遷移到真分區。

安裝:
只要拷貝此腳本到任何地方並賦予執行權限即可。
我喜歡把它放在 /usr/local/bin 裡面, 這樣每次運行的時候就不用寫絕對路徑了。

使用:
sudo 到此腳本的路徑 -b
是備份,而
sudo 到此腳本的路徑 -r
是恢復。
也可以用
sudo bash 到此腳本的路徑 -b

sudo bash 到此腳本的路徑 -r

注意不能用
sudo sh 到此腳本的路徑 -b

sudo sh 到此腳本的路徑 -r

備份:
程序依賴 squashfs-tools 來工作。
另外必須安裝 lupin-casper 才能做出可啟動的備份來。
在終端用如下命令來安裝它們:
sudo apt-get install squashfs-tools lupin-casper
而後就可以用這樣的命令來備份運行中的 ubuntu 系統了:
sudo 到此腳本的路徑 -b
如果這個腳本在 /usr/local/bin, 只要這樣
sudo lub -b
然後根據提示進行就可以了。
你可以指定存放備份的路徑, 以及需要排除的文件和目錄。
不必卸載移動硬盤, windows 分區, 或任何你手動掛載了的分區。它們將會自動被忽略。
因此你可以直接存放備份到移動硬盤, windows 分區等等。
小心: 你必須確定有足夠的空間來存放備份。
腳本將會生成啟動所需的另外幾個文件。
閱讀在備份存放目錄生成的 menu.lst,裡面會詳細告訴你如何從備份文件直接啟動。

恢復:
閱讀在備份存放目錄生成的 menu.lst,裡面會詳細告訴你如何從備份文件直接啟動。
啟動了 live ubuntu backup 之後, 打開一個終端輸入
sudo 到此腳本的路徑 -r
如果在備份時已經把此腳本放到了 /usr/local/bin, 現在只需敲入
sudo lub -r
並根據提示進行恢復就可以了。
注意:此腳本並不提供分區功能(只能格式化分區但不能創建,刪除分區或調整分區大小)。
只能恢復備份到已有的分區。
因此建議在備份前安裝 gparted,這樣恢復時你就有分區工具可用了。
另外如果分區表有錯誤, 將不允許恢復備份,直到錯誤被修復。
你可以指定若干分區和它們的掛載點。
如果沒有 swap 分區, 可以為你創建一個 swap 文件 (如果你這樣要求的話)。
會自動生成新的 fstab 並安裝 grub。
如果有必要, 還可以改變主機名, 用戶名和密碼。

備份系統必須在系統正在運行的狀態下。
輸入 sudo lub -b 根據提示進行。
代碼: ubuntu@ubuntu-laptop:~$ sudo lub -b
將要備份系統。建議退出其他程序。繼續?(y/n)
y
指定一個空目錄 (絕對路徑) 來存放備份。可以從 Nautilus 文件管理器拖放目錄至此。可以使用移動硬盤。
如果不指定, 將會存放到 /home/ubuntu/backup-20090524

指定需要排除的文件/目錄, 一行寫一個。可以從 Nautilus 文件管理器拖放至此。以空行結束。

開始備份?(y/n)
y
Parallel mksquashfs: Using 1 processor
Creating little endian 3.1 filesystem on /home/ubuntu/backup-20090524/backup20090524.squashfs, block size 131072.
[=========================================================== ] 92925/93032  99%File /tmp/bind/var/log/ConsoleKit/history changed size while reading filesystem, attempting to re-read
[=========================================================== ] 92930/93032  99%File /tmp/bind/var/log/auth.log changed size while reading filesystem, attempting to re-read
[=========================================================== ] 93001/93032  99%File /tmp/bind/var/log/messages changed size while reading filesystem, attempting to re-read
[=========================================================== ] 93006/93032  99%File /tmp/bind/var/log/syslog changed size while reading filesystem, attempting to re-read
[=========================================================== ] 93013/93032  99%File /tmp/bind/var/log/user.log changed size while reading filesystem, attempting to re-read
[============================================================] 93032/93032 100%
Exportable Little endian filesystem, data block size 131072, compressed data, compressed metadata, compressed fragments, duplicates are removed
Filesystem size 789719.00 Kbytes (771.21 Mbytes)
   40.17% of uncompressed filesystem size (1966107.66 Kbytes)
Inode table size 1155385 bytes (1128.31 Kbytes)
   29.20% of uncompressed inode table size (3957443 bytes)
Directory table size 1113938 bytes (1087.83 Kbytes)
   46.99% of uncompressed directory table size (2370406 bytes)
Number of duplicate files found 8348
Number of inodes 115900
Number of files 87876
Number of fragments 6597
Number of symbolic links  14964
Number of device nodes 95
Number of fifo nodes 3
Number of socket nodes 35
Number of directories 12927
Number of uids 14
   root (0)
   syslog (101)
   ubuntu (1000)
   daemon (1)
   polkituser (109)
   libuuid (100)
   lp (7)
   man (6)
   avahi-autoipd (104)
   gdm (105)
   news (9)
   messagebus (108)
   hplip (103)
   klog (102)
Number of gids 29
   video (44)
   audio (29)
   tty (5)
   kmem (15)
   disk (6)
   adm (4)
   daemon (1)
   dip (30)
   lp (7)
   fuse (104)
   shadow (42)
   ssl-cert (105)
   messagebus (117)
   crontab (107)
   mail (8)
   lpadmin (106)
   mlocate (108)
   utmp (43)
   ssh (109)
   games (60)
   polkituser (118)
   root (0)
   staff (50)
   libuuid (101)
   src (40)
   admin (121)
   avahi-autoipd (110)
   gdm (111)
   klog (103)
已備份至 /home/ubuntu/backup-20090524。請閱讀裡面的 menu.lst :)

看看備份出來的東西。除了備份文件本身,還有內核等用於直接啟動:
代碼: ubuntu@ubuntu-laptop:~$ ls /home/ubuntu/backup-20090524/
backup20090524.squashfs       menu.lst
initrd.img-2.6.28-11-generic  vmlinuz-2.6.28-11-generic

看看怎麼啟動備份文件-都寫在 menu.lst 的注釋裡了。
注:
可以把備份都放在內置硬盤啟動;
可以把備份都放在移動硬盤,從移動硬盤啟動;
也可以把內核放在內置硬盤,squashfs 放在移動硬盤,從內置硬盤引導內核啟動移動硬盤的備份)
代碼: ubuntu@ubuntu-laptop:~$ cat /home/ubuntu/backup-20090524/menu.lst
# 這個 menu.lst 是給 grub4dos 用的。稍作修改才能用於 gnu grub


# 如何在 windows 機器上直接啟動你的 backup20090524.squashfs:
# 從 http://download.gna.org/grub4dos 下載最新的 grub4dos
# 解壓下載的 grub4dos, 並拷貝其中的 grldr 和 grldr.mbr 到 c: 盤根目錄
# 把這個 menu.lst 也拷貝到 c: 盤根目錄
# 然後在任意分區根目錄建立一個 "casper" 目錄並拷貝 backup20090524.squashfs, initrd.img-2.6.28-11-generic, vmlinuz-2.6.28-11-generic 到它裡面
# 接著添加下面這行文字到 boot.ini 末尾 (不包含#號)
# c:\grldr.mbr="grub4dos"
##### 對於 Windows Vista, 可以自行建立一個 boot.ini 文件,寫上:
##### [boot loader]
##### [operating systems]
##### c:\grldr.mbr="grub4dos"
# 重啟選擇 grub4dos 即可


# 如何在 linux 機器上直接啟動你的 backup20090524.squashfs:
# 在任意分區根目錄建立一個 "casper" 文件夾 (注意 gnu grub 不能讀取 NTFS, 因此不能把 casper 放在那裡) 並拷貝 backup20090524.squashfs, initrd.img-2.6.28-11-generic, vmlinuz-2.6.28-11-generic 到它裡面
# 然後拷貝下面的兩個 Live Ubuntu Backup 啟動項到 /boot/grub/menu.lst 末尾並把 "find --set-root" 行改為 "root (hd?,?)" (你創建 "casper" 文件夾的那個分區)


default   0
timeout 10

title Live Ubuntu Backup 20090524
find --set-root /casper/vmlinuz-2.6.28-11-generic
kernel /casper/vmlinuz-2.6.28-11-generic boot=casper ro ignore_uuid
initrd /casper/initrd.img-2.6.28-11-generic

title Live Ubuntu Backup 20090524, Recovery Mode
find --set-root /casper/vmlinuz-2.6.28-11-generic
kernel /casper/vmlinuz-2.6.28-11-generic boot=casper ro single ignore_uuid
initrd /casper/initrd.img-2.6.28-11-generic
ubuntu@ubuntu-laptop:~$


要恢復,最好應該先把備份文件啟動起來。在其他環境恢復備份,不能預料可否成功。當然,用同版本的 livecd 引導恢復我們的備份理論上應該成功。下面是啟動了備份文件之後進行的恢復操作(其實也可以叫做安裝)
代碼: ubuntu@ubuntu:~$ sudo lub -r
將恢復你的備份。繼續? (y/n)
y
指定 squashfs 備份文件 (絕對路徑)。可以從 Nautilus 文件管理器拖放。如果你是從備份的 squashfs 啟動的, 直接回車即可, 將會使用本次啟動的 squashfs 文件。

將哪個分區作為 / ?
1) /dev/sda1 ntfs  5198MB      5) /dev/sda7 swap  625MB
2) /dev/sda10 swap  280MB      6) /dev/sda8 jfs  1464MB
3) /dev/sda5 reiserfs  206MB   7) /dev/sda9 ext2  1291MB
4) /dev/sda6 reiserfs  6087MB  8) /dev/sdb1 vfat  8015MB
#? 4
你選擇的是 /dev/sda6, 裡面現有這些文件/目錄:
bin   cdrom  etc   initrd.img  media  opt   root  selinux  sys   usr  vmlinuz
boot  dev    home  lib          mnt    proc  sbin  srv      tmp   var
確定?(y/n)
y
是否格式化此分區?(y/n)
y
格式化 /dev/sda6 為:
1) ext2
2) ext3
3) ext4
4) reiserfs
5) jfs
6) xfs
#? 3
將哪個分區作為 swap ?
1) /dev/sda1 ntfs  5198MB        6) /dev/sda8 jfs  1464MB
2) /dev/sda10 swap  280MB        7) /dev/sda9 ext2  1291MB
3) /dev/sda5 reiserfs  206MB     8) /dev/sdb1 vfat  8015MB
4)                        9) 無
5) /dev/sda7 swap  625MB        10) 無,並結束分區設定。
#? 7
你選擇的是 /dev/sda9, 裡面現有這些文件/目錄:
lost+found
確定?(y/n)
y
/dev/sda9 將被格式化為 swap.
將哪個分區作為 /home ?
1) /dev/sda1 ntfs  5198MB        6) /dev/sda8 jfs  1464MB
2) /dev/sda10 swap  280MB        7)
3) /dev/sda5 reiserfs  206MB     8) /dev/sdb1 vfat  8015MB
4)                        9) 無
5) /dev/sda7 swap  625MB        10) 無,並結束分區設定。
#? 6
你選擇的是 /dev/sda8, 裡面現有這些文件/目錄:
billbear
確定?(y/n)
y
是否格式化此分區?(y/n)
y
格式化 /dev/sda8 為:
1) ext2
2) ext3
3) ext4
4) reiserfs
5) jfs
6) xfs
#? 6
將哪個分區作為 /boot ?
1) /dev/sda1 ntfs  5198MB        6)
2) /dev/sda10 swap  280MB        7)
3) /dev/sda5 reiserfs  206MB     8) /dev/sdb1 vfat  8015MB
4)                        9) 無
5) /dev/sda7 swap  625MB        10) 無,並結束分區設定。
#? 3
你選擇的是 /dev/sda5, 裡面現有這些文件/目錄:
abi-2.6.28-11-generic         memtest86+.bin
config-2.6.28-11-generic      System.map-2.6.28-11-generic
grub               vmcoreinfo-2.6.28-11-generic
initrd.img-2.6.28-11-generic  vmlinuz-2.6.28-11-generic
確定?(y/n)
y
是否格式化此分區?(y/n)
y
格式化 /dev/sda5 為:
1) ext2
2) ext3
3) ext4
4) reiserfs
5) jfs
6) xfs
#? 1
將哪個分區作為 /tmp ?
1) /dev/sda1 ntfs  5198MB        6)
2) /dev/sda10 swap  280MB        7)
3)                            8) /dev/sdb1 vfat  8015MB
4)                        9) 無
5) /dev/sda7 swap  625MB        10) 無,並結束分區設定。
#? 10
開始格式化分區 (如果有需要格式化的分區的話)。繼續? (y/n)
y
正在格式化 /dev/sda6
Done

正在格式化 /dev/sda8
Done

正在格式化 /dev/sda5
Done

正在格式化 /dev/sda9
Setting up swapspace version 1, size = 1261064 KiB
no label, UUID=a3491a9c-8226-4a29-bcf7-608b5a4e553f
Done

如果你為目標系統安排了其他分區, 現在打開另一個終端並掛載它們在 /tmp/target 下合適的地方。完成後回車。

把 GRUB stage1 安裝到哪裡?
建議安裝到 /dev/sda 或 /dev/sda5
1) /dev/sda,MBR             6) /dev/sda7,swap
2) /dev/sdb,MBR             7) /dev/sda8,xfs
3) /dev/sda10,swap          8) /dev/sda9,swap
4) /dev/sda5,ext2           9) /dev/sdb1,vfat
5) /dev/sda6,ext4           10) 不安裝(不推薦)
#? 1
將馬上開始恢復。繼續?(y/n)
y
......
輸入新的主機名。留空將使用舊的主機名。
舊的主機名: ubuntu-laptop
新的主機名:
billbear-pc
是否改變用戶名 ubuntu? (y/n)
y
新的用戶名:
billbear
是否改變用戶 billbear 的密碼? (y/n)
y
輸入新的 UNIX 口令:
重新輸入新的 UNIX 口令:
passwd:已成功更新密碼
如果剛才的密碼改變不成功, 你還有機會。是否再次改變用戶 billbear 的密碼? (y/n)
n
搞定了 :)
ubuntu@ubuntu:~$
Copyright © Linux教程網 All Rights Reserved