在 Linux 系统中挂载新硬盘
本文记录了在 Ubuntu 系统中,从识别新硬盘到完成初始化、挂载,并配置开机自动挂载的完整流程。同时,文中也包含了在实际操作中遇到的问题及其解决方案,希望能为遇到类似情况的读者提供参考。
一、 完整初始化与挂载流程
第 1 步:识别已连接的硬盘
在开始任何操作前,首先需要确认系统识别了哪些存储设备。
命令:
sudo fdisk -l
或
sudo parted -l
关键信息解读:
设备名:标识了磁盘类型
/dev/nvme0n1
:NVMe 固态硬盘(高性能)/dev/sda
,/dev/sdb
:SATA 接口硬盘(SSD 或 HDD)
磁盘模型 (Disk model):显示硬盘的具体型号。
分区信息:列出该磁盘上已有的所有分区。如果磁盘是新盘或未初始化,可能没有分区,或者分区表异常。
第 2 步:销毁旧分区并创建新分区表
如果磁盘包含无用的旧数据或分区表错误,我们需要重新初始化它。此操作会清除磁盘上所有数据!
使用 parted
工具创建 GPT 分区表:
sudo parted /dev/sdX --script mklabel gpt
将 sdX
替换为目标磁盘,如 sda
, sdb
。
第 3 步:创建新分区
在新的空白磁盘上创建一个占用所有空间的主分区。
sudo parted /dev/sdX --script mkpart primary ext4 0% 100%
此命令会创建一个新的分区,例如 /dev/sda1
。
第 4 步:格式化分区
为新创建的分区创建文件系统,这里选择 Linux 最常用的 ext4 格式。
sudo mkfs.ext4 /dev/sdX1
将 sdX1
替换为您实际创建的分区名。
第 5 步:创建挂载点并临时挂载
挂载点是一个目录,用于访问硬盘中的数据。
创建挂载目录(例如,挂载到用户家目录下):
mkdir ~/MyStorage
临时挂载分区(重启后失效):
sudo mount /dev/sdX1 ~/MyStorage
第 6 步:更改挂载点所有权(解决权限问题)
关键步骤! 默认挂载的分区所有者是 root
,需更改为您的普通用户,否则无法读写。
sudo chown -R $USER:$USER ~/MyStorage
第 7 步:配置开机自动挂载
使用分区唯一的 UUID 而非设备名编辑 /etc/fstab
,这样更稳定。
查询分区的 UUID:
sudo blkid /dev/sdX1
复制输出中
UUID=
后的字符串。编辑 fstab 文件:
sudo nano /etc/fstab
在文件末尾添加一行:
UUID=你的-UUID-here /home/你的用户名/MyStorage ext4 defaults,nofail 0 2
nofail
:确保即使磁盘临时不存在,系统也能正常启动。
测试配置:
sudo mount -a
无报错即表示配置成功。
二、 遇到的问题与解决方案实录
问题 1:目标磁盘分区表异常或包含无用数据
现象:
使用 sudo fdisk -l
查看磁盘时,发现分区信息混乱。
实际操作与输出:
mrdio@mrdio-YAO-9000II:~$ sudo fdisk -l /dev/sda
Disk /dev/sda:931.53 GiB,1000204886016 字节,1953525168 个扇区
Disk model: WDC WD10SPZX-21Z
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标签类型:dos
磁盘标识符:0x6e697373
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sda1 1936269394 3772285809 1836016416 875.5G 4f QNX4.x 第3部分
/dev/sda2 1917848077 2462285169 544437093 259.6G 73 未知
/dev/sda3 1818575915 2362751050 544175136 259.5G 2b 未知
/dev/sda4 2844524554 2844579527 54974 26.9M 61 SpeedStor
分区 1 未起始于物理扇区边界。
分区 2 未起始于物理扇区边界。
分区 3 未起始于物理扇区边界。
分区 4 未起始于物理扇区边界。
分区表记录没有按磁盘顺序。
原因:
该磁盘可能被特殊软件或系统处理过,导致分区表损坏或包含陈旧无效的信息。
解决方案:
完全重新初始化磁盘,即执行上述流程中的第 2 步:
sudo parted /dev/sda --script mklabel gpt
问题 2:挂载后无法在图形界面或普通用户下读写文件
现象:
挂载成功后,尝试在挂载目录中创建文件或文件夹时,系统提示“权限不足”。
实际操作:
mrdio@mrdio-YAO-9000II:~$ sudo mount /dev/sda1 /home/mrdio/Storage_DATA/
mrdio@mrdio-YAO-9000II:~$ touch /home/mrdio/Storage_DATA/test.txt
touch: 无法创建 '/home/mrdio/Storage_DATA/test.txt': 权限不够
原因:
使用 sudo mount
命令挂载的分区,其默认所有者是 root
用户,而不是您的普通用户。
解决方案:
执行上述流程中的第 6 步:
sudo chown -R $USER:$USER /home/mrdio/Storage_DATA
问题 3:使用 mkfs
格式化时出现警告
现象:
执行格式化命令时,提示分区上已存在文件系统。
实际操作与输出:
mrdio@mrdio-YAO-9000II:~/APP$ sudo mkfs.ext4 /dev/sdb1
mke2fs 1.45.5 (07-Jan-2020)
/dev/sdb1 有一个 ntfs 文件系统
无论如何也要继续?(y,N)
原因:
目标分区上已存在一个文件系统,mkfs
工具为防止数据丢失而发出警告。
解决方案:
如果确认该分区数据可清除,输入
y
并回车继续。如果不想覆盖该分区,请检查设备名是否正确,确保你操作的是正确的分区。
问题 4:设备名变化导致自动挂载失败
现象:
配置好 /etc/fstab
后,某次重启系统发现磁盘未能自动挂载。
错误示例:
在 /etc/fstab
中使用了:
/dev/sda1 /home/mrdio/Storage_DATA ext4 defaults 0 2
原因:
在 /etc/fstab
中使用了不稳定的设备名(如 /dev/sda1
),当系统检测磁盘的顺序发生变化时,设备名可能会改变(例如 sda
变成了 sdb
)。
解决方案:
始终使用 UUID 来配置 /etc/fstab
:
mrdio@mrdio-YAO-9000II:~$ sudo blkid /dev/sda1
/dev/sda1: UUID="a1b2c3d4-e5f6-7890-abcd-ef1234567890" TYPE="ext4" PARTUUID="xxxx-xx"
然后将 /etc/fstab
中的条目改为:
UUID=a1b2c3d4-e5f6-7890-abcd-ef1234567890 /home/mrdio/Storage_DATA ext4 defaults,nofail 0 2
总结
通过以上步骤,你可以成功地将一块新硬盘(或需要重新初始化的旧硬盘)集成到你的 Linux 系统中,并实现稳定、便捷的访问。关键在于:
正确识别目标磁盘。
彻底初始化,从创建新分区表开始。
挂载后务必修改权限,以便普通用户使用。
使用 UUID 配置自动挂载,保证长期稳定性。
希望这篇指南能帮助你更好地管理你的存储设备。