
我正在嘗試使用 qemu 啟動 Linux 核心、ramdisk 和驅動器:
qemu -initrd ramdisk.cpio.gz -kernel mylinux.i686 -m 1024 -append console=ttyS0,38400 -serial file:serial.out -hdd raw.img
啟動後我在 /dev 下看不到驅動器。主要目標是讓我的努力得到認可。更多資訊:
- 我透過 qemu-img 創建了 raw.img。 3GB,原始格式
- 我可以透過另一個Linux發行版識別並安裝raw.img:tinycore_3.5.1.iso
- mylinux 端不存在 /dev/hdd,也不存在任何 /dev/hd*
- 我在 /sys/class/block 下沒有看到任何讓我相信驅動器已被核心識別的內容
- ramdisk 包含 /init 和其他進程。現在假設這是我的根卷。
- 系統使用udev
我是這個等級的linux新手。希望有人可以幫助我理解作業系統事件。我的假設是 /sys 將被核心識別為磁碟機。然後,udev 將偵聽內核事件並將磁碟機資訊轉換為 /dev 下的節點。正確的?任何調試此問題的見解和步驟將不勝感激。同樣,目標是讓磁碟機被識別(即顯示在 /dev 下),而不是從它啟動。
答案1
-hdd 不代表“Hard Disk Drive”,而是“Hard Disk D”或第四個硬碟(輔助從屬硬碟)。
您應該使用 -hda 來引用第一個硬碟 - 主硬碟。
答案2
經過更多偵錯後,我注意到 Linux 啟動訊息中存在錯誤。我使用的核心是為不同的 ramdisk 建立的,因此在錯誤的目錄中尋找 IDE 驅動程式。一旦我將核心與虛擬磁碟對齊,我的驅動器就會被識別。讓我縮小範圍的一件事是查看啟動訊息,發現從未提到識別任何驅動器。最初的訊息主要與硬體偵測有關。因此,如果它不存在,作業系統就不會識別它。學過的知識。感謝您的幫助和建議。