在 ubuntu 上查找已安装的硬盘

在 ubuntu 上查找已安装的硬盘

我最近得到了一个新的专用服务器,我正在尝试安装它包含的所有驱动器。

$ sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
NAME    FSTYPE               SIZE MOUNTPOINT        LABEL
loop0   squashfs            31.1M /snap/snapd/11036 
loop1   squashfs            31.1M                   
loop2   squashfs            55.5M /snap/core18/1988 
loop3   squashfs            69.8M /snap/lxd/19032   
loop4   squashfs            55.4M /snap/core18/1944 
loop5   squashfs            31.1M /snap/snapd/10707 
loop6   squashfs            69.9M /snap/lxd/19188   
sda                          1.8T                   
├─sda1                     987.5K                   
├─sda2  linux_raid_member    1.8T                   md2
│ └─md2 ext4                 1.8T /                 root
├─sda3  swap                 512M [SWAP]            swap-sda3
└─sda4  iso9660           1007.5K                   config-2
sdb                          1.8T                   
├─sdb1                     987.5K                   
├─sdb2  linux_raid_member    1.8T                   md2
│ └─md2 ext4                 1.8T /                 root
└─sdb3  swap                 512M [SWAP]            swap-sdb3
sdc                          1.8T                   
├─sdc1                     987.5K                   
├─sdc2  linux_raid_member    1.8T                   md2
│ └─md2 ext4                 1.8T /                 root
└─sdc3  swap                 512M [SWAP]            swap-sdc3
sdd                          1.8T                   
├─sdd1                     987.5K                   
├─sdd2  linux_raid_member    1.8T                   md2
│ └─md2 ext4                 1.8T /                 root
└─sdd3  swap                 512M [SWAP]            swap-sdd3

正如预期的那样,我找到了我的设置的四个磁盘。现在我得出结论,只有一个被安装,因为:

$ df
Filesystem      1K-blocks    Used  Available Use% Mounted on
udev             16288292       0   16288292   0% /dev
tmpfs             3261132    1268    3259864   1% /run
/dev/md2       1922082712 6531836 1817891636   1% /
tmpfs            16305644       0   16305644   0% /dev/shm
tmpfs                5120       0       5120   0% /run/lock 
tmpfs            16305644       0   16305644   0% /sys/fs/cgroup
/dev/loop4          56832   56832          0 100% /snap/core18/1944
/dev/loop5          31872   31872          0 100% /snap/snapd/10707
tmpfs             3261128       0    3261128   0% /run/user/1001
/dev/loop3          71552   71552          0 100% /snap/lxd/19032
/dev/loop6          71680   71680          0 100% /snap/lxd/19188
/dev/loop2          56832   56832          0 100% /snap/core18/1988
/dev/loop0          31872   31872          0 100% /snap/snapd/1103

因此,我想安装剩余的驱动器,但我不确定哪个驱动器已安装,或者没有安装,因为上面显示的文件系统是/dev/md2我无法将其与 /dev/sda、/dev/sdb、/dev/sdc 或 /dev/sdd 关联起来。

我想它与 /dev/sda 有关但我想知道如何确定这一点?

答案1

上面显示的文件系统是 /dev/md2,我无法将其与 /dev/sda、/dev/sdb、/dev/sdc 或 /dev/sdd 关联起来。

仔细查看 lsblk 输出。md2设备实际上显示在那里,作为子设备(这意味着它是在 sda2 之上构建的虚拟设备,而 sda2 本身是 sda 上的一个分区)。

还请注意,在“lsblk”输出中,md2以下显示的内容相同全部四个磁盘,而不只是一个。这意味着它是一个“多磁盘”设备,将多个磁盘组合成一个虚拟设备 - 换句话说,“md”设备实际上是一个软件 RAID 阵列。

因此,当“findmnt”或“df”显示 /dev/md2 已安装时,这意味着所有四个磁盘都已涉及。您可以使用它mdadm -D /dev/md2来检查它是什么阵列类型 - Linux mdadm 处理传统 RAID,例如 RAID 10 或 RAID 6,它们将显示在“Raid Level:”中。


如果您的托管服务提供商使用一些不良的 RAID 配置文件创建了阵列(例如,在所有四个磁盘上进行 RAID 1 镜像,处于容量冗余的极端情况),您可以使用以下命令对其进行重塑:

# mdadm -G /dev/md2 --level=raid10
# watch cat /proc/mdstat

虽然 mdadm 可能要求您首先将 RAID1 转换为 RAID5,然后将 RAID5 转换为 RAID0,最后将 RAID0 转换为 RAID10near2... 请参阅mdadm 指南

如果这不可能的话,您可能需要:

  1. 确保您可以通过控制台(KVM)访问服务器;
  2. 从旧阵列中删除一些磁盘并使用它们创建新阵列(暂时使用 RAID 0);
  3. 将整个操作系统复制到其中并以某种方式使用新阵列重新启动(例如编辑root=内核命令行选项);
  4. 销毁旧阵列并将其磁盘添加到新阵列,转换为 RAID 10。

(您可以选择使用 mdadm 以外的其他工具来创建新阵列,例如 LVM、ZFS 或多磁盘 Btrfs。如果这是一台全新的服务器,您当然可以通过 KVM 从头开始​​重新安装它,而不是尝试迁移现有的操作系​​统。)

相关内容