LINUX.ORG.RU

Не грузится образ initrd.

 


0

1

Пытаюсь загрузить ядро с initrd, если в Uboot

bootargs=mem=64 console=ttyS0,115200 initrd=0x22300000,0x11B9CA root=/dev/ram0 ro init=/bin/sh panic=10
, да и вообще любое другое значение ядро замирает на этапе Starting Kernel.. Если в убираем bootargs то ядро грузится с аргументами своей
cmd_line="mem=64M console=ttyS0,115200 initrd=0x22300000,0x11B9CA root=/dev/ram0 rw init=/init panic=10"
Но initrd не грузится вываливая такую ошибку.
[    1.950000] RAMDISK: gzip image found at block 0
[    2.250000] RAMDISK: incomplete write (19695 != 32768)
[    2.260000] write error
[    2.330000] VFS: Mounted root (ext2 filesystem) on device 1:0.
[    2.330000] Freeing init memory: 116K
[    2.340000] attempt to access beyond end of device
[    2.340000] ram0: rw=0, want=9220, limit=8192
[    2.350000] Buffer I/O error on device ram0, logical block 4609
[    2.350000] attempt to access beyond end of device
[    2.360000] ram0: rw=0, want=9220, limit=8192
[    2.360000] Buffer I/O error on device ram0, logical block 4609
[    2.370000] Failed to execute /init.  Attempting defaults...
[    2.370000] attempt to access beyond end of device
[    2.380000] ram0: rw=0, want=9220, limit=8192
[    2.380000] Buffer I/O error on device ram0, logical block 4609
[    2.390000] attempt to access beyond end of device
[    2.390000] ram0: rw=0, want=9220, limit=8192
[    2.400000] Buffer I/O error on device ram0, logical block 4609
[    2.400000] Kernel panic - not syncing: No init found.  Try passing init= option to kernel. See Linux Documentation/init.txt fo.
[    2.420000] [<c00139a0>] (unwind_backtrace+0x0/0xe4) from [<c01f63e8>] (panic+0x50/0x178)
[    2.420000] [<c01f63e8>] (panic+0x50/0x178) from [<c00088f8>] (init_post+0xa0/0xc4)
[    2.430000] [<c00088f8>] (init_post+0xa0/0xc4) from [<c02b585c>] (kernel_init+0xfc/0x130)
Если эту же файловую структуру сделать как initramfs то ядро загружается. Но мне необходим имено initrd. Подскажите что за ошибка.

★★★★★

Так, с загрузчиком разобрался, теперь он не вешает ведро на этапе Starting Kernel... а все из-за того что вместо

bootargs=mem=64 console=ttyS0,115200 initrd=0x22300000,0x11B9CA root=/dev/ram0 ro init=/bin/sh panic=10
надо было писать
bootargs=mem=64M console=ttyS0,115200 initrd=0x22300000,0x11B9CA root=/dev/ram0 rw init=/linuxrc panic=10
!

splinter ★★★★★
() автор топика
Последнее исправление: splinter (всего исправлений: 2)
Ответ на: комментарий от splinter

Пытаюсь грузится с такими параметрами:

Kernel command line: mem=64M console=ttyS0,115200 initrd=0x22300000,0x5DF65 root=/dev/ram0 rw init=/linuxrc
В ответ:
[    1.940000] RAMDISK: gzip image found at block 0
[    2.190000] VFS: Mounted root (ext2 filesystem) on device 1:0.
[    2.190000] Freeing init memory: 116K
[    2.200000] Failed to execute /linuxrc.  Attempting defaults...
[    2.200000] Kernel panic - not syncing: No init found.  Try passing init= option to kernel. See Linux Documentation/init.txt fo.
[    2.220000] [<c00139a0>] (unwind_backtrace+0x0/0xe4) from [<c01f63e8>] (panic+0x50/0x178)
[    2.230000] [<c01f63e8>] (panic+0x50/0x178) from [<c00088f8>] (init_post+0xa0/0xc4)
[    2.230000] [<c00088f8>] (init_post+0xa0/0xc4) from [<c02b585c>] (kernel_init+0xfc/0x130)
Содержимое /linuxrc:
#!/bin/sh
echo
echo "Simple initrd is active"
echo
mount -t /proc /proc
mount -t sysfs none /sys
/bin/ash --login

splinter ★★★★★
() автор топика
Ответ на: комментарий от splinter

Проблема решена добавлением параметра ramdisk_size. Всем спасибо.

splinter ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.