Linux 系统下外界存储设备(U盘/移动硬盘等)在有些发行版下会默认自动挂载,并可以操作其中的文件,但部分系统默认并不挂载,则需要进行如下操作。
目录解释
|
|
/media |
存放自动挂载的硬件(载点都是由系统自动建立和删除的) |
/mnt |
存放手动挂载的硬件 |
/dev |
存放访问外部设备文件的接口 |
确定磁盘名称
使用 fdisk
命令查看已存在的磁盘信息,获取设备名称(路径):
得到类似如下结果。一般 /dev/sda
为系统盘,外接存储为 /dev/sdb
,或是通过从磁盘大小参数判断是否为自己的U盘。此处以 /dev/sdb1
为例:
1 2
| Device Boot Start End Sectors Size Id Type /dev/sdb1 * 2048 60549119 60547072 28.9G c W95 FAT32 (LBA)
|
硬盘的分区简介:
/dev/ 这个字串是所有设备文件所在的目录名。因为分区在硬盘上,而硬盘是设备,所以这些文件代表了在/dev/上所有可能的分区。
分区名的前两个字母标明分区所在设备的类型。通常是 hd* (IDE 磁盘)或 sd* (SCSI 磁盘)。第三个字母标明分区所在的设备。
例如,/dev/hda(第一个 IDE 磁盘)或 /dev/sdb(第二个 SCSI 磁盘),最后的数字代表分区。前四个分区(主分区或扩展分区)是用数字从 1 排列到 4。逻辑分区从 5 开始。例如,/dev/hda3 是在第一个 IDE 硬盘上的第三个主分区或扩展分区;/dev/sdb6 是在第二个 SCSI 硬盘上的第二个逻辑分区。
挂载(mount)/卸载(umount)磁盘
- 挂载点必须是一个目录;
- 挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用,umount 以后会恢复正常;
- 光盘、软盘、其他操作系统使用的文件系统的格式与 Linux 使用的文件系统格式是不一样的。光盘是 ISO9660;软盘是 fat16 或 ext2;Windows NT 是 fat16、NTFS;Windows98 是 fat16、fat32;Windows2000 和 WindowsXP 是 fat16、fat32、 NTFS。挂载前要了解 Linux 是否支持所要挂载的文件系统格式。
为U盘挂载创建一个文件夹(挂载点):
执行以下命令挂载磁盘,成功后 /mnt/usbmedia
目录即为U盘内容:
1 2 3
| mount /dev/sdb1 /mnt/usbmedia df -h lsblk -f
|
取消挂载(卸载/弹出)磁盘:
1 2 3
| umount /dev/sdb1 umount /mnt/usbmedia rmdir –p /mnt/usbmedia
|
Troubleshooting
NTFS磁盘挂载失败
- 报错提示:Error mounting: mount: unknown filesystem type ‘ntfs’。
若你的U盘文件系统是 Windows 下常用的比如 NTFS,但当前的 Linux 系统又无法读取你 NTFS 文件系统,此时可安装 ntfs-3g
软件:
1 2
| apt-get install ntfs-3g mount -t ntfs /dev/sdb1 /mnt/usbmedia
|
取消挂载失败
若取消挂载时显示还有进程在访问挂载点,此时可尝试强制关闭该进程:
1 2
| sudo lsof /mnt/usbmedia kill [PID]
|
文件访问失败
若想把 Linux 系统内文件拷贝到U盘中去,但显示权限问题(指令已经用sudo修饰),此时可用如下指令修改文件权限:
1 2
| chmod 777 /mnt/usbmedia chmod 777 -R /mnt/usbmedia
|
- 注意:上述指令指的是将指定文件(夹)的权限提升到最大。
mount命令基本用法
1
| mount [-fnrsvw] [-t vfstype] [-o options] device dir
|
参数 |
|
device |
要挂载的设备 |
dir |
表示挂载点 |
-t |
指定设备的文件系统类型 |
文件系统类型选项 |
|
minix |
Linux最早使用的文件系统 |
ext2 |
Linux目前的常用文件系统 |
msdos |
MS-DOS 的 FAT |
vfat |
Win85/98 的 VFAT |
nfs |
网络文件系统 |
iso9660 |
CD-ROM光盘的标准文件系统 |
ntfs |
Windows NT的文件系统 |
hpfs |
OS/2文件系统,Windows NT 3.51之前版本的文件系统 |
auto |
自动检测文件系统 |
自动挂载
配置 /etc/fstab
文件,可以实现每次开机时,Linux 自动将需要挂载的 Linux 分区挂载上。
1 2 3 4 5 6 7
|
/dev/sdb1 /mnt/usbmedia vfat defaults,codepage=936,iocharset=cp936 0 0 /image.iso /mnt/isoimage iso9660 defaults,ro,loop 0 0 /dev/cdrom1 /mnt/cdrom1 udf,iso9660 noauto,owner,kudzu,ro 0 0
|
default包含参数 |
|
rw |
以可读写模式挂载 |
suid |
开启用户ID和群组ID设置位 |
dev |
可解读文件系统上的字符或区块设备 |
exec |
可执行二进制文件 |
auto |
自动挂载 |
nouser |
使一般用户无法挂载 |
async |
以非同步方式执行文件系统的输入输出操作 |
- 注意:
codepage=936
和 iocharset=cp936
参数以支持中文文件名。
参考资料