在 Ubuntu 中,有几种简单快捷的方法可以查看硬盘类型。首先,你需要确定第二块硬盘的设备名,通常是 /dev/sdb/dev/nvme1n1 等。你可以通过 lsblk 命令来列出所有磁盘。

以下是几种从简到繁的常用方法:

🚀 方法一:使用 lsblk 命令(最推荐)

这是最简单直接的方法,可以一次性查看所有磁盘的类型。

  1. 打开终端。
  2. 输入以下命令并回车:
    1. lsblk -d -o name,rota,SIZE,MODEL
  3. 查看输出结果中的 ROTA 列:
    • ROTA0:表示是 SSD(固态硬盘,非旋转设备)。
    • ROTA1:表示是 HDD(机械硬盘,旋转磁盘)。

示例输出:

  1. NAME ROTA SIZE MODEL
  2. sda 1 1.8T WDC WD20EZAZ-11
  3. sdb 0 477G Samsung SSD 970 EVO
  4. nvme0n1 0 238G INTEL SSDPEKKW

在此示例中,sda 是机械硬盘,而 sdbnvme0n1 都是固态硬盘。

🔍 方法二:检查系统文件

这个方法直接读取内核提供的设备属性文件。

  1. 在终端中,将 sdX 替换为你的第二块硬盘的设备名(例如 sdb),然后运行:
    1. cat /sys/block/sdX/queue/rotational
  2. 查看输出结果:
    • 输出 0:表示是 SSD
    • 输出 1:表示是 HDD

🛠️ 方法三:使用 smartctl 工具(信息最详细)

这个方法需要安装一个工具,但能提供非常详细的硬盘健康信息。

  1. 安装工具
    1. sudo apt update
    2. sudo apt install smartmontools
  2. 查看硬盘信息: 将 /dev/sdX 替换为你的硬盘设备名,然后运行:
    1. sudo smartctl -i /dev/sdX
  3. 在输出信息中查找 Rotation Rate 这一行:
    • 如果显示 Solid State Device,则为 SSD
    • 如果显示具体的转速,如 7200 rpm,则为 HDD

💡 特殊情况说明

  • NVMe 硬盘:如果你的第二块硬盘是 NVMe 协议的 SSD,它的设备名通常以 nvme 开头(如 nvme0n1, nvme1n1)。所有 NVMe 设备都是 SSD。
  • RAID 环境:如果你的电脑配置了硬件 RAID(磁盘阵列),上述方法可能无法准确判断,因为它们看到的是 RAID 控制器虚拟出的逻辑盘,而不是物理硬盘本身。在这种情况下,需要使用 RAID 卡厂商提供的专用管理工具来查看。

格式化分区

  1. mkfs.ext4 /dev/sdb1

Ubuntu中命令行可以查看硬盘类型及空间大小占用 - 图1

  1. # 新建要挂载的文件夹
  2. mkdir /mp4mkv
  3. ## mkdir -p /mnt/mydata
  4. # 挂载分区(临时挂载,重启后失效)
  5. mount /dev/sdb1 /mp4mkv

永久挂载

  1. blkid /dev/sdb1

Ubuntu中命令行可以查看硬盘类型及空间大小占用 - 图2

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

Ubuntu中命令行可以查看硬盘类型及空间大小占用 - 图3

用“mount”挂载931.5G的容量,挂载后怎么才有“/dev/sdb1 916G 28K 870G 1% /mp4mkv”,为什么

这完全是正常的,请放心,你的硬盘没有坏,也没有被“偷走”空间。

你看到的容量差异(931.5G 变成 916G)主要是由 Linux 文件系统的“保留空间”机制 造成的。

🧐 为什么少了约 15GB?

当你使用 mkfs.ext4 格式化硬盘时,Linux 默认会执行以下两个操作,导致可用空间减少:

  1. 预留 5% 给 root 用户(最主要原因)

    • 机制:ext4 文件系统默认会预留 5% 的磁盘空间给超级用户(root)使用。
    • 目的:这是为了防止普通用户把硬盘彻底写满。如果硬盘被 100% 填满,系统日志无法写入,可能会导致系统崩溃或服务无法启动。预留这 5% 的空间相当于给系统留了一条“后路”。
    • 计算:你的硬盘约 931GB,5% 大约是 46GB
      • 但是,df -h 显示的 916G 其实已经包含了这部分预留空间(它是总容量),而真正能用的(Avail)是 870G。
      • 916G (总容量) - 870G (可用) ≈ 46G (正好是 5% 的预留空间)。
  2. 文件系统元数据占用

    • 机制:硬盘在存储数据前,需要先建立“目录结构”(如 inode 表、超级块等),这就像给图书馆建书架和索引卡片,这些结构本身也要占地盘。
    • 影响:这部分通常占用几百 MB 到几 GB,相对于 5% 的预留空间来说很小。

💡 如何找回这 5% 的空间?

如果你这块盘是纯数据盘(不装系统,不跑关键服务),不需要预留 5% 给 root,你可以把这 5% 的空间释放出来给普通用户使用。

操作步骤:

  1. 卸载硬盘(修改参数前必须先卸载):

    1. sudo umount /mp4mkv
  2. 将预留比例改为 0%: 使用 tune2fs 命令修改 ext4 的参数。

    1. sudo tune2fs -m 0 /dev/sdb1
    • -m 0 表示将保留块百分比设置为 0。
  3. 重新挂载

    1. sudo mount /dev/sdb1 /mp4mkv
  4. 再次查看容量

    1. 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 行通常是:
    1. UUID=xxx / ext4 defaults 0 1
  • 你的 /mp4mkv 数据盘应该写:
    1. UUID=xxx /mp4mkv ext4 defaults 0 2

为什么不能写 1?

  • 只有根分区才能用 1,如果给数据盘也写 1,会导致 fsck 并行检查,可能引发系统启动异常或磁盘检查冲突。
  • 数据盘用 2,表示“根分区检查完再检查我”,是最安全、标准的写法。

总结建议

  • 根分区0 1
  • 数据盘/其他挂载点0 2
  • 交换分区/不需要检查的盘0 0

你现在的 /mp4mkvext4 defaults 0 2完全正确的选择。