URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 38631
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Модификация образа загрузочного RAM диска (initrd) в Linux"

Отправлено auto_tips , 05-Окт-07 17:33 
Задача добавить модуль ядра usb-storage в "initrd.img" от Fedora Linux
для загрузки с диска с USB интерфейсом.


   mkdir ./initrd
   mv ./initrd.img ./initrd.img.gz
   gunzip  ./initrd.img

Метод 1. initrd.img в виде сжатого образа файловой системы
   mount -o loop ./initrd.img ./initrd

Метод 2. initrd.img в виде сжатого cpio архива
   cd ./initrd
   cpio -ic < ../initrd.img

Копируем в ./initrd/lib модуль usb-storage.ko
(следим, чтобы уже были модули scsi_mod.ko, (o|e|u)hci-hcd.ko, usbcore.ko)
Прописываем "insmod /lib/usb-storage.ko" в конец списка загрузки модулей ./initrd/init
Может потребоваться скопировать команду sleep и прописать после
загрузки модуля usb-storage задержку, необходимую на обнаружения накопителя.

   umount ./initrd  # для метода 1.
   cd ./initrd
   find . -print| cpio -oc |gzip -9 -c > ../initrd_new.img  # для метода 2.

При загрузке с USB диска большого объема (250Гб) при установке ОС в
разделе в центре диска не удалось использовать Lilo и Grub. Lilo при
загрузке ругался на несоответствие текущей геометрии диска той что
была в момент его установки. Установка Grub привела к зависанию
ноутбука в момент опроса USB диска (проблема BIOS). Выход нашелся в
установке загрузчика от FreeBSD:

1. Делаем бэкап текущего MBR USB диска:
  dd if=/dev/sda of=mbr_sda.bin bs=1 count=512
2. Берем boot0 из комплекта FreeBSD и копируем в него данные о таблицах разделов текущего диска:
  dd if=mbr_sda.bin  of=boot0   bs=1 count=66 skip=446 seek=446
3. Копируем загрузчик в MBR USB диска:
  dd if=boot0 of=/dev/sda  bs=1 count=512
4. В текущий раздел Linux устанавливаем Grub:
  # grub
  grub> find /boot/grub/stage1
     (hd0,1) раздел /dev/sda2
  grub> root (hd0,1)
  grub> setup (hd0,1)


URL:
Обсуждается: https://www.opennet.ru/tips/info/1468.shtml


Содержание

Сообщения в этом обсуждении
"Модификация образа загрузочного RAM диска (initrd) в Linux"
Отправлено sss , 05-Окт-07 17:33 
а можно дурацкий вопрос? Если initrd нужен для того чтобы загружать ядро с usb диска, то где система возьмет сам initrd? ведь initrd тоже грузится с этого же диска!

"Модификация образа загрузочного RAM диска (initrd) в Linux"
Отправлено uldus , 05-Окт-07 18:05 
>а можно дурацкий вопрос? Если initrd нужен для того чтобы загружать ядро
>с usb диска, то где система возьмет сам initrd? ведь initrd
>тоже грузится с этого же диска!

Ядро и initrd грузятся через функции BIOS.


"Модификация образа загрузочного RAM диска (initrd) в Linux"
Отправлено hostik , 17-Дек-07 16:19 
а почему у меня так:
debian:/initrd# mount -o loop ./initrd.img ./initrd
mount: you must specify the filesystem type
debian:/initrd# cpio -ic < ../initrd.img
cpio: преждевременный конец файла

"Модификация образа загрузочного RAM диска (initrd) в Linux"
Отправлено Sergio , 01-Фев-08 22:59 
Вероятно потому, что анзипнуть забыли.
$ file initrd.img

"Модификация образа загрузочного RAM диска (initrd) в Linux"
Отправлено anny , 12-Апр-08 18:02 
У меня тоже самое, и он точно распакован. Дистрибутив - debian, аналогичная ситуация на xubuntu. Образ по структуре не похож ни на ext2, ни на minix, но и на gz тоже не похож... Как будто бы какая-то другая файловая система...

"Модификация образа загрузочного RAM диска (initrd) в Linux"
Отправлено Krash , 06-Мрт-09 13:12 
заюзайте просто cpio -i < ../initrd.img