Kernel

引導過程 - Dev sdX 名稱更改

  • January 24, 2015

我有一台帶有 2.6.36 核心的 Slack 13.1 機器。然後,我將核心更新到3.12.1。

這台機器已連接:一個包含三個分區的可引導磁碟(/dev/sda1 –> Linux OS 文件…、/dev/sda2 –> 數據、/dev/sda3 –> 更多數據)、一個“虛擬” SSD 只是用來儲存東西 (/dev/sdb1) 和 USB 埠。

事實是,每當我嘗試使用連接到機器的包含數據(不是 LiveUSB)的 USB 啟動 Linux 時,在啟動過程中都會發生一些事情,將 sda 設備分配給 USB,因此無法掛載由於核心恐慌,“可引導磁碟”中的 Linux 分區:

VFS: Mounted root (vfat filesystem) readonly on device 8:1.
devtmpfs: error mounting -2
[...]
Kernel panic - not syncing: no init found. Try passing init=..

我使用的引導載入程序是LILO。我不知道是否有強制啟動過程不更改設備名稱或將它們中的任何一個預分配給某個設備。這是它的配置:

# Linux bootable partition config begins
image = /boot/vmlinuz
root=/dev/sda1    
append="panic=120"
label=3.12.20-smp
read-only 

/etc/fstab:

/dev/sda1        /                ext4        rw               1   1

由於 USB 設備分區被認為是 sda1,它顯然不包含任何類型的 init 程序或應用程序,所以我得到核心恐慌。

我曾嘗試使用 root=“LABEL=myLabel” 或 root=“LABEL=current” 但沒有運氣……我認為因為它在根節點中搜尋標籤,而不是在所有分區中:S

有什麼建議嗎?有可能修復它嗎?提前致謝!

忘記通過設備名稱來辨識設備。使用 UUID,你不會有任何問題。

blkid您可以使用命令辨識設備的 UUID 。

順便說一下,我不知道LILO 是否支持UUID。如果它沒有切換到 GRUB。

Linux 上的這種設備編號是該作業系統最糟糕的事情之一。其他所有合理的*nix 都使用控制器/目標/lun 之類的東西來定址磁碟。

我曾經通過更改 BIOS 中的引導設備順序(將 USB 放在最後)解決了我的 PC 上的這個問題。

我不知道這是否適用於所有情況,因為 Linux 通常不關心 BIOS 設置。

引用自:https://unix.stackexchange.com/questions/180629