Назад | Перейти на главную страницу

Невозможно выполнить загрузку PXE, ошибка «файловая система не смонтировала корень»

Я пытаюсь выполнить загрузку PXE с помощью созданного мной образа, но после загрузки образа и ядра я получаю следующее сообщение об ошибке:

Основное сообщение об ошибке таково:

No filesystem could mount root, tried: ext3 ext2 iso9668
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0
Pid: 1, comm: swapper not tainted 2.6.34.1 #4

Я попытался найти совет по этому поводу в Интернете, но обнаружил, что либо оборудование несовместимо, либо используется другое ядро. Я уверен, что оборудование совместимо, потому что я смог без проблем загрузить то же самое ядро ​​(собственное ядро, которое я не создавал, к сожалению) и операционную систему (Scientific Linux 5) с SD-карты, поэтому я думаю, что это сетевая загрузка также должна работать для того же ядра и системы. Чтобы сделать образ SL5 для загрузки по сети, я скопировал все файлы точно с SD-карты (кроме файлов в /sys и /proc), но я все равно получаю это сообщение об ошибке. Я также пробовал копировать только необходимые каталоги, например /bin, /dev, /etc, /libи т. д. Даже с этими каталогами размер образа составляет около 2,6 ГБ, и я все равно получаю это сообщение об ошибке.

Прямо сейчас я чувствую, что у меня есть два варианта решения: либо изображение слишком велико для установки на него. ram0 (есть ли ограничение по размеру?), и в этом случае я должен обрезать содержимое каталогов; или система просто не распознает ram0 вообще, и есть проблема с процессом initrd.

Вот соответствующее содержание моих pxelinux.cfg/default файл, а также:

LABEL SL5
MENU LABEL SL5
KERNEL images/vmlinuz-2.6.34.1-32-v7805
APPEND initrd=images/SL5rootfs.gz root=/dev/ram0 ramdisk_size=3100000 rw ip=dhcp fastboot mem=3g

если вы построили SL5rootfs.gz на основе initrd в вашем SL ISO, тогда его init В скрипте все еще есть код для монтирования root с CD / ISO, поэтому он не работает. Вы должны войти в цепочку загрузочных сценариев, начиная с / init, и исправить корневое монтирование теперь на основе полученного из сети корневого раздела, то есть файла squshd fs. Вы можете сделать это с помощью CIFS, HTTP, NFS и т. Д., Если вы хотите увидеть много примеров по этому поводу, вы можете посмотреть, что Serva подходит для PXE-загрузки многих дистрибутивов Linux. (Я связан с разработкой Serva)

Дополнительный момент, который следует учитывать, это то, что SL5rootfs.gz действительно есть чистая поддержка или нет. если у него его нет, вы можете очень хорошо загрузить его из PXE, но это единственное, что вы можете сделать, потому что вы не сможете получить что-либо еще.

Оказывается, изображение было слишком большим. У меня был образ размером 3 ГБ и всего 500 МБ ОЗУ. После изменения размера изображения до 400 МБ я смог обойти этот экран с ошибкой и в конечном итоге загрузить свой образ.