umount出現device is busy

umount出現device is busy

     最近幾次發現mount了一個網絡共享磁盤後, 就無法umount, 老是提示:device is busy, 服務又不能停止的。 無意發現可以用"umount -l"解決!
    上網找下umount -l,發現這裏講得不錯:
  2.       mount 的基本用法是?

格式: mount [- 參數 ] [ 設備名稱 ] [ 掛載點 ]

其中常用的參數有:

-a 安裝在 /etc/fstab 文件中類出的所有文件系統。

-f 僞裝 mount ,作出檢查設備和目錄的樣子,但並不真正掛載文件系統。

-n 不把安裝記錄在 /etc/mtab 文件中。

-r 講文件系統安裝爲只讀。

-v 詳細顯示安裝信息。

-w 將文件系統安裝爲可寫,爲命令默認情況。

-t < 文件系統類型 > 指定設備的文件系統類型,常見的有:

ext2 linux 目前常用的文件系統

msdos MS-DOS fat ,就是 fat16

vfat windows98 常用的 fat32

nfs 網絡文件系統

iso9660 CD-ROM 光盤標準文件系統

ntfs windows NT/2000/XP 的文件系統

auto 自動檢測文件系統

-o < 選項 > 指定掛載文件系統時的選項,有些也可寫到在 /etc/fstab 中。常用的有:

defaults 使用所有選項的默認值( auto nouser rw suid

auto/noauto 允許 / 不允許以 –a 選項進行安裝

dev/nodev / 不對文件系統上的特殊設備進行解釋

exec/noexec 允許 / 不允許執行二進制代碼

suid/nosuid 確認 / 不確認 suid sgid

user /nouser 允許 / 不允許一般用戶掛載

codepage=XXX 代碼頁

iocharset=XXX 字符集

ro 以只讀方式掛載

rw 以讀寫方式掛載

remount 重新安裝已經安裝了的文件系統

loop 掛載迴旋設備

需要注意的是,掛載點必須是一個已經存在的目錄,這個目錄可以不爲空,但掛載後這個目錄下以前的內容將不可用, umount 以後會恢復正常。使用多個 -o 參數的時候, -o 只用一次,參數之間用半角逗號隔開:

# mount –o remount,rw /

例如要掛載 windows 下文件系統爲 FAT32 D 盤,一般而言在 Linux 下這個分區對應 /dev/hda5 ,根據具體的分區情況會有不同,這裏就以 hda5 來舉例說明:

# mkdir /mnt/hda5 // 創建 hda5 的目錄作爲掛載點,位置和目錄名可自定義 //

# mount -t vfat /dev/hda5 /mnt/hda5

一般而言, Linux 會自動探測分區的文件系統,除非讓你指定時,否則 -t vfat 可以省掉。

# mount /dev/hda5 /mnt/hda5

這樣就可以進入 /mnt/hda5 目錄去訪問分區中的資源了。

3.       爲什麼 mount 上分區後顯示不了中文文件爲問號 / 亂碼?

顯示問號表明你的系統中沒有可識別使用的中文字體,請先安裝中文字體。確保你的系統已經可以很好的顯示中文。顯示爲亂碼一般是 mount 默認使用的文件系統編碼和文件系統中文件的實際編碼不一致造成的。 要想正常顯示中文文件, mount 時需要用到 -o 參數裏的 codepage iocharset 選項。 codepage 指定文件系統的代碼頁,簡體中文中文代碼是 936 iocharset 指定字符集,簡體中文一般用 cp936 gb2312

# mount –o iocharset=gb2312 codepage=936 /dev/hda5 /mnt/hda5

一般來說 mount –o iocharset=cp936 /dev/hda5 /mnt/hda5 就可以解決問題了。

如果這樣做了以後還有問題,請嘗試 UTF-8 編碼:

# mount –o iocharset=utf8 /dev/hda5 /mnt/hda5

4.       爲什麼 mount 上去以後分區普通用戶不可寫?

mount 時加上 –o umask=000 即可:

# mount –o umask=000, iocharset=cp936 /dev/hda5 /mnt/hda5

5.       爲什麼 mount 上去後的分區中的文件都變成短文件名了?

這是文件系統掛錯的原因,將 FAT32 掛載成 FAT16 時就會出現這種情況,先 umount ,然後用 –t vfat 重新掛載即可解決問題。

# mount –t vat /dev/hda5 /mnt/hda5

7.       如何掛載 U 盤和 mp3

如果計算機沒有其它 SCSI 設備和 usb 外設的情況下,插入的 U 盤的設備路徑是 /dev/sda1 ,用命令:

# mkdir /mnt/u

# mount /dev/sda1 /mnt/u

掛載即可。

8.       可以直接使用 iso 文件嗎?

可以,就是 mount 的這一選項使得 Linux 下有免費虛擬光驅的說法,具體用法是:

# mkdir /mnt/iso

# mount –o loop linux.iso /mnt/iso

當然,掛載以後掛載點 /mnt/iso 也是隻讀的。

12. 如何開機自動掛載分區?

每次掛載都要輸入那麼長的命令的確是繁瑣了些,只要將分區信息寫到 /etc/fstab 文件中即可實現系統啓動的自動掛載,例如對於 /dev/hda5 的自動掛載添加如下的行即可:

/dev/hda5 /mnt/hda5 vfat defaults,iocharset=cp936, rw 0 0

13. 如何掛載 samba 分區?

# mkdir /mnt/share

# mount -t smbfs -o username=root,password=abc,codepage=936,iocharset=gb2312 //192.168.1.100/share /mnt/share

如果中文顯示不正常請嘗試 UTF-8 編碼。當然可以寫到 fstab 中實現自動掛載。

14. mount --bind 是什麼意思?

mount --bind 是將一個目錄中的內容掛載到另一個目錄上,用法是

# mount --bind olddir newdir

這個命令使得自己搭建的 FTP 要共享某個目錄的時候變得特別方便。如果要取消 mount 用命令:

# mount --move olddir newdir 即可。

如果 mount --bind 也想寫入 fstab 中的話格式如下:

olddir newdir none bind 0 0

 

16. 爲什麼 umount 的時候老顯示 device busy

這是因爲有程序正在訪問這個設備,最簡單的辦法就是讓訪問該設備的程序退出以後再 umount 。可能有時候用戶搞不清除究竟是什麼程序在訪問設備,如果用戶不急着 umount ,則可以用 :

# umount -l /mnt/hda5

來卸載設備。選項 –l 並不是馬上 umount ,而是在該目錄空閒後再 umount 。還可以先用命令 ps aux 來查看佔用設備的程序 PID ,然後用命令 kill 來殺死佔用設備的進程,這樣就 umount 的非常放心了。

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