温馨提示×

Ubuntu挂载SSD硬盘有哪些技巧

小樊
45
2025-12-17 07:41:53
栏目: 智能运维

Ubuntu 挂载 SSD 的实用技巧

一、识别设备与规划分区

  • 识别设备:用 lsblksudo fdisk -l 确认新盘路径,如 /dev/sdX(SATA)或 /dev/nvme0n1(NVMe)。注意挂载时必须指定具体分区(如 /dev/sdX1),不能直接挂载整块盘,否则会报 “wrong fs type, bad option, bad superblock”。
  • 规划分区:若需新建分区,可用 fdisk /dev/sdX 创建(常见为单个分区);若盘上已有分区,直接使用现有分区。
  • 选择文件系统:通用场景优先 ext4;若需快照/校验等特性,可考虑 Btrfs/XFS(复杂度更高)。
  • 规划挂载点:数据盘常用 /mnt/data/home/用户名/ssd 等,确保目录事先存在且为空。

二、格式化与挂载的正确顺序

  • 格式化分区(示例为 ext4):
    • SATA:sudo mkfs.ext4 /dev/sdX1
    • NVMe:sudo mkfs.ext4 /dev/nvme0n1p1
  • 创建挂载点并挂载:
    • sudo mkdir -p /mnt/data
    • sudo mount /dev/sdX1 /mnt/data(或 mount /dev/nvme0n1p1 /mnt/data
  • 验证:df -h 应能看到新分区已挂载到目标目录。

三、开机自动挂载与 fstab 安全写法

  • 获取分区的 UUID:sudo blkid(复制目标分区的 UUID,不是整盘)。
  • 编辑 /etc/fstab:在末尾添加一行
    • UUID=你的UUID /mnt/data ext4 defaults 0 2
    • 说明:第 5 列 0 表示不备份;第 6 列建议 2(根分区为 1,其他数据盘用 2)。
  • 验证 fstab 无误:sudo mount -a(无报错再重启)。
  • 安全要点:
    • 一定要用“分区”的 UUID,不要误用“磁盘”的 UUID;
    • 挂载点必须存在且为空;
    • 修改前先备份:sudo cp /etc/fstab /etc/fstab.bak。

四、SSD 性能与寿命优化要点

  • 启用 TRIM:
    • 检查支持:sudo hdparm -I /dev/sdX | grep “TRIM”;
    • 方式一(挂载选项):在 fstab 对应分区追加 discard,如:UUID=… /mnt/data ext4 defaults,discard 0 2;
    • 方式二(周期任务):启用每周 fstrim(systemd 服务已提供,执行:sudo systemctl enable --now fstrim.timer)。
  • 减少写入:
    • 挂载选项加 noatime(必要时 nodiratime),减少访问时间更新;
    • 将高频写入目录放入内存:在 fstab 增加
      • tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
      • tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
      • tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0
  • I/O 调度:SSD 更适合 noopdeadline。查看:cat /sys/block/sdX/queue/scheduler;临时设置:echo noop | sudo tee /sys/block/sdX/queue/scheduler(可按设备名设置)。
  • 交换分区/文件:内存充足时,可减小 swap 或设 vm.swappiness 较低(如 10),以降低 swap 使用;休眠仍需足够 swap。
  • 对齐与日志:现代 Ubuntu 默认已做 4K 对齐;不建议为追求寿命关闭 ext4 日志(断电风险增大),优先使用 TRIM+noatime 等更稳妥方案。

五、常见问题与快速排查

  • 无法挂载整块盘:报错 “wrong fs type …” 时,改为挂载具体分区(如 /dev/sdX1)。
  • fstab 写错导致无法进系统:进入恢复模式或 LiveCD,挂载根分区并修正 /etc/fstab,或临时注释刚加的行;平时务必先备份 fstab。
  • 权限问题:挂载后如需普通用户写入,执行 sudo chown -R 用户名:用户名 /mnt/data
  • 性能未达预期:确认已启用 TRIM(mount 输出含 discard 或 fstrim.timer 正常运行),并检查是否使用了 noatime、合适的调度器。

0