Я пытаюсь выполнить загрузку 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 МБ я смог обойти этот экран с ошибкой и в конечном итоге загрузить свой образ.