为什么你总是做不好选择?

修改挂载点的完整流程

查看当前挂载信息

首先确认目标设备的标识符和原挂载点:

lsblk -f   # 列出所有块设备及文件系统类型
df -h      # 查看已挂载设备及使用情况

输出示例:

sdb
├─sdb1 ext4 /mnt/old_mount

记录设备名(如 /dev/sdb1)和原挂载点(如 /mnt/old_mount)。

卸载原设备

sudo umount /dev/sdb1   # 通过设备名卸载sudo umount /mnt/old_mount  # 通过挂载点卸载

若提示”target is busy”:

  • 退出占用文件的程序。
  • 使用 lsof /dev/sdb1 查找占用进程并终止。
  • 强制卸载:sudo umount -l /dev/sdb1(慎用)。

创建新挂载点目录

sudo mkdir /new/mount_point   # /data 或 /mnt/new_disk

临时挂载测试(可选)

sudo mount /dev/sdb1 /new/mount_point
df -h | grep sdb1  # 验证是否成功

测试后卸载:sudo umount /dev/sdb1。

永久修改 /etc/fstab

编辑系统挂载配置文件:

sudo cp /etc/fstab /etc/fstab.bak  # 备份!防止配置错误导致系统崩溃
sudo nano /etc/fstab

找到原设备的挂载行(如 /dev/sdb1 或 UUID=...),修改挂载点路径:
原配置行:

/dev/sdb1  /mnt/old_mount  ext4  defaults  0  2

修改后:

/dev/sdb1  /new/mount_point  ext4  defaults  0  2

关键参数说明:

  • 第一列:设备标识(建议使用 UUID= 替代设备名,通过 blkid 获取)。
  • 第二列:新挂载点路径。
  • 第三列:文件系统类型(如 ext4、ntfs)。
  • 第四列:挂载选项(defaults 包含读写权限)。
  • 第五列:备份标志(0 为不备份)。
  • 第六列:开机磁盘检查顺序(根目录为 1,其他建议 2)。

应用新配置

sudo mount -a   # 加载fstab中所有配置
mount | grep /dev/sdb1  # 检查是否挂载到新路径

若无报错,重启生效:sudo reboot。


关键注意事项

  1. 备份优先

    • 操作前备份 /etc/fstab:sudo cp /etc/fstab{,.bak}
    • 重要数据建议额外备份。
  2. 使用 UUID 替代设备名
    设备名(如 /dev/sdb1)可能因硬件变动改变,通过 blkid 获取唯一 UUID:

    sudo blkid /dev/sdb1

    在 /etc/fstab 中使用:

    UUID=123e4567-e89b-12d3-a456-426614174000  /new/mount_point  ext4  defaults  0  2
  3. 文件系统兼容性

    • NTFS/FAT 设备需安装驱动:
      sudo apt install ntfs-3g   # Debian/Ubuntu
    • 在 /etc/fstab 中指定文件系统类型(如 ntfs)。
  4. 修复启动失败
    若修改错误导致系统无法启动:

    • 使用 Live CD/USB 进入救援模式。
    • 挂载原系统根分区:sudo mount /dev/sda1 /mnt。
    • 恢复备份:cp /mnt/etc/fstab.bak /mnt/etc/fstab。

常见问题解决

  • 挂载失败:

    • 检查 dmesg | tail 查看内核错误日志。
    • 确认目录权限:sudo chmod 755 /new/mount_point。
  • 开机卡住:
    在 GRUB 启动菜单按 e 编辑内核参数,末尾添加 init=/bin/bash,进入单用户模式修复 /etc/fstab。

  • 共享挂载点:
    需卸载所有子挂载点:sudo umount -R /mnt/old_mount。


修改挂载点需谨慎操作,核心步骤为:卸载设备 → 创建目录 → 修改 /etc/fstab → 验证生效,优先使用 UUID 标识设备,并始终备份配置文件,对生产环境操作前,建议在测试系统中模拟流程,如遇复杂情况(如 LVM、RAID),参考官方文档或寻求专业支持。

引用说明基于 Linux 内核文档(kernel.org)、man 手册页(man7.org)及 Filesystem Hierarchy Standard 标准,具体命令可通过 man [command] 查看权威指南。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8877.html

赞 (0)
酷番叔酷番叔
上一篇 2025年7月27日 13:50
下一篇 2025年7月27日 14:00

相关推荐

  • Linux如何删除文本行?常用命令与操作步骤有哪些?

    在Linux系统中,删除文本行是日常文本处理中的常见需求,无论是日志分析、配置文件修改还是数据清洗,都可能涉及这一操作,Linux提供了多种命令行工具和编辑器来实现文本行的删除,每种工具都有其适用场景和语法特点,掌握这些方法能显著提升文本处理效率,本文将详细介绍几种主流的删除文本行方式,包括sed、awk、gr……

    2025年10月3日
    25800
  • Linux中如何用命令替换文件里的指定内容?

    在Linux系统中,替换内容是一项常见操作,无论是配置文件修改、日志处理还是代码批量更新,都需要掌握高效的替换工具,Linux提供了多种命令和工具来实现内容替换,本文将详细介绍sed、awk、vim等工具的使用方法,并结合实际场景说明操作技巧,使用sed进行流编辑替换sed(Stream Editor)是Lin……

    2025年10月6日
    27000
  • Linux下如何编写C语言代码?

    在Linux环境下进行C语言开发,是许多程序员和系统开发者的基础技能,Linux提供了强大的工具链和丰富的开发环境,支持从代码编写、编译、调试到项目管理的一系列流程,本文将详细介绍Linux下C语言开发的完整步骤,包括环境搭建、代码编写、编译运行、调试及项目管理等内容,帮助读者掌握在Linux系统中高效开发C语……

    2025年9月25日
    29900
  • linux运行程序如何退出

    Linux中,运行程序后可通过按Ctrl + C组合键来终止前台正在运行

    2025年8月10日
    25600
  • 如何编译Linux内核模块?详细步骤与方法全解析

    Linux内核模块是可动态加载到内核空间的程序,用于扩展内核功能(如驱动、文件系统等)而无需重新编译整个内核,编译内核模块是Linux系统开发的基础技能,以下是详细步骤和注意事项,环境准备在开始编译前,需确保系统具备必要的工具和依赖:开发工具包:安装build-essential(包含gcc、make等)和li……

    2025年9月8日
    27100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信