我正在通过 iDRAC 界面在裸机系统(PowerEdge 服务器)上安装 Fedora CoreOS v39.2024030。
这是一个两步过程:
这里需要将系统引导到 LiveISO(虚拟 CD-ROM)并执行安装步骤:
coreos-installer install /dev/sda --ignition-url http://filepath.ign
复制文件系统后,它将重新启动以执行安装。
重新启动并根据点火文件说明执行自动安装。
我的问题是,当我第一次使用 liveCD 启动系统时,它显示我的两个磁盘(块存储名称)sda 和 sdb,但是当系统在第二阶段重新启动时,这些磁盘名称会更改为sdb 和 sdc。原因是步骤 1 创建了一些位于 sda 的 0B 临时磁盘。
因此,安装失败并出现错误“打开 /dev/sda 时出现问题”。
如何确保磁盘标签在重新启动时不会更改?
参考:官方文档
答案1
一般来说,你不能确定那个/dev/sdc
或任何事情将永远如此/dev/sdc
。你的案例就是一个很好的例子。
因此,通过 UUID、/dev/disk/by-id/
或来引用设备更为安全/dev/disk/by-uuid/
。使用
lsblk -f
查看所有已连接磁盘的 UUID。
答案2
这主要是评论,但它太大了,无法装进盒子里。
与磁盘相关的术语“标签”用于描述除如何使用它之外的其他内容。值“sda”、“sdb”是设备名称。这些基于 POST 期间硬件发现的标识符(第一个发现的磁盘标识为“0”,第二个“1”等)。因此,当您更改硬件配置时,设备名称也会发生变化。
确保块设备具有一致地址的问题有多种解决方案。这些是通过 /dev 文件系统中的符号链接来调节的。一种是在每个卷的开头放置一小串数据 - 这就是所谓的标签。在 /dev/disk 下面,您将看到几个文件夹 - 每个文件夹代表不同的寻址方法。我这里有:
by-id by-label by-partuuid by-path by-uuid
当有人编写安装程序时,他们不知道系统将如何配置,但预计配置在安装过程中不会更改,因此将在安装早期使用基本命名。
如果你的硬件配置在没有实际插入/拔出东西的情况下发生变化,你就会遇到一些奇怪的事情。您是否在重新启动时删除了安装介质? (sdX 名称应该仅适用于连接的 SAS/SATA 磁盘,不适用于 USB 磁盘或光驱)。使用 iDRAC 意味着您正在远程执行此操作 - 您是否使用某些网络设备作为假磁盘?我对 iDRAC 不是特别熟悉,但使用 iLO 和 IPMI,您可以显式设置设备类型(如光学介质/USB/连接设备)。
答案3
请注意,lsblk
输出显示sda
如下:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 1 0B 0 disk
RM = 可移动,如(虚拟)CD-ROM 驱动器。大小 0 字节,就像一个没有光盘的 CD-ROM 驱动器。这看起来像一个 iDRAC 虚拟 CD-ROM 驱动器,虚拟光盘已弹出!
在第一个安装阶段之后,安装程序可能像往常一样向 iDRAC 虚拟 CD-ROM 发送了“弹出”命令,但看起来它并没有导致虚拟 CD-ROM 完全禁用自身。
由于 iDRAC 虚拟 CD 通常用于覆盖正常安装的操作系统以进行维护,因此系统固件的设计者显然已使其在系统启动时处于活动状态时显示为第一个存储设备。
因此,在第一个安装阶段之后,一旦系统重新启动,您应该立即关闭 iDRAC 虚拟 CD-ROM。如果这没有帮助,您甚至可以尝试断开 iDRAC 控制台连接,直到 CoreOS 内核启动。当 iDRAC 虚拟 CD/控制台断开连接时,虚拟 CD-ROM 驱动器对系统不可见,因此 CoreOS 内核应将磁盘标记为sda
和sdb
。
一旦 CoreOS 内核启动并将这些设备名称分配给磁盘,重新连接 iDRAC 控制台甚至重新激活虚拟 CD-ROM 功能应会导致 iDRAC 虚拟 CD-ROM 被检测为sdc
。由于此时设备节点sda
现在sdb
已经分配给磁盘,因此虚拟 CD-ROM 将被碰撞到第一个空闲设备节点,sdc
即使它可能占用硬件级别上数字上的第一个 SATA 通道。
安装 CoreOS 并且可以通过 SSH 进入操作系统后,您可能需要在断开 iDRAC 控制台的情况下运行lspci
,lsusb
和lsblk
(也可能lsinput
如果可用),然后在连接的 iDRAC 上再次执行相同操作,而不激活虚拟 CD-ROM,并再次激活虚拟光驱功能,并比较结果。请注意连接 iDRAC 控制台和/或虚拟 CD-ROM 时出现的任何其他设备。
一旦您准确了解在使用 iDRAC 功能的每个部分时系统中出现的虚拟设备类型,您将能够更有效地使用 iDRAC。