关于硬盘的动态识别和固定路径

UOS和麒麟在添加一个额外的硬盘、分区时,通常是将他的路径设置为/media/user_name/UUID/media/user_name/Part_name,也即使用分区的ID或名称来命名。这与U盘是一致的。

但是这个路径存储文件还好,当需要运行硬盘上的软件,或要求指定的文件保存到硬盘上时,这个过长的路径、不确定的名称,都可能会引发问题。

挂载一个分区到系统指定路径

现有一个分区/dev/sda1,其UUID为"123456-ABCD",其格式为 ext4。我们需要将这个分区挂载到 /data 目录中。

  1. 检查磁盘、分区信息,执行指令lsblk -f

      user@PC: ~$ lsblk -f
    NAME   FSTYPE   FSVER LABEL UUID            FSAVAIL FSUSE% MOUNTPOINTS
    sda
    └─sda1 ext4     1.0         123456-ABCD     100G     1%     
      

    记录查询到的 sda1 的UUID部分。注意,如果Mountpoints 已经有值了,且不是/media/user_name的话,这个分区是已经被固定使用的了,不能轻易修改。

  2. 检查即将被挂载的目录。以/data为例,如果不存在,则需要创建这个目录:

      sudo  mkdir  /data
    sudo  chmod  777  /data
    sudo  chown  user:user  /data
      

    如果该文件夹存在,里面有内容的话,需要备份里面的文件。在挂载分区后,所有文件都将会被隐藏。

  1. 编辑配置文件,挂载分区

    mount指令并不可靠,我们修改系统配置文件来实现挂载目的。但是,添加的内容如果有任何错误,都可能导致系统无法启动。修改完务必验证。

    使用管理员权限编辑 /etc/fstab 文件。

    在文件中添加下面的内容:

      UUID=123456-ABCD   /data    ext4    defaults   0     0
      

    其中,UUID=后面替换成实际的ID信息,/data替换成需要挂载的路径,ext4替换成分区的实际格式。其他内容保持默认即可。可以对比文件里其他的行来对比输入的内容是否完整。

  2. 验证文件是否正确

    在重启电脑前必须进行验证,否则一旦有错误,电脑大概率是进不了桌面的。

    如果在第一步中,MOUNTPOINT是有值的,那么应该先卸载这个分区: sudo umount /dev/sda1

      # 让系统按照fstab文件的配置自动挂载
    sudo  sudo mount -a
    
    # 检查分区挂载位置是否正确
    lsblk
    
    # 也可以到文件浏览器中查看对应的目录是否正确(通过文件变化等观察
      

    * 注意,如果上述指令报错了,请立即返回检查、修正/etc/fstab文件。

  3. 上一步成功后,才能重启系统查看效果。

将新分区的某个文件夹挂载到系统中

这个步骤是类似于UOS的数据盘处理方式:

数据盘的分区挂载到/data,下有home、var、opt等多个子目录,并将这些子目录分别挂载到系统的/home、/var、/opt等。

现假设 一个分区/dev/sda1 下有一个log目录,需要将其替换到系统的 /var/log 目录上,用来将系统日志都保存到单独的分区里面去。

* 请灵活设定挂载路径,本教程只是一个例子,一个参考,无脑抄下来可能使你的电脑丢失文件、无法启动。

  1. 首先,按照上一部分的内容挂载这个分区。

    挂载分区后需要先验证挂载成功。重启后才能做下面的步骤。

  2. 然后在分区内创建 log 目录: mkdir /data/log

  3. 管理员权限编辑 /etc/fstab 文件,在文件最后添加如下内容:

      /data/log /var/log/    none     defaults,bind     0    0
      

    上面的内容中,/data/log 是新分区中文件夹的名字,/var/log是目标文件夹的名字,请根据实际情况进行选择。其他部分照抄不要改。

  4. 同样的,使用sudo sudo mount -a指令进行验证,并到系统对应的路径下,查看文件是否发生了变化。

    如果没有变化、或者指令执行报错,那请返回修改,不能盲目重启。

  5. 上面的内容成功后才能重启查看效果。