入坑Arch瘸爽,主要方便自己查詢和剛入坑經(jīng)常玩掛的朋友,其他發(fā)行版應該大同小異。
Linux上主要的備份方式 我知道的有 dd 和 tar
相比來說 tar打包顯得比較靈活些阅,可以用于本機備份恢復,也可以恢復到其他計算機斑唬,打包的目錄可以完全按自己需要市埋。這里主要介紹tar打包以及本機的恢復。
tar打包 可以只打包不壓縮赖钞,速度會比較快腰素,但是你可能會面對一個 好幾十G的系統(tǒng)備份包,并不推薦雪营。
壓縮 可以用gzip或者Bzip2 (好像還有其他的弓千,不熟悉,就不做介紹了) 二者相比献起,gzip速度相對較快洋访,但壓縮比率比Bzip2略低。
我這里并不用這兩個軟件打包谴餐,因為兩個都是單線程姻政,打包速度會非常慢。岂嗓。汁展。曾經(jīng)用bzip2打包等到天荒地老都沒好。厌殉。食绿。
那么重頭戲來了! 偶然的機會知道了一個叫pigz的多線程壓縮軟件器紧,采用與gzip相同的壓縮方式,默認以邏輯CPU的個數(shù)的線程進行壓縮楼眷,具體線程還可以自定義铲汪,速度飛快,詳細可以百度 pigz罐柳。
那么 tar能不能調用pigz進行壓縮呢掌腰? 答案是肯定的!
看一下tar的man手冊
-I, --use-compress-program=COMMAND
Filter data through COMMAND. It must accept the -d option,
for decompression. The argument can contain command line
Options.
發(fā)現(xiàn)tar是可以指定其他壓縮程序進行壓縮的张吉。
于是直接 sudo pacman -S pigz 安裝(arch官方源就有)下面就可以開始打包了齿梁!
進入根目錄 然后執(zhí)行:
sudo tar --use-compress-program=pigz -cvpf arch-backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/arch-backup.tgz --exclude=/mnt --exclude=/sys --exclude=/run/media /
簡單介紹一下命令,--use-compress-program=pigz 是用pigz壓縮芦拿,arch-backup.tgz是打包之后的文件名士飒,--exclude=/xxx是打包時排除的目錄查邢,這里簡單的排除了一些不需要的目錄,具體排除的內容可以根據(jù)自己的發(fā)行版和需要設定酵幕,--exclude=/arch-backup.tgz 是排除根目錄下的自身扰藕,因為我是在根目錄下進行的操作,如果不排除自身的話芳撒,打包可能會進入一個死循環(huán)邓深。。笔刹。你可能會打出一個巨型包芥备。
這樣就開始進行壓縮打包了
用htop 可以看到 CPU滿載,大概3-5分鐘左右完成舌菜,比起單線程10%多的占用 速度快了不知道多少倍萌壳!
完成候可以看到 28G左右的分區(qū) 打包完 是一個15G的壓縮包,個頭還是很大日月。袱瓮。。也算可以接受爱咬。尺借。不知道有沒有其他辦法能夠再小點
打包完成后,你可能會看到一條錯誤信息精拟,具體原因小白不懂燎斩,不過并沒有什么影響。然后將備份的包放到一個你覺得安全的地方蜂绎。
至此栅表,所有備份工作都已經(jīng)完成,系統(tǒng)掛了可以用下面的方法恢復
---------------------------------------------------------------------------------------------------------------
首先需要準備一個能夠引導的liveCD的U盤
進入liveCD之后 先用wifi-menu聯(lián)網(wǎng)荡碾,因為liveCD上沒有pigz谨读,如果不想解壓恢復的時候用半年的話就聯(lián)網(wǎng)裝上再解壓吧
Ping一下百度看看是否聯(lián)網(wǎng)成功局装,之后簡單配置下源 就可以安裝pigz了
sudo nano /etc/pacman.d/mirrorlist 配置源
安裝pigz
要用到的pigz準備好之后就可以掛載磁盤 進行恢復了坛吁。
lsblk簡單看下各個分區(qū)情況
我這里sdc1是boot分區(qū) sdc2是/分區(qū) sdb3是保存?zhèn)浞莸姆謪^(qū)
直接新建了一個目錄掛載 sdb3
mkdir /f
mount /dev/sdb3 /f
然后掛載 目標linux根分區(qū)到/mnt目錄, 我的arch只分了 boot和/分區(qū)铐尚,并且備份的時候 忘記排除boot目錄了拨脉,所以這里索性都掛載上干掉。掛載之后如圖
現(xiàn)在就可以干掉已經(jīng)損壞的系統(tǒng)了
rm -rf /mnt/*
命令很危險宣增,一定要看清楚玫膀,想清楚了之后再執(zhí)行,我真是怕小手一抖就把不想干掉的分區(qū)干掉了
boot目錄因為是分區(qū)掛載點提示設備忙爹脾,這個目錄并沒有被刪掉帖旨,不過ls一下可以看見/mnt下只剩boot目錄箕昭,/mnt/boot下所有的引導文件也都沒有了
萬事俱備,下面進行解壓恢復 還是使用pigz進行多線程解壓
#tar --use-compress-program=pigz -xvpf /f/sysbackup/arch-backup-20160331.tgz -C /mnt
這里自行把備份路徑替換掉解阅。接下來就是解壓過程如圖:
用不了多久 也就2-3分鐘 解壓完成落竹!(ssd)
ls看看 干掉的文件是不是都回來了呢
OK,問題ない货抄!
到這里述召,恢復工作已經(jīng)接近尾聲,還記得備份的時候排除掉的目錄么蟹地,重建排除的目錄
然后直接reboot重啟
前面干掉了 / 分區(qū)所有文件真的 大丈夫积暖?
因為我之前把boot一起干掉了怪与,所以看到這里就表面恢復成功了夺刑!
所有備份恢復工作全部完成!
總結起來分别,主要是利用了 pigz 的多線程提高 壓縮解壓的效率性誉,比普通的gzip或者bzip2快很多!缺點還是比較明顯茎杂,就是備份的包個頭略大错览,不知道怎么能夠再小點
而且我只涉及了本機恢復,如果恢復到其他機子煌往,還涉及到fstab修改之類的一些收尾工作倾哺。
拋磚引玉,如果有其他好的方法 歡迎交流刽脖!