通常我們在 /mnt 或 /media 目錄下新建一個目錄udisk作為掛載點
sudo mkdir /mnt/udisk
1.手動掛載:
掛載命令:
sudo mount -o uid=pi,gid=pi /dev/sda1 /mnt/udisk
卸載命令:
sda1 是取決於你的實際情況,a表示第一個硬盤,1表示第一個分區。
如果你的U盤或移動硬盤使用的是 exFAT 格式,安裝 exfat-fuse 軟件之后 mount 就支持了。
sudo apt-get install exfat-fuse
2.開機掛載:
如果想開機自動掛載,而不是每次手工執行,可以編輯 /etc/fstab 文件。在末尾添加一行:
設備序號 掛載點 文件系統類型
[ruby] view plaincopy KERNEL!="sd*", GOTO="media_by_label_auto_mount_end" SUBSYSTEM!="block",GOTO="media_by_label_auto_mount_end" IMPORT{program}="/sbin/blkid -o udev -p %N" ENV{ID_FS_TYPE}=="", GOTO="media_by_label_auto_mount_end" ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}" ENV{ID_FS_LABEL}=="", ENV{dir_name}="Untitled-%k" ACTION=="add", ENV{mount_options}="relatime,sync" ACTION=="add", ENV{ID_FS_TYPE}=="vfat", ENV{mount_options}="iocharset=utf8,umaskk=000" ACTION=="add", ENV{ID_FS_TYPE}=="ntfs", ENV{mount_options}="iocharset=utf8,umaskk=000" ACTION=="add", RUN+="/bin/mkdir -p /mnt/udisk/", RUN+="/bin/mount -o $env{mount__options} /dev/%k /mnt/udisk/" ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /mnt/udisk/}", RUN+="//bin/rmdir /mnt/udisk/" LABEL="media_by_label_auto_mount_end"
出處:https://indream.cn/2016/07/21/pi-mount-udisk/
===================================================================================================
外接U盤或移動硬盤時,默認不會自動掛載,所以需要用 mount 命令掛載。通常我們在 /mnt 或 /media 目錄下新建一個目錄作為掛載點。比如:
|
1
2
3
4
|
sudo
mkdir
/mnt/1GB_USB_flash
sudo
mount
-o uid=pi,gid=pi
/dev/sda1
/mnt/1GB_USB_flash
//
用完之后卸載
sudo
umount
/mnt/1GB_USB_flash
|
sda1 是取決於你的實際情況,a表示第一個硬盤,1表示第一個分區。
掛載exFAT格式的硬盤
FAT 格式U盤 mount 本身就能支持,但如果你的U盤或移動硬盤使用的是 exFAT 格式,mount 會說不支持。沒關系,安裝 exfat-fuse 軟件之后 mount 就支持了。
|
1
|
sudo
apt-get
install
exfat-fuse
|
如果想開機自動掛載,而不是每次手工執行,可以編輯 /etc/fstab 文件。比如在末尾添加一行:
|
1
|
/dev/sda1 /mnt/usbdisk vfat rw,defaults 0 0
|
掛載NTFS格式的硬盤(讀寫方式掛載)
默認掛載NTFS格式的硬盤只有只讀權限,需要借助其它工具實現。
|
1
2
3
4
5
6
7
8
9
|
#安裝所需軟件包
sudo
apt-get
install
fuse-utils ntfs-3g
#加載內核模塊
modprobe fuse
#編輯fstab讓移動硬盤開機自動掛載
sudo
nano
/etc/fstab
#在最后一行添加如下內容
/dev/sda1
/mnt/myusbdrive
ntfs-3g defaults,noexec,
umask
=0000 0 0
#保存重啟,即可生效
|
掛載FAT32格式的硬盤
|
1
2
3
4
5
6
7
|
#創建掛載點
sudo
mkdir
/mnt/myusbdrive
#編輯fstab讓移動硬盤開機自動掛載
sudo
nano
/etc/fstab
#在最后一行添加如下內容
/dev/sda1
/mnt/myusbdrive
auto defaults,noexec,
umask
=0000 0 0
#保存重啟,即可生效
|
說明:
sda1是取決於你的實際情況,a表示第一個硬盤,1表示第一個分區。
umask=0000 0 0
前面四個0就是對所有人,可讀可寫可執行,
后面兩個0,第一個代表dump,0是不備份
第二個代表fsck檢查的順序,0表示不檢查
卸載:sudo umount /mnt/myusbdrive
查看掛載情況可使用以下命令。
|
1
2
|
cd
/mnt/myusbdrive
ls
|
掛載U盤的更多細節請參考 RPi Adding USB Drives。
出處:樹莓派實驗室
==================================================================================================
卸載USB設備
解掛文件系統。umount [-ahnrvV][-t <文件系統類型>][文件系統]
umount可卸除目前掛在Linux目錄中的文件系統。
線上在用的nfs訪問時出了問題,導致/data1目錄ls都無法進行輸出,需要進行卸載掉 。而直接卸載時由於目錄正被其他進程占用 ,無法直接umount,這里就結合fuser進行umount卸載。
1、直接卸載
[root@localhost /]# umount /data1/img
umount: /data1/img: device is busy
umount: /data1/img: device is busy
2、提示被占用,使用強制卸載
[root@localhost /]# umount -f /data1/img
umount2: Device or resource busy
umount: /data1/img: device is busy
umount2: Device or resource busy
umount: /data1/img: device is busy
注:使用-f 參數進行強制卸載時一般建議等一會兒再進行下面的操作,一些情況下處理需要1-2分鍾的時間。
3、使用umount -f,問題依舊。使用fuser命令,先確認有那些進程在占用該目錄
[root@localhost /]# fuser -cu /data1/img
/data1/img: 1757c(mysql)
上面查看發現是pid為1757的mysql用戶起的進程在占用該目錄。
4、確認mysql所起的進程可以kill 后,可以直接使用fuser 的k參數進行kill (也可以手動停掉1757進程再卸載)
[root@localhost /]# fuser -ck /data1/img
/data1/img: 1757c
注:這里k 就是kill的意思,注意沒進行確認前要謹慎使用該參數。
確認
[root@localhost /]# fuser -c /mnt
[1]+ Killed dd if=1g of=/dev/null bs=1M (wd: /mnt)
(wd now: /)
另外,umount異常時,也經常會用到 lsof 指定確認文件被什么進程占用
出處:https://blog.csdn.net/wendellluntan/article/details/73087874
=============================================================================================
最后在給一個 fuser命令 用法詳解 做為參考:
