The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Модификация образа загрузочного RAM диска (initrd) в Linux
Задача добавить модуль ядра 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.
   Другой вариант упаковки (для Fedora 8):
   find . -print| cpio -H newc -o |gzip -9 -c > ../initrd_new.img


При загрузке с 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)
 
02.10.2007
Раздел:    Корень / Администратору / Система / Linux специфика / Установка и работа с пакетами программ в Linux

Обсуждение [ RSS ]
 
  • 1.1, sss, 17:33, 05/10/2007 [ответить] [смотреть все]
  • +/
    а можно дурацкий вопрос? Если initrd нужен для того чтобы загружать ядро с usb диска, то где система возьмет сам initrd? ведь initrd тоже грузится с этого же диска!
     
     
  • 2.2, uldus, 18:05, 05/10/2007 [^] [ответить] [смотреть все]
  • +/
    >а можно дурацкий вопрос? Если initrd нужен для того чтобы загружать ядро
    >с usb диска, то где система возьмет сам initrd? ведь initrd
    >тоже грузится с этого же диска!

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

     
  • 1.4, hostik, 16:19, 17/12/2007 [ответить] [смотреть все]
  • +/
    а почему у меня так:
    debian:/initrd# mount -o loop ./initrd.img ./initrd
    mount: you must specify the filesystem type
    debian:/initrd# cpio -ic < ../initrd.img
    cpio: преждевременный конец файла
     
     
  • 2.5, Sergio, 22:59, 01/02/2008 [^] [ответить] [смотреть все]
  • +/
    Вероятно потому, что анзипнуть забыли.
    $ file initrd.img
     
     
  • 3.6, anny, 18:02, 12/04/2008 [^] [ответить] [смотреть все]
  • +/
    У меня тоже самое, и он точно распакован. Дистрибутив - debian, аналогичная ситуация на xubuntu. Образ по структуре не похож ни на ext2, ни на minix, но и на gz тоже не похож... Как будто бы какая-то другая файловая система...
     
     
  • 4.7, Krash, 13:12, 06/03/2009 [^] [ответить] [смотреть все]  
  • +/
    заюзайте просто cpio -i < ../initrd.img
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:

     Добавить заметку
     Версия для печати
     
     Поиск заметки:
     

    Последние заметки
    - 12.05 Организация шифрованного бэкапа с помощью rdiff-backup, encfs и Dropbox
    - 11.05 Настройка беспроводного соединения в Debian GNU/Linux
    - 07.05 Использование Google Drive в Linux
    - 18.04 Использование нескольких сетевых стеков в Linux
    - 15.04 Восстановление стандартного KDE меню после его удаления (например, wine)
    - 11.04 Настройка gmirror при использовании GPT во FreeBSD 9
    - 09.04 Маршрутизатор на базе FreeBSD с приоритизация трафика средствами PF и ALTQ
    - 02.04 Частичное восстановление данных MySQL из бэкапа, созданного с использованием LVM
    - 21.03 Настройка DNSSEC в BIND 9.9
    - 17.03 Набор номера на Cisco IP Phone 7960/7940 из скрипта
    RSS | Следующие 15 записей >>


    ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

    Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

    Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

    Оформить подписку на год


      Закладки на сайте
      Проследить за страницей
    Created 1996-2012 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    RUNNet TopList