Home Ubuntu文件系统_硬盘挂载与卸载
Post
Cancel

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

动机

把文件系统的挂载相关知识学习下。

几个有用的工具命令

  • 列出系统中所有磁盘列表(包括未挂载的): 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 -ldf -h
  • 查看某个文件夹的实际所在设备与挂载点:df <path/to/dir>

文件系统的挂载与卸载

挂载

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

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

挂载文件系统使用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(手动)查看,一般情况下文件系统参数dumpfsck依次填写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版,有需要的读者可以点击链接阅读学习。

This post is licensed under CC BY 4.0 by the author.

一些基本概念

Docker学习