看標題,標題涵蓋了3個部分,Ubuntu 備份系統為ISO鏡像, 解決ISO限制4GB大小 , Clone當前系統到其他電腦 我們就從三個部分說起.
Ubuntu 備份系統為ISO鏡像
在Windows系統中,我們一般使用Ghost一鍵備份系統,Ghost是相對成熟的系統備份軟件,來自賽門鐵克,傻瓜式操作,各種PE中,系統鏡像中都是默認自帶.
在Linux系統中,也有好幾個系統備份工具.
比如 dd命令
參考:http://www.cnblogs.com/EasonJim/p/7442223.html
rsync 命令
參考: http://www.cnblogs.com/f-ck-need-u/p/7220009.html
不是人人都喜歡命令行下的備份與還原,大道至簡, 同樣一個功能,能簡單實現為什么要復雜完成呢,除非你屬於愛折騰里面的極品.
還有其他備份軟件
remastersys 與Respin, remastersys 早已不再維護,取而代之的是Respin 官網:http://www.remastersys.org/
但是Respin 也是問題一大堆,至少我的Ubuntu是這樣的,
一.只能備份系統目錄,對於用戶目錄的數據無法備份
二.限制4GB大小,如果你也是一個愛折騰的人,4GB是容不下你的.所以你可能會收到 "The compressed filesystem is larger than genisoimage allows for a single file."
三.當我把系統精簡后,的確打包成iso文件,問題是不管是虛擬機還是真機移植,4次移植兩次失敗,所以我認為Tespin不夠穩定,好在Respin一直在更新,希望越做越好. gitlab地址 : https://gitlab.com/remastersys/LinuxRespin.git
介紹了其他,現在有請主角閃亮登場:
systemback
systemback 下載地址: https://sourceforge.net/projects/systemback/ Systemback_Install_Pack_v1.8.402.tar.xz (2016-05-16)
systemback功能很強大,可以創建還原點,恢復到還原點,可以系統復制,可以系統安裝,可以創建live模式系統,可以包含用戶目錄數據.......
liveCD模式
LiveCD是一種光盤上的可運行出系統的激光光碟,簡單的說就是一個光盤上的系統,你可以通過光盤啟動電腦,啟動出一個系統(這個系統在使用上和安裝到硬盤上的是一樣的,就是啟動時速度比較慢)。Linux Live CD就是一套在光盤上的Linux系統(和裝出來的Linux時一樣的)它也有圖形界面,也有終端。這種Linux Live CD主要是用於修復Linux系統或用於學習Linux系統。 來自百科的翻譯.
我們這里創建的備份系統就是liveCD模式鏡像,通過U盤引導可直接開啟LiveCD模式下的系統.
備份系統
我們不用從菜單-systemback中選擇進入,因為備份的過程中可能出現錯誤,所以我們使用以下命令打開systemback
DBGLEV=3 systemback-sustart
當我備份的時候,就通過上面調試命令查看到了報錯的信息
一個是回收站Trash目錄無法清空:
另一個是開啟了LNMP服務,mysql.pid, nginx.pid 占用資源無法釋放,還有加載了CD或掛載目錄無法讀取只讀系統文件,打包就出錯了。
所以備份之前一定要確定: .local/share/Trash 回收站為空, 關閉非系統的服務,不要使用專有驅動,建議使用開源驅動先備份,clone到新機子后在修改驅動.
進入systemback,選擇 創建live系統,勾選包含用戶數據文件
就這樣等待十幾分鍾左右,就能創建.sblive完成, 等待的時間長短就要看你用戶數據量的多少.
生成的.sblive到底有多大? ???
29.4GB到底有多大??? 因為你又不是iso文件,OK, 壓縮.sblive的算法和.iso的算法差不多,也就是生成的.iso文件大小差不多的. 如何? 29.4GB那個系統有這么大,Ubuntu18.04也就2個GB大小, 一個企業版Windows10也就3.4GB.
為什么我的系統生成這么大的.sblive文件呢,因為......
用戶目錄下的一個子目錄opt就將近42GB大小,其中大部分是VirtualBox安裝虛擬系統的.vdi文件, Vbox目錄大概39GB, 所以如果想減小生成iso文件的大小,就盡力把類似於虛擬系統這種占空間的文件放到非用戶目錄下.
解決ISO限制4GB大小
OK,現在已經生成.sblive文件了,可以選擇選擇轉換為光盤鏡像
看到了,為什么是灰色的,那是因為已經超過4GB大小了,只有小於4GB大小的才能通過systemback轉換為iso文件.
那如何解決呢?
上鏈接:
解決systemback 無法生成超過4G的iso的問題
也就是 ISO9660標准最大文件大小限制不能超過4GB,
解決的辦法就是采用udf文件系統.
UDF是統一光盤格式(Universal Disc Format)的縮寫當數據寫入光盤,需要寫入的數據體積>2G 時,需要采用此種格式.
1:解壓 .sblive 文件 (先su root)
mkdir sblive tar -xf /home/systemback_live_2018-08-23.sblive -C sblive
2:重命名 syslinux 至 isolinux
mv sblive/syslinux/syslinux.cfg sblive/syslinux/isolinux.cfg mv sblive/syslinux sblive/isolinux
3:mkisofs 命令
發現了問題, Ubuntu自帶mkisofs ,mkisofs命令用來將指定的目錄與文件做成ISO9660格式的映像文件,但是自帶的mkisofs命令貌似不支持4GB文件打包,
在來說下cdrecord, 也就是cdrtools, 一個增強版的CD/DVD刻錄軟件
下載地址: cdrtools-3.02a09.tar.gz (2017-12-14)
安裝的時候make && make install 選擇本系統的時候可以選擇Ubuntu16.04,(無Ubuntu18.04選項, 但也可以用)安裝好之后,在/opt/schily/bin/mkisofs 貌似就是增強版mkisofs, 其中-UDF參數就能看出來 Generate UDF file system, 所以默認情況下,當大於4GB的時候默認啟用-UDF參數
關於mkisofs 命令:
-posix-H Follow sylinks encountered on command line -posix-L Follow all symlinks -posix-P Do not follow symlinks (default) -o FILE, -output FILE Set output file name -R, -rock Generate Rock Ridge directory information -r, -rational-rock Generate rationalized Rock Ridge directory info -J, -joliet Generate Joliet directory information -print-size Print estimated filesystem size and exit -UDF Generate UDF file system -dvd-audio Generate DVD-Audio compliant UDF file system -dvd-video Generate DVD-Video compliant UDF file system -dvd-hybrid Generate a hybrid (DVD-Audio/DVD-Video) compliant UDF file system -iso-level LEVEL Set ISO9660 level (1..3) or 4 for ISO9660 v 2 -V ID, -volid ID Set Volume ID -graft-points Allow to use graft points for filenames -M FILE, -prev-session FILE Set path to previous session to merge
4: 生成iso文件:
/opt/schily/bin/mkisofs -iso-level 3 -r -V sblive -cache-inodes -J -l -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -c isolinux/boot.cat -o sblive.iso sblive
在.sblive的同級目錄下就生成了一個sblive.iso文件,大小和之前的.sblive文件差不多.
Clone當前系統到其他電腦
我們先打開這個sblive.iso可以看到casper目錄下的filesystem.squashfs 文件, 這個文件大小幾乎就是iso文件的大小,也就是說安裝的系統文件數據肯定是在這個filesystem.squashfs文件中.
filesystem.squashfs查看
filesystem.squashfs文件都包含了那些內容,可以打開任何一個Ubuntu的iso文件 或者剛才解壓的sblive文件就能看獲取filesystem.squashfs. 解壓命令:
sudo unsquashfs filesystem.squashfs
可以看到filesystem.squashfs就是系統數據文件
參考:
Ubuntu誤刪系統文件修復辦法
那貌似制作liveCD更簡單了, 找到本系統安裝時的鏡像版本文件,比如Ubuntu-mate18.04-desktop-amd64.iso, 將生成的filesystem.squashfs替換為源鏡像中的filesystem.squashfs就ok了! 前提是你的文件小於4GB.
可以通過systemback安裝, 先通過U盤進入liveCD系統,安裝systemback,選擇系統安裝-填寫信息- 分區設置,勾選傳遞用戶配置下一步安裝
參考: https://blog.csdn.net/sinat_33188616/article/details/56685553
參考教程: