动机
把文件系统的挂载相关知识学习下。
几个有用的工具命令
列出系统中所有磁盘列表(包括未挂载的):
lsblk -f
lsblk
助记:老师不离开示例
1 2 3 4 5 6 7
$ lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 ntfs 系统保留 585A8E625A8E3D2E └─sda2 vfat wdisk 9111-7321 /media/lab301/wdisk ...
其中
NAME
:设备文件名(省略\dev
等先导目录),FSTYPE
:文件系统类型;UUID
:全局唯一标识符(Universally uniue indentifier),Linux会为系统内所有的设备都给予一个独一无二的标识符,这个标识符可以用来挂载或是使用这个设备;MOUNTPOINT
:挂载点。lsblk
也可单独使用,列出其他一些信息。示例
1 2 3 4 5 6 7
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 232.9G 0 disk ├─sda1 8:1 0 100M 0 part └─sda2 8:2 0 232.8G 0 part /media/lab301/wdisk ...
其中
RM
:是否为可卸载设备,SIZE
:容量,RO
:是否为只读设备,TYPE
:是磁盘disk
或分区part
等,- 其他可查看磁盘信息的命令:
sudo fdisk -l
,df -h
- 查看某个文件夹的实际所在设备与挂载点:
df <path/to/dir>
文件系统的挂载与卸载
挂载
文件系统要链接到目录树上才能被我们使用。将文件系统与目录树结合的操作称为挂载。挂载点一定是目录,该目录为进入该文件系统(磁盘分区)的入口。挂载前有几点需要明确:
- 单一文件系统不应该被重复挂载在不同的挂载点(目录)中;
- 单一目录不应该挂载多个系统;
- 要作为挂载点的目录,理论上应该是空目录才对。否则会导致该目录下其他文件暂时性地消失(卸载后会重新出现)。
挂载文件系统使用mount
命令。它的一些简单操作示例如下:
1
2
3
$ mount -a # 依照配置文件etc/fstab的数据将所有未挂载的磁盘都挂载上来
$ mount # 当前挂载信息
$ mount <NAME> or <UUID> or <LABEl> <MOUNTPOINT> # 通过<NAME> or <UUID> or <LABEl>索引到某一文件系统,将其挂载到MOUNTPOINT
示例
STEP1
:创建挂载点
就是新建一个空目录
1
mkdir ~/dir
STEP2
:挂载
将
sda2
挂载到~/wdir
。注意前面要加上/dev
1
mount /dev/sdb2 ~/dir
STEP3
:查看是否挂载成功
1
df # 或者使用lsblk 、mount命令查看当前磁盘挂载情况
显示
1
2
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sdb2 2930134012 1450305892 1479828120 50% /home/lab301/dir
表示挂载成功。
卸载
卸载文件系统使用umount
命令。
1
umount <NAME> or <MOUNTPOINT> # 将<NAME>或者<MOUNTPOINT>对应的文件系统卸载
设置启动时自动挂载
手动挂载的话,每次重新启动后需要重复操作。可通过修改/etc/fstab
实现启动时自动挂载。/etc/fstab
是启动时的配置文件。
首先为该文件增加修改权限:
1
sudo chmod 777 /etc/fstab
打开该文件
1
vi /etc/fstab
在最后添加一行,每一行的格式为
1
[设备NAME/UUID等] [挂载点] [文件系统] [文件系统参数] [dump] [fsck]
其中文件系统
可通过lsblk -f
(手动)查看,一般情况下文件系统参数
、dump
、fsck
依次填写defaults 0 0
就可以了(更详细的可以参考鸟哥的Linux私房菜,手动敲了半天才发现原来有电子版…)
示例:要将 /dev/vda4
设置为启动时自动挂载在主文件夹的dir
目录下
STEP1
:修改配置文件。在 /etc/fstab
中按上述添加一行
1
/dev/vda4 /home/user/dir ntfs defaults 0 0
注意这里挂载点需要显式地写起,比如这里
/home/user/
是我的主文件目录,写~/
,/
都是不对的(后面的测试过程也会提示错误。)
STEP2
:测试配置修改是否正确。以下两步为测试上述文件配置是否正确的步骤。测试很重要!因为这个文件如果写错了, 则你的 Linux 很可能将无法顺利开机完成!为了便于测试,首先查看该硬盘是否已经挂载,如果挂载了,则先将其卸载
1
2
3
4
5
6
7
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda4 1038336 32864 1005472 4% /data/xfs
# 竟然不知道何时被挂载了?赶紧给他卸载先!
# **因为,如果要被挂载的文件系统已经被挂载了(无论挂载在哪个目录),那测试就不会进行喔!**
$ umount /dev/vda4
STEP3
:挂载测试
1
2
3
# 依照配置文件etc/fstab的数据将所有未挂载的磁盘都挂载上来
$ mount -a # 如果报错,则根据报错信息对/etc/fstab进行修改
$ lsblk -f # 查看/dev/vda4是否已经成功挂载,如果成功挂载,则配置成功
致谢
以上内容根据《鸟哥的Linux私房菜》整理而来。感谢鸟哥的工作!这本书也有Web版,有需要的读者可以点击链接阅读学习。