通常我们在 /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命令 用法详解 做为参考: