在 /sysroot 上掛載 UUID=xxx 失敗:沒有這樣的設備 - 在 linux 核心安裝後發生
嘗試安裝建構的核心並重新啟動後,我收到錯誤消息:
掛載:在 /sysroot 上掛載 UUID=59c56381-e5ec-4a8b-8c2e-f9c6a66d524c 失敗:沒有這樣的設備
為什麼會這樣?如何解決此問題以正確啟動?
關於系統
- Alpine Linux 3.12_alpha20200319 (edge) – Alpine Linux Virtual
- 核心 5.4.31-0-virt
- 在 VirtualBox 中執行
核心建構步驟
wget https://mirrors.edge.kernel/pub/linux/kernel/v5.x/linux-5.4.30.tar.xz tar -xf linux-5.4.30.tar.xz cp /boot/config-virt /home/name/build/.config make -C /home/name/linux-5.4.30 O=/home/name/build listnewconfig make -j4 -C /home/name/linux-5.4.30 O=/home/name/build cd /home/name/build make modules_install
以下步驟我不確定:
cp System.map /boot/System.map-virt cp arch/x86_64/boot/bzImage /boot/vmlinuz-virt cp .config /boot/config-virt
我沒有執行
make install
,因為它通過了 arch/x86/boot/bzImage。因此,我猜測它正在安裝 32 位和 64 位。所以我嘗試手動安裝。我的 extlinux.conf 文件:
DEFAULT menu.c32 PROMPT 0 MENU TITLE Alpine/Linux Boot Menu MENU HIDDEN MENU AUTOBOOT Alpine will be booted automatically in # seconds TIMEOUT 30 LABEL virt MENU LABEL linux virt LINUX vmlinuz-virt INITRD initramfs-virt APPEND root=UUID=59c56381-e5ec-4a8b-8c2e-f9c6a66d524c moudles=sd-mod,usb-storage,ext4 quiet rootfstype=ext4 MENU SEPARATOR
嘗試修復
(以下所有仍然會導致相同的錯誤)
- 重啟前
mkinitfs
在目錄中執行/
- 跑步
extlinux --install /boot
- 而是在建構目錄中執行
make install
並將 extlinux.conf 行LINUX vmlinuz-virt
更改為LINUX vmlinuz
- 嘗試將 VirtualBox 儲存控制器切換到 AHCI、virtio-scsi 和 PIIX4。
可能會有所幫助:
我檢查了錯誤和 extlinux.conf 中指定的 UUID。它標識 /dev/sda3。但是,當我在啟動失敗後進入緊急恢復 shell 並檢查 /dev 目錄時它不存在。不知道為什麼。
lsmod 顯示沒有載入任何模組。我認為這不應該發生。
文件
.config - https://github.com/alpinelinux/aports/blob/master/main/linux-lts/config-virt.x86_64
extlinux.conf - https://pastebin.com/QMkePsqS
mkinitfs.conf - https://pastebin.com/rksn7GcN
正如文章中提到的,
lsmod 顯示沒有載入任何模組。我認為這不應該發生
問題是因為模組沒有被載入到核心中。目前執行的核心版本是 5.4.31-0-virt wand,正在建構的版本是 5.4.30。正在安裝的模組被放置到
/lib/modules/5.4.30
目錄中。這導致初始 ram 磁碟 (initramfs) 在沒有正確的核心模組的情況下建構,因此不會在啟動時載入。要解決此問題,在建構 initramfs 時安裝核心模組後,應使用以下命令:
mkinitfs -o /boot/initramfs-virt 5.4.30
此命令在 initramfs 中包含 5.4.30 核心的已安裝模組,而不是預設
uname -r
版本(在本例中為 5.4.31-0-virt)。然後核心能夠載入模組 -> 讀取磁碟 -> 從所需的磁碟引導。