將做好的4G USB系統打包 [論壇 - Ubuntu@TW LiveCD]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊

« 1 (2)


訪客
回覆: 將做好的4G USB系統打包
Anon:訪客
fsarchiver是不處理partition之外的disk sectors(包括MBR, GRUB),必須另外自行處理。

flash memory與HDD(Hard Disk Drive)的disk geometry不一樣,可以用"sfdisk -l -uS /dev/yourDevice"來檢視每一個
partition的起始與結束disk sector number,與1個sector的大小( 通常是512 bytes )。在HDD上通常會顯示:255 heads, 63 sectors per track;但flash memory不是這樣( e.g. 我的2GB flash顯示:64 heads, 62 sectors per track )。當然這都不是device的真實disk geometry( 用sfdisk的-g and -G flag/option也可以檢視 )。

以我的2GB flash drive為例,有兩種解法:
1. 使用dd(最省力但最沒有彈性):
以我的2GB flash drive為例( 62 sectors/track ),假設/dev/sdb1的起始sector number是62的話,
"dd if=/dev/sdb of=/media/disk/sector#0_to_sector#61 count=62 bs=512" (用dd來copy MBR, i.e. 1st sector與2nd to 62nd sectors共62 disk sectors)
"dd if=/media/disk/sector#0_to_sector#61 of=/dev/sdc" (還原62 disk sectors)
2. Reinstall/Repair GRUB (費力但最高彈性):
之前post的解法( 有點長 ),不再重複說明了。請參考: http://www.ubuntu-tw.org/modules/newbb/viewtopic.php?topic_id=20252&forum=7

解法2的好處是( 使用fsarchiver時 ),只須備份/dev/sdb1,產生出來的archive:4GUSB.fsa可以任意還原到各種形式的storage device如HDD/SSD(Solid-State drive)/flash drive。而這些device的partition位置與大小沒有任何限制( 只要新partition的大小至少裝得下即可,以你的例子,新partition至少1.2GB即可 ),MBR與partition table也無需還原( 請參考之前post的解法 )。

建議使用System Rescue CD來操作( 尤其是Beta版 ),節省每次都要build fsarchiver的時間( fsarchiver有備份Live/Running Linux System的功能 => Live/Hot Backup,可能會有需要吧 )。

備份工具有很多選擇,如dd/ntfsclone/partimage/partclone/tar/dar/cpio/rsync/fsarchiver,每個都有優缺點。多嘗試各種工具就多一種選擇,多些經驗與能力,只有好沒有壞。試看看用fsarchiver來備份NTFS partition,不錯用喔。
用dd做出來的disk image file為何這麼大的主因除了它無法辨識file system外,它也無法處理sparse file(空洞稀疏的檔案,類似數學上的sparse matrix),導致image file裏有許多zero/null/useless data。

2009/12/17 23:03 | 0c308 3df49 a6be9 6efe2
應用擴展 工具箱
回覆: 將做好的4G USB系統打包
會員四級
註冊日期:
2007/8/23 11:22
所屬群組:
已註冊使用者
等級: 18
HP : 0 / 428
MP : 126 / 15209
EXP: 12
離線
謝謝樓上詳細的解答,我來試試將grub裝在第一個partition看看(sdb1),目前剛裝好的4G USB可以開機,再來就試試fsarchiver savefs /media/disk/4GUSB.fsa /dev/sdb1,再用fsarchiver restfs /media/disk/4GUSB.fsa id=0,dest=/dev/sdb1恢復到另一個4G USB看看行不行。

回報:行不通。

只好回到再生龍那篇研究看看 :(

2009/12/21 19:04
應用擴展 工具箱
訪客
回覆: 將做好的4G USB系統打包
Anon:訪客
"By default, fsarchiver is compressing using gzip with its sixth level of compression, i.e. -z3 option." ( http://www.fsarchiver.org/Compression ) => 也就是其實可以壓縮得更小許多,請使用-z7, -z8, or -z9 option( i.e. LZMA compression )

強烈建議下載最新的SystemRescueCd( http://www.sysresccd.org/Beta-x86 )來操作。Currently(Dec 25, 2009), stable version of fsarchiver is 0.6.2, and the latest beta release is 0.6.3-beta10( http://beta.fsarchiver.org/ ).

*sdb與sdc的配置可以不同,MBR與partition table無需還原,可以用fdisk/cfdisk/sfdisk/parted/gparted來切割partition,即僅切出partition,讓partition裏面是空的,沒有任何file system( 因為fsarchiver會自動生成file system )。
*fsarchiver-beta -j2 -o -z7 savefs /media/disk/4gUsb.fsa /dev/sdb1
*fsarchiver-beta -j2 restfs /media/disk/4gUsb.fsa id=0,dest=/dev/sdc1,mkfs=ext2 (",mkfs=ext2"可省略)
*ext2 and fat32因為減少寫入次數( without journaling ),可以延長flash memory的壽命。
*"mkfs=ext2"的用處是:比如我原先把ubuntu安裝在HDD上的ext4 partition,現在要重生/轉移到flash memory上面並改用ext2,fsarchiver允許你轉換/改變file system( 這功能就與tar一樣:把A file system上的資料轉移到B file system上面,又完整保留所有(extended) file attributes, ACL, UUID, label...etc )。
*Type "fsarchiver-beta -h" 如果想看如何操作與增加了什麼新功能。

**How to Reinstall/Repair GRUB via SystemRescueCd (參考並詳見於: http://www.sysresccd.org/Sysresccd-Partitioning-EN-Repairing-a-damaged-Grub ),兩個解法:
1. 以SystemRescueCd來開機( http://www.sysresccd.org/Quick-start-guide_EN ),type "rescue64 setkmap=us root=auto" or "rescuecd setkmap=us root=auto",接著就會進入ubuntu,執行terminal emulator or on virtual console,type "sudo grub-install /your/device".
2. 用chroot command (參照網頁上說明,Step by step)。

PS1: 重生的ubuntu剛開機時會執行fsck屬正常現象( 因為fsarchiver會變動每個file的block配置 )。
PS2: 真的沒這麼難,只差一步就成功了。
PS3: http://www.sysresccd.org/Sysresccd-manual-en_How_to_install_SystemRescueCd_on_an_USB-stick

2009/12/25 22:17 | 6f87b b5b4d c87fd 8fefa
應用擴展 工具箱

« 1 (2)

 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.