5.把虛擬盤掛在節(jié)點(diǎn)/mnt/loop上
#mount –t ext2 /dev/loop0 /mnt/loop
6.用cp –af命令將所需要文件拷貝到虛擬盤上
cp –help查看cp 用法。cp –arf … -r表示拷貝目錄
/bin, /dev, /etc, /lib, proc, /sbin, /usr都是不可或缺的目錄,建議保留/tmp,/var,不過可以為空。而為多用戶提供可擴(kuò)展環(huán)境的所有目錄(例如/home、/mnt、/opt、/root)都應(yīng)該省略。
用cp復(fù)制文件時(shí),建議把已建立好的文件系統(tǒng)中的內(nèi)容全部拷貝過來,這樣比較簡(jiǎn)單,不需要再去編譯安裝busybox等。當(dāng)然自己也可以那樣去做。
7.卸載文件系統(tǒng),得到的/tmp/loop_tmp就是文件系統(tǒng)映象。
#cd /mnt/loop以外的目錄 (否則會(huì)提示無法卸載,設(shè)備busy)
#umount /mnt/loop
8.壓縮文件系統(tǒng)映象
#gzip –v9 /tmp/loop_tmp >/tftpboot/ramdisk.gz
在/tftpboot下生成了ramdisk.gz,這樣一個(gè)內(nèi)存文件鏡象生成了。
或只是#gzip –v9 /tmp/loop_tmp,則就是在/tmp下生成loop_tmp.gz文件,一樣的。
在上述的自己建立文件系統(tǒng)中,第3條用 losetup命令把塊設(shè)備文件/dev/loop0與臨時(shí)文件/tmp/loop_tmp聯(lián)系起來了,我的理解是/tmp/loop_tmp必須是塊設(shè)備文件,所以用/dev/loop0與之相關(guān)聯(lián),然后對(duì)/dev/loop0的操作和對(duì)其虛擬盤的操作,就間接作用在文件系統(tǒng)映象 /tmp/loop_tmp上。
三、自己建立根文件系統(tǒng)(與二中不同)
1.建立loop設(shè)備的臨時(shí)掛載點(diǎn)
#mkdir /mnt/loop
2.建立文件系統(tǒng)映象
#dd if=/dev/zero of=/tmp/loop_tmp bs=1k count=15360
以上2條同二中是一樣
3.mke2fs –F –v –m 0 /tmp/loop_tmp
此處-F選項(xiàng)將可迫使mkefs2在文件上運(yùn)行。否則mke2fs會(huì)抱怨/tmp/loop_tmp不是個(gè)塊設(shè)備(在上面說了,我的理解是/tmp/loop_tmp文件映象必須是塊設(shè)備文件,前面的做法是用塊設(shè)備文件/dev/loop0與之相關(guān)聯(lián))。-v 選項(xiàng)指出mke2fs應(yīng)該以verbose模式執(zhí)行,-m 0指出不必在文件系統(tǒng)上為“超級(jí)用戶”保留任何區(qū)塊,因?yàn)樵谇度胧较到y(tǒng)中通常是單用戶系統(tǒng),為“超級(jí)用戶”保留區(qū)塊沒有意義。
4.掛載映象文件
#munt –o loop /tmp/loop_tmp /mnt/loop
掛載后,在/mnt/loop下就可以對(duì)文件系統(tǒng)的內(nèi)容進(jìn)行操作。
5.cp操作,同二中的第6條
6.卸載映象文件
#umount /mnt/loop
7.壓縮映象文件
#gzip –v9 /tmp/loop_tmp
第三中的做法與第二中的做法不同,在第二中,把塊設(shè)備文件/dev/loop0與映象文件/tmp/loop_tmp相關(guān)聯(lián),然后對(duì)/dev/loop0及虛擬盤進(jìn)行操作,就作用在/ltmp/loop_tmp上。
而第三中,是直接對(duì)映象文件/tmp/loop_tmp進(jìn)行操作,用mke2fs –F …將其當(dāng)作塊設(shè)備文件進(jìn)行操作。