Linux下每个文件系统都有独立的inode,block,super block等信息,这个文件系统要挂载到目录树才可以使用,将文件系统与目录树结合的操作称为挂载,反之则为卸载。
也就是说,挂载点一定是目录,而目录是进入磁盘分区(也就是文件系统)的入口。
挂载时有三点需要注意:
- 单一文件系统不应该重复被挂载到不同的挂载点(目录)中;
- 单一目录不应该重复挂载多个文件系统
这两点可以类比windows磁盘与盘符的关系,一一对应。
- 作为挂载点的目录理论上应该是空目录
如果目录不是空的,那么挂载文件系统后目录下东西会暂时消失,直到所挂载设备卸载后原内容才会显示出来
下面是具体操作运行环境:
Ubuntu 16.04 LTS
kernel版本:Linux version 4.4.0-96-generic
1.挂载操作
首先需要root权限,如果是新安装的Ubuntu需要执行以下操作设置root密码
- 图形界面下按Ctrl+ALT+F1~F6(F1~F6任意一个都可以)进入命令行模式,桌面打开Terminal也可
- 执行
sudo passwd root
- 输入当前用户密码
- 根据提示输入两次root用户密码,设置完毕
2.卸载操作:
- 执行su root切换到root用户
- 执行df -h显示当前所有文件系统,如图,ubuntu安装时已经自动帮我们挂载了sda1,sda4俩个分区
root@ubuntu:/home/python# df -h
文件系统 容量 已用 可用 已用% 挂载点
udev 973M 0 973M 0% /dev
tmpfs 199M 6.4M 192M 4% /run
/dev/sda1 21G 20G 20M 100% /
tmpfs 992M 176K 992M 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 992M 0 992M 0% /sys/fs/cgroup
tmpfs 199M 60K 199M 1% /run/user/1000
/dev/sda4 15G 38M 14G 1% /home/python
- 下面我们把sda4卸载掉
执行umount /dev/sda4
Linux中奉行“没有消息就是好消息”,所以卸载之后没有什么提示,当参数错误时才会报错
然后查看卸载后系统中还有的设备
执行df -h,可以看到这个设备已经被卸载掉了
挂载操作:
我们刚才卸载掉了/dev/sda4-->/home/python
,现在我们把它挂载到根目录下test文件夹下
首先执行一些初始化操作
cd /
mkdir test
直接挂载
mount /dev/sda4 /test
查看结果
df -h
发现磁盘已经被挂载上了
挂载上磁盘后,我们就可以从目录进入文件系统查看其中数据了
执行
cd test
ls -l
理解Linux文件系统中挂载的概念可以把它类比成windows系统下给一个新磁盘分配盘符,根据盘符才能进入磁盘之中访问数据,但是还是有些许不同,windows是先有磁盘才有目录,而linux可以把文件系统(磁盘)挂载到一个目录中,这是ext2/3文件系统自身特性决定的, 更多详细介绍可以参考《鸟哥的Linux私房菜》
磁盘分区
仅仅是通过修改VMware进行虚拟磁盘扩容, Ubuntu还不能识别扩展后的容量, 此时还需进行一步对其进行分区. 这里介绍使用fdisk对磁盘进行分区的步骤
- 查看已有分区
sudo fdisk -l
- 分区过程
输入下面命令进入fdisk命令模式(假设要分区的硬盘为/dev/sda):
sudo fdisk /dev/sda
根据上图提示, 输入m可以显示帮助信息:
根据上图提示, 输入n添加一个新分区.
在后面的分区类型选择中输入p(创建主分区), 其余的设施保持默认值即可.
最后输入w保持分区结果.
- 格式化分区
假设通过上述步骤所创建的新分区为/dev/sda4, 可以通过下面命令将其格式化为ext4文件系统格式:
sudo mkfs -t ext4 /dev/sda4
- 挂载分区
假设新分区为/dev/sda4, 挂载点为/home, 可根据实际情况修改.
4.1 手动挂载
sudo mount /dev/sda4 /home
4.2 自动挂载
若希望开机时自动挂载, 可在/etc/fstab最后一行添加:
/dev/sda4 /home ext4 defaults 0 0
参考资料: