Как распаковать/смонтировать initrd.bin на Заурусе?
Как распаковать/смонтировать initrd.bin на Заурусе?
Люди
Подскажите плиз как можно цивильными методами распаковать или смонтировать initrd.bin из прошивок.
Цель - доставать из прошивок нужные файлы.
Подскажите плиз как можно цивильными методами распаковать или смонтировать initrd.bin из прошивок.
Цель - доставать из прошивок нужные файлы.
Последний раз редактировалось Dadooda Вс авг 07, 2005 01:28, всего редактировалось 1 раз.
Попробовал смонтировать initrd.bin от Cacko 1.22 как jffs2, не вышло:ViV писал(а):Ставишь модуль jffs2 и монтируешь файл как loop-устройство. Если нужны файлы из pdaxrom, скачай builder и гляди в нем.
# mount -t jffs2 -o ro,loop /mnt/card/initrd.bin /mnt/misc
mount: Mounting /home/system/var/mnt/card/initrd.bin on /mnt/misc failed: Invalid argument
jffs2 в ядре есть, /dev/root смонтирован как jffs2.
Вообще initrd.bin от Cacko начинается словами SHARP!1.20
Может быть чтобы он стал файловой системой нужно ему от головы отрезать немного лишних байтов? Наверняка знаток Антон Масловский знает ответ
Очень жду точную цифру. Пробовал отрезать 16 - не помогло.maslovsky писал(а):Натюрлих, а именно 16 оных, если не ошибаюсь. Приеду на работу, уточню.Dadooda писал(а):Вообще initrd.bin от Cacko начинается словами SHARP!1.20
Может быть чтобы он стал файловой системой нужно ему от головы отрезать немного лишних байтов? Наверняка знаток Антон Масловский знает ответ
В принципе со всем разобрался, сколько байтов отрезать и пр. Действительно 16 если смотреть по первым байтам jffs2-файловых систем.
Проблема моя была в том, что по умолчанию jffs2 можно монтировать только с MTD-устройств, а я пытался из loop-девайса. На десктопе всё смонтировать скорее всего получится из loop или RAM (попробую в понедельник), но очень нужно на самом Заурусе, из файла через loop device.
Посему очень прошу: люди добрые, кто собирал ядро 2.4.20 или позднее, соберите и выложите мне модуль blkmtd.o а также утилитку losetup.
На ZUG один кекс хвалился что собрал и выложил архивчик mtdtools.tar.gz, но у них как назло заглючил форум (ошибка в PHP-коде), когда исправят - неизвестно. Кстати если у кого есть этот mtdtools.tar.gz - дайте плиз.
Можно слать на мыло: alex-spam@rdc.ru
Спасибо
Проблема моя была в том, что по умолчанию jffs2 можно монтировать только с MTD-устройств, а я пытался из loop-девайса. На десктопе всё смонтировать скорее всего получится из loop или RAM (попробую в понедельник), но очень нужно на самом Заурусе, из файла через loop device.
Посему очень прошу: люди добрые, кто собирал ядро 2.4.20 или позднее, соберите и выложите мне модуль blkmtd.o а также утилитку losetup.
На ZUG один кекс хвалился что собрал и выложил архивчик mtdtools.tar.gz, но у них как назло заглючил форум (ошибка в PHP-коде), когда исправят - неизвестно. Кстати если у кого есть этот mtdtools.tar.gz - дайте плиз.
Можно слать на мыло: alex-spam@rdc.ru
Спасибо
Чтобы не потерялось:
modprobe mtdcore
modprobe jffs2
modprobe mtdram total_size=64536 erase_size=16
modprobe mtdchar
mknod /dev/mtdblock0 b 31 0
modprobe mtdblock
losetup -o 16 /dev/loop0 ./initrd.bin
dd if=/dev/loop0 of=/dev/mtdblock0
losetup -d /dev/loop0
mount -t jffs2 /dev/mtdblock0 /mnt
ls /mnt
rmmod mtdblock
rmmod mtdram
rmmod jffs2
rmmod mtdchar
rmmod mtdpart
rmmod mtd_blkdevs
rmmod mtdcore
modprobe mtdcore
modprobe jffs2
modprobe mtdram total_size=64536 erase_size=16
modprobe mtdchar
mknod /dev/mtdblock0 b 31 0
modprobe mtdblock
losetup -o 16 /dev/loop0 ./initrd.bin
dd if=/dev/loop0 of=/dev/mtdblock0
losetup -d /dev/loop0
mount -t jffs2 /dev/mtdblock0 /mnt
ls /mnt
rmmod mtdblock
rmmod mtdram
rmmod jffs2
rmmod mtdchar
rmmod mtdpart
rmmod mtd_blkdevs
rmmod mtdcore
Это всё понятно, но здесь используется mtdram. Если монтировать на Завре, никакого RAMа не хватит - нужно напрямую из loop'а.jkukka писал(а):Чтобы не потерялось:
modprobe mtdcore
modprobe jffs2
modprobe mtdram total_size=64536 erase_size=16
...
rmmod mtd_blkdevs
rmmod mtdcore
Кто запостит рабочий пример с использованием blkmtd.o на Завре?
Так и быть приведу рабочий пример сам, тем более что пишу с Завра на котором только что это сделал.Dadooda писал(а):Кто запостит рабочий пример с использованием blkmtd.o на Завре?
# сюда будем монтировать
mkdir cacko
# инитим девайсы
losetup -o 16 /dev/loop0 initrd.bin
modprobe blkmtd device=/dev/loop0
# ВАЖНО: узнаём номер mtd
cat /proc/mtd
...
mtd4: 01afe000 00020000 "blkmtd: /dev/loop0"
...
# у меня девайс был mtd4 посему пришлось сделать
mknod /dev/mtdblock4 b 31 4
# монтируем. -o loop НЕ НУЖЕН
mount -t jffs2 /dev/mtdblock4 cacko -o ro
# после mount у меня на C1000 была пауза секунд 20
# вернувшись в шелл смотрим что там смонтировалось
ls cacko/*
После отмонтирования можно сделать
rmmod blkmtd
losetup -d /dev/loop0