Linux 挂载新磁盘教程
在 Linux 系统中添加新磁盘并正确挂载是系统管理员的基本技能。本教程将详细介绍如何分区、格式化、挂载新磁盘,并设置开机自动挂载。
前提条件
- 具有 root 或 sudo 权限的 Linux 系统
- 已经安装的新磁盘(虚拟机或物理磁盘)
- 基本的命令行操作知识
步骤概览
- 检测新磁盘
- 分区磁盘
- 格式化分区
- 创建挂载点
- 临时挂载磁盘
- 获取磁盘 UUID
- 配置 /etc/fstab 实现开机自动挂载
- 验证挂载
详细步骤
1. 检测新磁盘
首先,检查系统中可用的磁盘设备:
# 列出所有磁盘和分区
sudo fdisk -l
# 或者使用 lsblk 查看树状结构
lsblk
假设新磁盘为 /dev/sdb(请根据实际情况替换)。
2. 分区磁盘
使用 fdisk 或 parted 对磁盘进行分区。这里以 fdisk 为例:
sudo fdisk /dev/sdb
在 fdisk 交互界面中:
- 输入
n创建新分区 - 选择分区类型(通常选择
p主分区) - 选择分区号(如 1)
- 接受默认起始扇区
- 指定大小(如
+100G为 100GB,或直接回车使用全部空间) - 输入
w写入分区表并退出
3. 格式化分区
格式化新分区为所需的文件系统(这里以 ext4 为例):
sudo mkfs.ext4 /dev/sdb1
其他常用文件系统:
- XFS:
sudo mkfs.xfs /dev/sdb1 - NTFS:
sudo mkfs.ntfs /dev/sdb1(需要先安装 ntfs-3g) - Btrfs:
sudo mkfs.btrfs /dev/sdb1
4. 创建挂载点
决定磁盘挂载的目录位置,常见位置如 /mnt 或 /media 下:
sudo mkdir -p /mnt/newdisk
5. 临时挂载磁盘
手动挂载以测试是否成功:
sudo mount /dev/sdb1 /mnt/newdisk
验证挂载:
df -h | grep newdisk
# 或者
mount | grep newdisk
6. 获取磁盘 UUID
为了实现可靠的开机自动挂载,我们需要获取分区的 UUID(通用唯一标识符):
sudo blkid /dev/sdb1
输出类似:
/dev/sdb1: UUID="a1b2c3d4-e5f6-7890-g1h2-i3j4k5l6m7n8" TYPE="ext4"
记录下 UUID 值(包括引号内的内容)。
7. 配置 /etc/fstab 实现开机自动挂载
编辑 /etc/fstab 文件,添加新磁盘的挂载信息:
sudo nano /etc/fstab
在文件末尾添加一行:
UUID=a1b2c3d4-e5f6-7890-g1h2-i3j4k5l6m7n8 /mnt/newdisk ext4 defaults 0 2
字段说明:
UUID=a1b2c3d4-...:分区的 UUID/mnt/newdisk:挂载点ext4:文件系统类型defaults:挂选项(包含 rw, suid, dev, exec, auto, nouser, async)0:dump 功能(通常为 0)2:fsck 检查顺序(根分区为 1,其他为 2)
保存并退出编辑器。
8. 验证配置
卸载临时挂载,然后使用 mount -a 测试 fstab 配置:
sudo umount /mnt/newdisk
sudo mount -a
再次验证挂载:
df -h | grep newdisk
如果没有错误信息,则配置成功。重启系统后磁盘应该会自动挂载。
常见问题及解决方案
问题1:磁盘未被识别
- 确认磁盘已经正确安装(特别是虚拟机)
- 检查 BIOS/UEFI 设置是否启用了磁盘
- 重新扫描 SCSI 总线:
echo "- - -" > /sys/class/scsi_host/host0/scan
问题2:挂载失败提示“未知文件系统类型”
- 确认已正确格式化分区
- 检查内核是否支持该文件系统(如需要安装额外的文件系统驱动)
问题3:开机自动挂载失败
- 检查
/etc/fstab语法是否正确 - 使用
sudo mount -a测试是否有错误 - 确认 UUID 没有写错
- 检查磁盘是否在引导时就可用(有些 USB 磁盘可能需要延迟挂载)
问题4:权限问题
- 挂载后目录所属用户通常为 root
- 可以修改挂载选项添加
uid=1000,gid=1000让普通用户拥有权限 - 或者在挂载后使用
chown更改目录所有权
高级技巧
使用卷标(Label)而非 UUID
有些人更喜欢使用卷标:
# 设置卷标(ext4 示例)
sudo e2label /dev/sdb1 mydata
# 在 fstab 中使用
LABEL=mydata /mnt/newdisk ext4 defaults 0 2
挂载选项说明
ro:只读挂载rw:读写挂载(默认)noexec:禁止在文件系统上执行二进制文件nosuid:禁止 SUID/SGID 位nodev:禁止解释字符或块特殊设备noatime:不更新访问时间(提高性能)nodiratime:不更新目录访问时间
自动格式化和挂载脚本
对于经常需要添加磁盘的环境,可以创建自动化脚本:
#!/bin/bash
DISK=$1
MOUNT_POINT=$2
FS_TYPE=${3:-ext4}
# 分区
echo -e "n\np\n1\n\n\nw" | sudo fdisk $DISK
# 等待分区表更新
sleep 2
PARTITION=${DISK}1
# 格式化
case $FS_TYPE in
ext4) sudo mkfs.ext4 $PARTITION ;;
xfs) sudo mkfs.xfs $PARTITION ;;
*) echo "Unsupported filesystem type"; exit 1 ;;
esac
# 获取 UUID
UUID=$(sudo blkid -s UUID -o value $PARTITION)
# 创建挂载点
sudo mkdir -p $MOUNT_POINT
# 添加到 fstab
echo "UUID=$UUID $MOUNT_POINT $FS_TYPE defaults 0 2" | sudo tee -a /etc/fstab
# 挂载
sudo mount -a
echo "Disk $DISK partitioned, formatted, and mounted at $MOUNT_POINT"
保存为 auto-mount.sh,使用 sudo ./auto-mount.sh /dev/sdb /mnt/newdisk ext4 运行。
安全注意事项
- 在生产环境中, sempre 备份重要数据后再进行分区操作
- 测试 fstab 更改时,可以先使用
sudo mount -av进行干运行 - 考虑使用
nofail选项,让系统在磁盘不可用时仍能启动:
UUID=... /mnt/newdisk ext4 defaults,nofail 0 2
- 对于热插拔设备(如 USB 磁盘),考虑使用 udev 规则或 autofs
结论
通过以上步骤,你已经成功在 Linux 系统中添加、分区、格式化、挂载新磁盘,并配置了开机自动挂载。这不仅扩展了系统的存储容量,还确保了在重启后磁盘仍然可用。
记得定期检查磁盘健康状况(使用 smartctl 工具),并根据实际需求调整挂载选项以获得最佳性能和安全性。
提示:如果是添加虚拟机磁盘,可能需要在虚拟机管理软件中先添加磁盘设备,然后在客户机中按照以上步骤操作。



















暂无评论内容