根文件系統相關操作

一、如何對已有的根文件系統進行修改

假設已有一個名爲ramdisk.gz的文件系統壓縮文件,可以通過以下步驟實現對該文件系統的修改:

1. 將文件系統的壓縮文件解壓成映像文件;

進入ramdisk.gz所在目錄:

#cd …

解壓ramdisk.gz:

#gunzip ramdisk.gz

2. 掛載解壓後的映像文件來實現修改;

創建掛載目錄:

#sudo mkdir /mnt/loop

將ramdisk.gz掛載:

#sudo mount –o loop ramdisk /mnt/loop

進入掛載目錄:(這時可以根據需要增加、刪減或是修改文件系統的內容)

#cd /mnt/loop

修改開發板啓動文件(DevKit8500D):

 #sudo gedit /mnt/loop/etc/init.d/rc

3. 卸裝鏡像文件;

進入ramdisk.gz所在目錄:

#cd …

卸載目錄

#sudo umount /mnt/loop

4. 將修改後的文件系統製作成壓縮文件;

#gzip –v9 ramdisk

 

二、如何建立新的根文件系統

(方法一)

1. 建立loop設備的臨時掛載點;

#mkdir /mnt/loop

2. 建立一個大小爲15M的臨時文件;

#dd if=/dev/zero of=/tmp/loop_tmpbs=1k count=15360

臨時文件的大小可根據自己的需要對參數count進行調整即可;

3. 將設備文件與臨時文件聯繫起來;

#losetup /dev/loop0 /tmp/loop_tmp

 

如果出現“ioctl:LOOP_SET_FD:設備或資源忙”,說明/dev/loop0設備還和一文件聯繫,可用losetup /dev/loop0查看地,並可用-d 刪除;

4. 將/dev/loop0格式化爲ext2文件系統;

#mke2fs –m 0 /dev/loop0

5. 把虛擬盤掛在節點/mnt/loop上;

#mount –t ext2 /dev/loop0/mnt/loop;

6. 用cp –af命令將所需要的文件拷貝到虛擬盤上;

7. 通過cd命令切換到除/mnt/loop目錄以外的其他目錄,然後卸載文件系統;

#cd /xx (xx表示除/mnt/loop以外的其他目錄)

#umount /mnt/loop

得到的/tmp/loop_tmp就是文件系統映象

8. 壓縮映象文件生成文件系統;

#gzip –v9 /tmp/loop_tmp>/tftpboot/ramdisk.gz

或#gzip –v9 /tmp/loop_tmp

 

(方法二)

1. 建立loop設備的臨時掛載點;

#mkdir /mnt/loop

2. 建立一個大小爲15M的臨時文件;

#dd if=/dev/zero of=/tmp/loop_tmpbs=1k count=15360

3. 將loop_tmp格式化爲ext2文件系統;

mke2fs –F –v –m 0 /tmp/loop_tmp

4. 掛載格式化後的臨時文件;

#munt –o loop /tmp/loop_tmp/mnt/loop

5. 用cp –af命令將所需要的文件拷貝到臨時文件中從而生成映像文件;

6. 卸載生成的映象文件;

#umount /mnt/loop

7. 壓縮映象文件生成文件系統;

#gzip –v9 /tmp/loop_tmp


--------------------------分割線---------------------------------

此方法可以修改系統啓動設置,設置啓動項。

測試軟硬件平臺:

宿主機:Ubuntu 12.04LTS

目標版:Devkit8500D,Linux2.6.32




 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章