再生龍Clonezillahttp://www.clonezilla.org/是國家高速網路與計算中心所開發的備份與還原系統, 而Clonezilla的核心就是dd.
上一篇: Linux Pi的奇幻旅程(13)-設定的總結
http://ithelp.ithome.com.tw/question/10134013
下一篇: Linux Pi的奇幻旅程(15)-大改造
http://ithelp.ithome.com.tw/question/10134875
全部: http://ithelp.ithome.com.tw/ironman6/player/bizpro/alll/1
再生龍Clonezillahttp://www.clonezilla.org/是國家高速網路與計算中心所開發的備份與還原系統, 有了再生龍就夠了, 可以用再生龍來備份, 而Clonezilla的核心就是dd. 前文提及用dd來備份Raspbian, 本文將詳細解說.
首先, 把SD卡接上電腦, 可以用dmsg來查找被掛載的路徑. 可以用mount指令來查看, 也可以用fdisk來查, 例如:
$ sudo fdisk -l
....
磁碟 /dev/sdb: 3980 MB,3980394496 位元組
123 磁頭,62 磁區/磁軌,1019 磁柱,總計 7774208 磁區
單位 = 磁區 之於 1 * 512 = 512 位元組
磁區大小 (邏輯/實體):512 位元組 / 512 位元組
I/O 大小 (最小/最佳化):512 位元組 / 512 位元組
磁碟識別碼:0x000b03b7
所用裝置 開機 開始 結束 區塊 識別號 系統
/dev/sdb1 8192 122879 57344 c W95 FAT32 (LBA)
/dev/sdb2 122880 7774207 3825664 83 Linux
找到SD卡被自動掛載的路徑, 就要卸載SD卡:
$ sudo umount /dev/sdb1
$ sudo umount /dev/sdb2
請注意, 使用dd指令時, 最好是將要備份的儲存裝置卸載. 卸載完SD卡之後, 就可以開始備份了:
$ sudo dd bs=4M if=/dev/sdb of=Raspbian-20131006T1725.img
949+0 records in
949+0 records out
3980394496 bytes (4.0 GB) copied, 261.19 s, 15.2 MB/s
備份的時間是幾分鐘, 當然要看SD卡的速度. 備份下來的檔案是印象檔, 約1.8G大, 可以用tar來做壓縮的動作:
$ tar cfjv Raspbian-20131006T1725.img.tar.bz2 Raspbian-20131006T1725.img
tar是最常用到的壓縮工具, Linux上幾乎大部分的壓縮都是用tar, 而這裡用的壓縮法是bzip2, http://www.bzip.org/, 也就是參數cfjv中的j的意思. 而c當然是create, v則是verbose, f是檔案file的意思, 這是用來壓縮的常用參數.
Linux上常用的壓縮格式還有gziphttp://www.gzip.org/, 這也是我常用的格式, 參數的用法是把j換成z:
$ tar cfzv Raspbian-20131006T1725.img.tar.gz Raspbian-20131006T1725.img
用dd來備份成印象檔, 用tar來打包與壓縮印象檔可以節省很大的空間, 通常bz2比gz小, 但差距不是很大, 而bz2和gz都比zip的壓縮格式小很多.
在接下來的文章中, 將要移除圖形界面, 除了進入文字模式外, 還有網頁模式, 因此, 我使用了第二張SD卡, 當然就用剛剛備份的印象檔了.
把新的SD卡插入後, 首先要卸載:
$ sudo umount /dev/sdb1
之後就執行錄寫印象檔到SD卡的動作:
$ sudo dd bs=4M if=Raspbian-20131006T1725.img of=/dev/sdb
949+0 records in
949+0 records out
3980394496 bytes (4.0 GB) copied, 417.677 s, 9.5 MB/s
這時, 就擁有兩張內容一模一樣的SD卡. 這就是備份與還原的過程了.
想問一下,是不是缷載/dev/sda和/dev/sdb作業系統還能走?
新年快樂.
/dev/sda和/dev/sdb是磁碟代號, 要分割成分割區, 格式化(format)成檔案系統, 才能掛載/卸載分割區, 例如/dev/sda1,.../dev/sdb1,....等等分割區(partition), 並不是掛載/卸載磁區.
要卸載分割區, 必須是未使用中的分割區, 如果根目錄是在/dev/sda2分割區中被掛載, 而試圖卸載/dev/sda2:
$ sudo umount /dev/sda2
umount: /: target is busy.
因目標區繁忙(使用中), 就無法被卸載(umount)
文中的/dev/sdb1和/dev/sdb2是SD卡中的分割區, 插入此卡到一台主電腦的USB外接盒中被自動被掛載, 只要沒有開啟或使用/dev/sdb1和/dev/sdb2的內容, 就可以卸載這塊SD卡中的分割區, 只是外接的分割區, 不影響主電腦的Linux作業系統的運行.
感謝幫忙解答