Linux檔案編程之安裝檔案系統
前言:
可能我們機子上都按了兩個作業系統Linux作業系統和XP,那麼我們一般都可以在Linux下訪問XP下的檔案,但是我們卻不能在XP下訪問Linux,這是為什麼呢?
一.安裝檔案系統
1.由於 Ext2/Ext3是 Linux 的標準檔案系統,所以系統把EXT2 檔案系統的磁碟分割做為系統的根檔案系統,EXT2 以外的檔案系統(如 Window的 FAT32 檔案系統)則安裝在根檔案系統下的某個目錄下,成為系統樹型結構中的一個分枝。安裝一個檔案系統用 mount 命令。
2.將一個檔案系統的頂層目錄掛到另一個檔案系統的子目錄上,使它們成為一個整體,稱為“安裝(mount)”。把該子目錄稱為“安裝點(mount point)”。
3 .檔案系統建立樣本
第一步:建立一個經過初始化的檔案 (用 dd 命令建立一個指定大小的檔案(使用 /dev/zero 作為源進行檔案複製)
dd if=/dev/zero of=tiger bs=1k count=10000
過程執行個體:
think@ubuntu:~$ dd if=/dev/zero of=tiger bs=1k count=10000
記錄了10000+0 的讀入
記錄了10000+0 的寫出
10240000位元組(10 MB)已複製,0.0890382 秒,115 MB/秒
(對dd命令不熟悉或者感興趣的話可以看這裡 )
Tiger-John說明:
把輸入檔案/dev/zero 拷貝到輸出檔案 tiger中,輸入輸出的塊大小為 1k,總共拷貝 10000 塊。
現在我們就建立了一個10MB 的 tiger檔案。
第二步:使用 losetup 命令將一個迴圈裝置與這個檔案關聯起來,讓它看起來像一個塊裝置,而不是檔案系統中的常規檔案。(此時要使用超級許可權)
sudo losetup /dev/loop0 tiger
過程實 例 :
think@ubuntu:~$ sudo losetup /dev/loop0 tiger
[sudo] password for think:
losetup: /dev/loop0: device is busy
Tiger-John 說明:
在此處使用sudo losetup /dev/loop0 命令時系統提示錯誤:losetup: /dev/loop0: device is busy。
說明有裝置在使用 loopback 裝置 ,我們可以用 /dev/loop1或 /dev/loop2來 代替 /dev/loop0,直到有一個閒置 loopback 裝置。
所以我們把命令該為 sudo losetup /dev/loop1tiger 再試一下。
過程實 例:
think@ubuntu:~$ sudo losetup /dev/loop1 tiger
[sudo] password for think
沒有提示錯誤,說明操作成功。此時, tiger 檔案現在作為一個塊裝置出現(由 /dev/loop1表示)
第三步: 然後用 mke2fs 在這個裝置上建立一個檔案系統。這個命令建立一個指定大小的新的 ext2 檔案系統 。
mke2fs -c /dev/loop1 10000
表示在/dev/loop0 塊裝置上建立大小為10MB 的 ext2檔案系統
過程實 例:
think@ubuntu:~$ sudo mke2fs -c /dev/loop1 10000
[sudo] password for think:
mke2fs 1.41.11 (14-Mar-2010)
第四步:使用 mount 命令將迴圈裝置(/dev/loop1)所表示的 tiger 檔案安裝到安裝點 /mnt/point1。注意,檔案系統類型指定為 ext2。
mkdir /mnt/point1 表示:建立安裝點
mount -t ext2 /dev/loop1 /mnt/point1:在安裝點上安裝 ext2 檔案系統
過程實 例:
think@ubuntu:~$ sudo mkdir /mnt/point1
think@ubuntu:~$ mount -t ext2 /dev/loop1 /mnt/point1
mount: 只有 root 才能進行此操作
think@ubuntu:~$ su
root@ubuntu:/home/think# mount -t ext2 /dev/loop1 /mnt/point1
Tiger-John 說明:
mount 操作只能在root 許可權下用行,所以我們用命令:su 切換到root 使用者下
第五步:安裝之後,就可以將這個安裝點當作一個新的檔案系統,比如使用 ls 命令就可以查看檔案系統。
過程執行個體:
root@ubuntu:/home/think# ls /mnt/point1
lost+found
Tiger-John 說明:
lost+found表示新檔案系統中預設的檔案目錄
至次一個檔案系統就安裝在Linux之上了。
那麼我麼如何卸載它呢?
第六步:我們通過命令: umount /mnt/vfs 和
losetup -d /dev/loop0 來卸載我們剛才所載入的檔案系統。
過程執行個體:
root@ubuntu:/home/think# umount /mnt/point1
root@ubuntu:/home/think# losetup -d /dev/loop1
root@ubuntu:/home/think# ls /mnt/point1
root@ubuntu:/home/think#
此時我們通過ls /mnt/pont1 已經看不到我們剛才的檔案系統了。說明我們卸載成功
Tiger-John說明 :
從上面的學習我們學會了用shell命令來掛載自己的檔案系統和卸載檔案系統,那麼大家有沒有疑問呢?當我們在用這些shell命令時,系統到底是如何?的呢?如過你有興趣的話就來這裡看看把http://blog.csdn.net/tigerjb/archive/2010/11/17/6015530.aspx