提示:關於Linux系統中光碟的掛載,我們瞭解一下即可,現在已經很少用到了。但是我們可以通過在Linux系統中掛載光碟,來加深對Linux系統中掛載操作的學習。
光碟掛載的前提依然是指定光碟的裝置檔名,不同版本的Linux,裝置檔名並不相同:
CentOS5.x
以前的系統,光碟裝置檔名是/dev/hdc
。CentOS6.x
以後的系統,光碟裝置檔名是/dev/sr0
。
不論哪個系統都有軟連線/dev/cdrom
,與可以作為光碟的裝置檔名。
如下圖所示:
可以看到/dev/cdrom
就是/dev/sr0
的軟連結(相當於Windows系統的快捷方式)。推薦使用原始檔dev/sr0
。
Linux系統下在根目錄中預設給我們提供了三個空資料夾:
media
(推薦掛光碟)misc
(推薦掛網路儲存盤)mnt
(推薦掛U盤或者行動硬碟)
我習慣在mnt
資料夾中建立空目錄來進行掛載外部裝置。下面總結一下掛載光碟的步驟。
步驟一:建立一個空目錄
在mnt
資料夾中建立一個名稱為cdrom
空目錄
[root@localhost /]# mkdir /mnt/cdrom
不建議在根目錄建立過多的一級目錄,不方便管理。
步驟二:找到光碟的裝置檔名稱
CentOS6.x
以後的系統,光碟裝置檔名是/dev/sr0
,這是固定的,記住就可以。
在CentOS5.x
以前的系統,光碟裝置檔名是/dev/hdc
,因為很早以前的系統,硬碟和光碟系統是統一命名的,在很早以前認為系統有兩塊硬碟就夠了hda
,hdb
,然後光碟預設識別就是hdc
。但是對儲存空間的需求越來越大,導致兩塊盤不能滿足需求了,就需要繼續新增新的硬碟,這個時候光碟的裝置檔名的識別會自動向後便變動,如有三塊硬碟,光碟的裝置檔名hdd
。
這個時候就會導致,光碟的裝置檔案就不是固定的了,會導致我在一臺電腦上掛載光碟,就先要查詢光碟的裝置檔名是什麼,然後在進行掛載。所以在CentOS6.x
以後的系統,光碟的裝置檔名就固定了為sr0
,第一臺光碟機的裝置檔名為sr0
,第二臺光碟機的裝置檔名為sr1
,以此類推。這樣做的好處是和硬碟的裝置檔名就不相干了。
步驟三:掛載光碟
[root@localhost ~]# mount -t iso9660 /dev/sr0 /mnt/cdrom/
# 注意:
# -t檔案系統:加入檔案系統型別來指定掛載的型別,
# 可以ext3、ext4、iso9660等檔案系統。
# 掛載光碟就用iso9660型別的檔案系統型別。
# 也可以直接省略-t iso9660,
# 掛載光碟時候系統自動新增。
[root@localhost ~]# mount /dev/sr0 /mnt/cdrom/
執行上邊命令會報錯,說你必須指定檔案系統。如下:
[root@localhost /]# mount /dev/sr0 /mnt/cdrom/
mount: you must specify the filesystem type
我們新增上檔案系統,再次執行。如下:
[root@localhost /]# mount -t iso9660 /dev/sr0 /mnt/cdrom/
mount: no medium found on /dev/sr0
這回的報錯資訊就準確了,告訴我們說在/dev/sr0
中沒有發現光碟。
需要在虛擬機器軟體中新增cd
檔案,放入光碟機中。
如下圖:
再次輸入光碟掛載命令。
[root@localhost /]# mount /dev/sr0 /mnt/cdrom/
mount: block device /dev/sr0 is write-protected, mounting read-only
還有一行報錯,說/dev/sr0
想要讀寫許可權,但是現在被賦予了只讀許可權。因為光碟的使用就是一次性寫入,之後就只讀就可以了。所以這行報錯,可以認為是光碟正確掛載的標記。
最後執行mount
命令在確認一下。
步驟四:訪問關盤中的資料
需要去掛載點中訪問光碟的資料,在/mnt/cdrom/
目錄中。
這裡邊都是光碟中的內容。
步驟五:解除安裝掛載點
無論是掛載的光碟還是U盤,用完後就需要解除安裝掉。如果你沒有解除安裝就換cd
的話,就會出現問題。這是有一定機率的,如果你不解除安裝,多換幾次cd
的話,你會發現你無論放入任何光碟,你讀出來的資料都不是你放入的cd
中的資料。而是虛擬機器自帶的工具vmtools
中的內容。之後你即使解除安裝的光碟,也不在好使了。
這個時候的解決方法是,在虛擬機器中把現有的光碟機移除,在新增一個新的光碟機。
如下圖:
解除安裝掛載點
# 因為裝置檔名和掛載點已經連線到一起,解除安裝哪一個都可以
[root@localhost ~]# umount /dev/sr0
[root@localhost ~]# umount /mnt/cdrom
# 解除安裝
[root@localhost cdrom]# umount /dev/sr0
umount:/mnt/cdrom: device is busy.
(In some cases useful info about processes that use the device is found by 1sof(8) or fuser(1))
# 上邊報錯說裝置正忙,以為此時位置正在光碟裡邊cdrom目錄中,要退出在進行解除安裝。
# 注意:解除安裝的時候需要退出光碟目錄,才能正常解除安裝。
問題:掛載點為什麼要使用空目錄
# 在/mnt/cdrom目錄中建立兩個檔案abc,bcd
[root@localhost cdrom]# ls
abc bcd
# 在/mnt/cdrom目錄上掛載光碟
[root@localhost cdrom] # mount /dev/sr0 /mnt/cdrom/
mount: block device /dev/sr0 is write-protected, mounting read-only
# 可以看到看到光碟是可以掛載到有檔案的目錄上。
# 檢視/mnt/cdrom目錄中的檔案
[root@localhost cdrom]# ls /mnt/cdrom/
CentOS_BuildTag isolinux RPM-GPG-KEY-CentOS-Debug-6
EFI Packages RPM-GPG-KEY-CentOS-Security-6
EULA RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-Testing-6
GPL repodata TRANS.TBL
images RPM-GPG-KEY-CentOS-6
# 資料夾中並沒有之前的abc,bcd檔案了。而只有光碟中的資料。
# 把光碟掛載點解除安裝了
[root@localhost cdrom]# umount /dev/sr0
# 再次檢視/mnt/cdrom目錄中的檔案
[root@localhost cdrom]# ls /mnt/cdrom/
abc bcd
# 發現abc,bcd檔案又出現了。
是因為/mnt/cdrom
作為目錄的時候,裡邊是一個一個的block
來儲存資料。當我把/mnt/cdrom
作為一個掛載點的時候,是把這個目錄作為進入另一個分割槽的介入點(光碟也是一個儲存空間,是一個獨立的空間),所以/mnt/cdrom
作為目錄的訪問點就不在了,但是裡邊的資料並沒有刪除,所以/mnt/cdrom
掛載點一旦解除安裝,/mnt/cdrom
目錄又迴歸原始位置,就又可以讀取出原來檔案中的資料了。
這就是為什麼說一定要用空目錄做掛載點,因為有資料的目錄,一旦作為掛載點,原來目錄中的資料是不能檢視也不能刪除,佔用系統資源,不合理。