『無慾則無求』Linux常用命令 — 37、光盤掛載

光盤掛載的前提依然是指定光盤的設備文件名,不同版本的Linux,設備文件名並不相同:

  • CentOS5.x以前的系統,光盤設備文件名是/dev/hdc
  • CentOS6.x以後的系統,光盤設備文件名是/dev/sr0

不論哪個系統都有軟連接/dev/cdrom,與可以作爲光盤的設備文件名。
在這裏插入圖片描述
可以看到/dev/cdrom就是/dev/sr0的軟鏈接(相當於windows系統的快捷方式)。推薦使用源文件dev/sr0。

Linux系統下在根目錄中默認給我們提供了三個空文件夾:

  • media(推薦掛光盤)
  • misc(推薦掛網絡存儲盤)
  • mnt(推薦掛U盤或者移動硬盤)

我習慣在mnt文件夾中創建空目錄來進行掛載外部設備。下面總結一下掛載光盤的步驟。

1、在mnt文件夾中創建一個名稱爲cdrom空目錄

[root@localhost /]# mkdir /mnt/cdrom

不建議在根目錄創建過多的一級目錄,不方便管理。

2、找到光盤的設備文件名稱

CentOS6.x以後的系統,光盤設備文件名是/dev/sr0,這是固定的,記住就可以。

在CentOS5.x以前的系統,光盤設備文件名是/dev/hdc,因爲很早以前的系統,硬盤和光盤系統是統一命名的,在很早以前認爲系統有兩塊硬盤就夠了hda,hdb,然後光盤默認識別就是hdc。但是對存儲空間的需求越來越大,導致兩塊盤不能滿足需求了,就需要繼續添加新的硬盤,這個時候光盤的設備文件名的識別會自動向後便變動,如有三塊硬盤,光盤的設備文件名hdd。

這個時候就會導致,光盤的設備文件就不是固定的了,會導致我在一臺電腦上掛載光盤,就先要查詢光盤的設備文件名是什麼,然後在進行掛載。所以在CentOS6.x以後的系統,光盤的設備文件名就固定了爲sr0,第一臺光驅的設備文件名爲sr0,第二臺光驅的設備文件名爲sr1,以此類推。這樣做的好處是和硬盤的設備文件名就不相干了。

3、掛載光盤

[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命令在確認一下。
在這裏插入圖片描述

4、訪問關盤中的數據

需要去掛載點中訪問光盤的數據,在 /mnt/cdrom/目錄中。
在這裏插入圖片描述
這裏邊都是光盤中的內容。

5、卸載掛載點

無論是掛載的光盤還是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目錄中,要退出在進行卸載。
注意:卸載的時候需要退出光盤目錄,才能正常卸載。

6、掛載點爲什麼要使用空目錄

#在/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目錄又迴歸原始位置,就又可以讀取出原來文件中的數據了。

這就是爲什麼說一定要用空目錄做掛載點,因爲有數據的目錄,一旦作爲掛載點,原來目錄中的數據是不能查看也不能刪除,佔用系統資源,不合理。

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