代码拉取完成,页面将自动刷新
From 90d96c4f6a44d895f8999da8c4721a04612e6379 Mon Sep 17 00:00:00 2001
From: Kairui Song <kasong@redhat.com>
Date: Tue, 29 Oct 2019 16:29:14 +0800
Subject: [PATCH] 90kernel-modules: don't install any block driver if not
needed
If hostonly mode is in use, and there isn't any block device included
as hostonly device, then the initramfs won't need any block driver.
Eg. for kdump built image, there could be only one nfs mount point,
or the initramfs may only execute some network operation then reboot.
In such case, skip block driver installation to save space and time.
Signed-off-by: Kairui Song <kasong@redhat.com>
(cherry picked from commit f4ad2e5c8964b6c7b50420299a0096bade6a40bd)
Resolves: #1776659
---
modules.d/90kernel-modules/module-setup.sh | 32 +++++++++++++++++++++++-------
1 file changed, 25 insertions(+), 7 deletions(-)
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
index 3dfceff0..c91ba10c 100755
--- a/modules.d/90kernel-modules/module-setup.sh
+++ b/modules.d/90kernel-modules/module-setup.sh
@@ -2,6 +2,8 @@
# called by dracut
installkernel() {
+ local _blockfuncs='ahci_platform_get_resources|ata_scsi_ioctl|scsi_add_host|blk_cleanup_queue|register_mtd_blktrans|scsi_esp_register|register_virtio_device|usb_stor_disconnect|mmc_add_host|sdhci_add_host|scsi_add_host_with_dma'
+
find_kernel_modules_external () {
local _OLDIFS
local external_pattern="^/"
@@ -16,11 +18,25 @@ installkernel() {
done < "$srcmods/modules.dep"
IFS=$_OLDIFS
}
- local _blockfuncs='ahci_platform_get_resources|ata_scsi_ioctl|scsi_add_host|blk_cleanup_queue|register_mtd_blktrans|scsi_esp_register|register_virtio_device|usb_stor_disconnect|mmc_add_host|sdhci_add_host|scsi_add_host_with_dma'
+
+ is_block_dev() {
+ [ -e /sys/dev/block/$1 ] && return 0
+ return 1
+ }
+
+ install_block_modules () {
+ hostonly='' instmods sr_mod sd_mod scsi_dh ata_piix
+ instmods \
+ scsi_dh_rdac scsi_dh_emc scsi_dh_alua \
+ =ide nvme vmd nfit \
+ virtio_blk
+
+ dracut_instmods -o -s "${_blockfuncs}" "=drivers"
+ }
if [[ -z $drivers ]]; then
hostonly='' instmods \
- sr_mod sd_mod scsi_dh ata_piix hid_generic unix \
+ hid_generic unix \
ehci-hcd ehci-pci ehci-platform \
ohci-hcd ohci-pci \
uhci-hcd \
@@ -38,10 +54,10 @@ installkernel() {
${NULL}
instmods \
- yenta_socket scsi_dh_rdac scsi_dh_emc scsi_dh_alua \
+ yenta_socket \
atkbd i8042 usbhid firewire-ohci pcmcia hv-vmbus \
- virtio virtio_blk virtio_ring virtio_pci virtio_scsi \
- "=drivers/pcmcia" =ide nvme vmd nfit
+ virtio virtio_ring virtio_pci virtio_scsi \
+ "=drivers/pcmcia"
if [[ "$(uname -m)" == arm* || "$(uname -m)" == aarch64 ]]; then
# arm/aarch64 specific modules
@@ -72,10 +88,12 @@ installkernel() {
${NULL}
fi
- dracut_instmods -o -s "${_blockfuncs}" "=drivers"
-
find_kernel_modules_external | instmods
+ if ! [[ $hostonly ]] || for_each_host_dev_and_slaves is_block_dev; then
+ install_block_modules
+ fi
+
# if not on hostonly mode, install all known filesystems,
# if the required list is not set via the filesystems variable
if ! [[ $hostonly ]]; then
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。