在 Ubuntu 中,有几种简单快捷的方法可以查看硬盘类型。首先,你需要确定第二块硬盘的设备名,通常是 /dev/sdb 或 /dev/nvme1n1 等。你可以通过 lsblk 命令来列出所有磁盘。
以下是几种从简到繁的常用方法:
🚀 方法一:使用 lsblk 命令(最推荐)
这是最简单直接的方法,可以一次性查看所有磁盘的类型。
- 打开终端。
- 输入以下命令并回车:
lsblk -d -o name,rota,SIZE,MODEL
- 查看输出结果中的
ROTA列:ROTA为0:表示是 SSD(固态硬盘,非旋转设备)。ROTA为1:表示是 HDD(机械硬盘,旋转磁盘)。
示例输出:
NAME ROTA SIZE MODELsda 1 1.8T WDC WD20EZAZ-11sdb 0 477G Samsung SSD 970 EVOnvme0n1 0 238G INTEL SSDPEKKW
在此示例中,sda 是机械硬盘,而 sdb 和 nvme0n1 都是固态硬盘。
🔍 方法二:检查系统文件
这个方法直接读取内核提供的设备属性文件。
- 在终端中,将
sdX替换为你的第二块硬盘的设备名(例如sdb),然后运行:cat /sys/block/sdX/queue/rotational
- 查看输出结果:
- 输出
0:表示是 SSD。 - 输出
1:表示是 HDD。
- 输出
🛠️ 方法三:使用 smartctl 工具(信息最详细)
这个方法需要安装一个工具,但能提供非常详细的硬盘健康信息。
- 安装工具:
sudo apt updatesudo apt install smartmontools
- 查看硬盘信息:
将
/dev/sdX替换为你的硬盘设备名,然后运行:sudo smartctl -i /dev/sdX
- 在输出信息中查找
Rotation Rate这一行:- 如果显示
Solid State Device,则为 SSD。 - 如果显示具体的转速,如
7200 rpm,则为 HDD。
- 如果显示
💡 特殊情况说明
- NVMe 硬盘:如果你的第二块硬盘是 NVMe 协议的 SSD,它的设备名通常以
nvme开头(如nvme0n1,nvme1n1)。所有 NVMe 设备都是 SSD。 - RAID 环境:如果你的电脑配置了硬件 RAID(磁盘阵列),上述方法可能无法准确判断,因为它们看到的是 RAID 控制器虚拟出的逻辑盘,而不是物理硬盘本身。在这种情况下,需要使用 RAID 卡厂商提供的专用管理工具来查看。
格式化分区
mkfs.ext4 /dev/sdb1

# 新建要挂载的文件夹mkdir /mp4mkv## mkdir -p /mnt/mydata# 挂载分区(临时挂载,重启后失效)mount /dev/sdb1 /mp4mkv
永久挂载
blkid /dev/sdb1

vi /etc/fstab在尾处追加一行,以上得来的UUID,格式参考前面行记录,如下图:/dev/disk/by-uuid/b4a02ad9-b5da-4dc5-8aa8-1f848a305b7c /mp4mkv ext4 defaults 0 2
# 验证lsblkdf -h

用“mount”挂载931.5G的容量,挂载后怎么才有“/dev/sdb1 916G 28K 870G 1% /mp4mkv”,为什么
这完全是正常的,请放心,你的硬盘没有坏,也没有被“偷走”空间。
你看到的容量差异(931.5G 变成 916G)主要是由 Linux 文件系统的“保留空间”机制 造成的。
🧐 为什么少了约 15GB?
当你使用 mkfs.ext4 格式化硬盘时,Linux 默认会执行以下两个操作,导致可用空间减少:
预留 5% 给 root 用户(最主要原因)
- 机制:ext4 文件系统默认会预留 5% 的磁盘空间给超级用户(root)使用。
- 目的:这是为了防止普通用户把硬盘彻底写满。如果硬盘被 100% 填满,系统日志无法写入,可能会导致系统崩溃或服务无法启动。预留这 5% 的空间相当于给系统留了一条“后路”。
- 计算:你的硬盘约 931GB,5% 大约是 46GB。
- 但是,
df -h显示的 916G 其实已经包含了这部分预留空间(它是总容量),而真正能用的(Avail)是 870G。 - 916G (总容量) - 870G (可用) ≈ 46G (正好是 5% 的预留空间)。
- 但是,
文件系统元数据占用
- 机制:硬盘在存储数据前,需要先建立“目录结构”(如 inode 表、超级块等),这就像给图书馆建书架和索引卡片,这些结构本身也要占地盘。
- 影响:这部分通常占用几百 MB 到几 GB,相对于 5% 的预留空间来说很小。
💡 如何找回这 5% 的空间?
如果你这块盘是纯数据盘(不装系统,不跑关键服务),不需要预留 5% 给 root,你可以把这 5% 的空间释放出来给普通用户使用。
操作步骤:
卸载硬盘(修改参数前必须先卸载):
sudo umount /mp4mkv
将预留比例改为 0%: 使用
tune2fs命令修改 ext4 的参数。sudo tune2fs -m 0 /dev/sdb1
-m 0表示将保留块百分比设置为 0。
重新挂载:
sudo mount /dev/sdb1 /mp4mkv
再次查看容量:
df -h /mp4mkv
你会发现
Avail(可用空间)变大了,接近 916G 了。
ext4 defaults 0 1 和 ext4 defaults 0 2 有什么说法吗
这两个是 /etc/fstab 里最后两个数字,分别代表 dump 备份标记 和 fsck 检查顺序,含义完全不同:
1. 第5个字段:dump 备份标记(0)
0:不做 dump 备份(现代系统几乎都用 0,dump 工具已很少用)1:需要做 dump 备份(几乎没人用了)
所以这里写
0就可以,1基本没有实际意义。
2. 第6个字段:fsck 磁盘检查顺序(1 / 2)
这个是关键,决定了系统开机时磁盘自检的优先级:
| 值 | 含义 | 适用场景 |
|---|---|---|
| 0 | 不检查 | 交换分区、临时挂载盘、不需要自检的盘 |
| 1 | 最高优先级 | 根文件系统 / 专用,系统会第一个检查它 |
| 2 | 次优先级 | 其他所有数据盘、挂载点(如 /home、/mp4mkv),根分区检查完后才会检查 |
具体到你的场景
- 根分区
/的 fstab 行通常是:UUID=xxx / ext4 defaults 0 1
- 你的
/mp4mkv数据盘应该写:UUID=xxx /mp4mkv ext4 defaults 0 2
为什么不能写 1?
- 只有根分区才能用
1,如果给数据盘也写1,会导致 fsck 并行检查,可能引发系统启动异常或磁盘检查冲突。 - 数据盘用
2,表示“根分区检查完再检查我”,是最安全、标准的写法。
总结建议
- 根分区:
0 1✅ - 数据盘/其他挂载点:
0 2✅ - 交换分区/不需要检查的盘:
0 0✅
你现在的 /mp4mkv 用 ext4 defaults 0 2 是完全正确的选择。
