Linux之檔案程式設計(四)

2021-08-25 12:56:00 字數 3113 閱讀 1265

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命令時,系統到底是如何實現的呢?如過你有興趣的話就來這裡看看把

Linux之檔案程式設計(四)

linux檔案程式設計之安裝檔案系統 前言 可能我們機子上都按了兩個作業系統linux作業系統和xp,那麼我們一般都可以在linux下訪問xp下的檔案,但是我們卻不能在xp下訪問linux,這是為什麼呢?一.安裝檔案系統 1.由於 ext2 ext3是 linux 的標準檔案系統,所以系統把ext2...

Linux之 IO程式設計四

1.庫是一種可執行的二進位制形式檔案 2.需要被作業系統載入記憶體執行 3.相比於可執行程式,它不可以直接執行 4.window 和 linux 都有自己的庫,但是不相容 5.庫有兩種,1.靜態庫 2.共享庫 又叫動態庫 了解 靜態庫 動態庫 window lib dll linux a so gc...

Linux系統程式設計 檔案 四

1.建立 mkdir include include int mkdir const char pathname,mode t mode 執行成功返回0,錯誤返回 1 2.刪除 rmdir include int rmdir const char pathname 執行成功返回0,錯誤返回 1 rm...