Ubuntu文件系统/硬盘挂载与卸载

动机

重新安装Ubuntu系统之后发现硬盘的挂载位置非常之迷,而且甚至有时会自动变化,导致文件时常找不到,再不能开心地傻瓜式使用了。把文件系统的挂载相关知识学习下。

几个有用的工具命令

  • 列出系统中所有磁盘列表:lsblk

    示例

    $ lsblk
    	
    NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    loop0    7:0    0   956K  1 loop /snap/gnome-logs/100
    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
    sdb      8:16   0   2.7T  0 disk 
    ├─sdb1   8:17   0   128M  0 part 
    └─sdb2   8:18   0   2.7T  0 part /media/lab301/DataSet
    sdc      8:32   0 931.5G  0 disk 
    ├─sdc1   8:33   0   139G  0 part  /media/lab301/0EF30E6E0EF30E6E
    ├─sdc2   8:34   0 110.9G  0 part 
    

    会列出NAME:设备文件名(省略\dev等先导目录),RM:是否为可卸载设备,SIZE:容量,RO:是否为只读设备,TYPE:是磁盘disk或分区part等,MOUNTPOINT:挂载点。

  • 列出设备的UUID等信息:lsblk -f

    示例

    $ lsblk -f
    
    NAME   FSTYPE   LABEL    UUID                                 MOUNTPOINT
    loop0  squashfs                                               /snap/gnome-logs/100
    sda                                                           
    ├─sda1 ntfs     系统保留 585A8E625A8E3D2E                     
    └─sda2 vfat     wdisk    9111-7321                            /media/lab301/wdisk
    sdb                                                           
    ├─sdb1                                                        
    └─sdb2 ntfs     DataSet  9EFEB2DDFEB2AD41                     /media/lab301/DataSet
    sdc                                                           
    ├─sdc1 ntfs              FE36065436060E79      /media/lab301/0EF30E6E0EF30E6E               
    ├─sdc2 ntfs              7AA4FCC6A4FC8643                         
    

    UUID是全局唯一标识符(Universally uniue indentifier),Linux会为系统内所有的设备都给予一个独一无二的标识符,这个标识符可以用来挂载或是使用这个设备。

文件系统的挂载与卸载

挂载

文件系统要链接到目录树上才能被我们使用。将文件系统与目录树结合的操作称为挂载。挂载点一定是目录,该目录为进入该文件系统(磁盘分区)的入口。挂载前有几点需要明确:

  1. 单一文件系统不应该被重复挂载在不同的挂载点(目录)中;
  2. 单一目录不应该挂载多个系统;
  3. 要作为挂载点的目录,理论上应该是空目录才对。否则会导致该目录下其他文件暂时性地消失(卸载后会重新出现)。

挂载文件系统使用mount命令。它的一些简单操作示例如下:

$ mount -a  # 依照配置文件etc/fstab的数据将所有未挂载的磁盘都挂载上来
$ mount      # 当前挂载信息
$ mount <NAME> or <UUID> or <LABEl>    <MOUNTPOINT> # 通过<NAME> or <UUID> or <LABEl>索引到某一文件系统,将其挂载到MOUNTPOINT

示例

STEP1:创建一个挂载点,就是新建一个空目录

mkdir ~/dir

STEP2:挂载

mount /dev/sdb2 ~/dir

STEP3:查看是否挂载成功

df   # 或者使用lsblk 、mount命令查看当前磁盘挂载情况

显示

文件系统            1K-块       已用       可用 已用% 挂载点
/dev/sdb2      2930134012 1450305892 1479828120   50% /home/lab301/dir

表示挂载成功。

卸载

卸载文件系统使用umount命令。

umount <NAME> or <MOUNTPOINT>  # 将<NAME>或者 <MOUNTPOINT>对应的文件系统卸载

设置启动时自动挂载

手动挂载的话,每次重新启动后需要重复操作。可通过修改/etc/fstab实现启动时自动挂载。/etc/fstab是启动时的配置文件。在最后添加一行,每一行的格式为

[设备NAME/UUID等]  [挂载点]  [文件系统]  [文件系统参数]  [dump]  [fsck]

其中文件系统可通过lsblk -f(手动)查看,一般情况下文件系统参数dumpfsck依次填写defaults 0 0就可以了(更详细的可以参考鸟哥的Linux私房菜,手动敲了半天才发现原来有电子版…)

示例:要将/dev/vda4设置为启动时自动挂载在主文件夹dir目录下

STEP1:在/etc/fstab中按上述添加一行

/dev/vda4  /home/user/dir  xfs  defaults  0 0

注意这里挂载点需要从根目录显式地写起,比如这里/home/user/是我的主文件目录,但写~/,/都是不对的(后面的测试过程也会提示错误。)

STEP2:以下两步为测试上述文件配置是否正确的步骤。测试很重要!因为这个文件如果写错了, 则你的 Linux 很可能将无法顺利开机完成!为了便于测试,首先查看该硬盘是否已经挂载,如果挂载了,则先将其卸载

$ df
Filesystem              1K-blocks    Used Available Use% Mounted on
/dev/vda4                 1038336   32864   1005472   4% /data/xfs
# 竟然不知道何时被挂载了?赶紧给他卸载先!
# **因为,如果要被挂载的文件系统已经被挂载了(无论挂载在哪个目录),那测试就不会进行喔!**

$ umount /dev/vda4

STEP3:挂载测试

# 依照配置文件etc/fstab的数据将所有未挂载的磁盘都挂载上来
$ mount -a # 如果报错,则根据报错信息对/etc/fstab进行修改
$ lsblk -f # 查看/dev/vda4是否已经成功挂载,如果成功挂载,则配置成功

致谢

以上内容根据《鸟哥的Linux私房菜》整理而来。感谢鸟哥的工作!这本书也有Web版,有需要的读者可以点击链接阅读学习。

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值