我有一台 HPE Proliant BL460c Gen10 服务器,我想将其安装在 Ubuntu 上。该服务器仅具有到外部 SAN 的 Fabric FCoE。当我从 HPE Ubuntu 20.04 ISO 启动时,无法识别 HDD,但我随后在安装介质上安装了包fcoe-utils
(apt install fcoe-utils
)。稍后,我在/etc/fcoe/
配置文件中配置eno3
并eno4
禁用该DCB_REQUIRED
选项,一切正常。在创建的多路径磁盘上安装了系统。现在服务器启动 UEFI Ubuntu 条目,但 initramfs 无法识别硬盘,因为 FCoE 未在 initramfs 内配置。我该怎么办?测试我使用安装了 Ubuntu 的 chroot 进入实时系统(再次配置 FCoE 之后),安装了 Dracut(因为我看到它有一个 fcoe 特定模块),但是当我尝试再次启动时……界面从未获取 AUTO_VLAN 配置,但在实时系统上运行良好。
答案1
- 在实时服务器安装环境中配置 FCoE
- 安装服务器,最后不重启,进入shell
- /target 内的 Chroot
mount -t proc none /target/proc
mount -t sysfs none /target/sys
chroot /target
- 安装基础依赖项:
apt install dracut dracut-network fcoe-utils
- 编辑
/usr/lib/dracut/modules.d/95fcoe/fcoe-up.sh
添加以下变量定义(第 20 行)
if [ "$netif" == "eth2" ]
then
netif="eno3"
elif [ "$netif" == "eth3" ]
then
netif="eno4"
fi
这是因为在启动时 dracut 将网络接口作为 ethX,但同时内核将接口重命名为 enoX,因此找不到它。
- 编辑
/usr/lib/dracut/modules.d/90lvm/64-lvm.rules
在 RUN lvm_scan 语句顶部添加此语句
RUN+="/sbin/initqueue --settled --onetime --unique /sbin/kpartx -u /dev/mapper/mpatha"
- 下载并安装 sg3-utils 版本 > focal_version deb
http://mirrors.kernel.org/ubuntu/pool/main/s/sg3-utils/sg3-utils-udev_1.45-1ubuntu1_all.deb
apt install ./<downloaded_file>
这是因为焦点版本对 initramfs-tools 有硬依赖,而它不能与 dracut 一起工作。
- 执行 dracut
dracut -m "fcoe fcoe-uefi multipath lvm bash network base" --add-drivers "dm_service_time bnx2fc cnic uio fcoe libfcoe libfc mac_hid hid_generic usbhid hid 8021q garp mrp stp llc bonding cfg80211 dm_multipath scsi_dh_rdac scsi_dh_emc scsi_dh_alua intel_rapl_msr intel_rapl_common ipmi_ssif isst_if_common nfit x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel kvm joydev input_leds rapl intel_cstate hpilo hpwdt mei_me mei ioatdma ipmi_si dca ipmi_devintf ipmi_msghandler acpi_tad mac_hid acpi_power_meter sch_fq_codel ip_tables x_tables autofs4 overlay nls_utf8 isofs raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq raid1 raid0 multipath linear hid_generic crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel qla2xxx crypto_simd mgag200 cryptd drm_vram_helper glue_helper i2c_algo_bit ttm nvme_fc bnx2x nvme_fabrics drm_kms_helper nvme_core syscopyarea sysfillrect scsi_transport_fc sysimgblt usbhid fb_sys_fops mdio libcrc32c hid drm lpc_ich wmi usb_storage" --fstab --force --kver 5.4.0-77-generic
从 dracut 输出中获取有关 fcoe 的信息
例如:
dracut: fcoe=eno3:nodcb:fabric
fcoe=eno4:nodcb:fabric
ifname=eno3:aa:bb:cc:dd:ee:fe
ifname=eno4:aa:bb:cc:dd:ee:ff
删除dracut:
所有配置并将其放在一行中,添加到 grub.cfg 上的内核行启动中。
- 修改 grub.cfg 并将新引用添加到创建的 iniramfs
- 卸载全部并重置