Назад | Перейти на главную страницу

Как создать диск с драйверами для установки Anaconda (CentOS 6)

Мне нужно сделать диск с драйверами для анаконды. Этот диск будет содержать обновленный модуль для сетевой карты недавно выпущенного ноутбука, и цель состоит в том, чтобы сетевая установка CentOS 6.2 работала. Я использую cobbler, поэтому даже сам файл кикстарта находится в сети. Я не возражаю, если установка не будет полностью автоматической, и я не против прикрепить USB-накопитель с образом диска с драйверами во время установки и вручную выбрать правильный элемент, но я хочу, чтобы все остальное было в сети (ядро образ, initrd, файл кикстарта, репозитории RPM).

Я уже собрал обновленный драйвер, и у меня даже есть RPM "kmod", созданный с помощью / usr / lib / rpm / redhat / kmodtool. К сожалению, я не нашел абсолютно никакой документации о том, как выглядит диск с драйверами.

http://www.phil.muni.cz/~letty/linuxfaq/pracovni/driver-disk-howto это единственная ссылка, которую я смог найти, и она описывает борьбу человека, который сделал то же самое, что и я - скачал диски с драйверами и попытался изучить их. К сожалению, формат в CentOS 6, похоже, изменился, и лучшее, что я мог сделать, это заставить anaconda сказать мне, что: «Диск с драйверами недействителен для этого выпуска CentOS.». В самом журнале написано «не удается найти / tmp / drivers / rpms / x86_64 / repodata», и до сих пор я не видел диска с драйверами с «реподанными» на нем.

В настоящее время погружаюсь в исходный код анаконды но я надеюсь, что кто-то может указать мне правильное направление.

Возможно, я нашел свой ответ в источник анаконды после всего.

Чтобы сгенерировать диск с драйверами, совместимыми с CentOS 6, вы можете создать образ squashfs (другие файловые системы также могут работать, но squashfs, безусловно, создать проще всего) со следующим макетом:

  • rhdd3 - файл с простым однострочным комментарием для описания диска
  • .rundepmod - наличие этого файла сообщает установщику, что он должен запускаться depmod чтобы подобрать модули
  • rpms/x86_64 - дополнительный репозиторий yum, содержащий RPM-файлы kmod
  • lib/modules/2.6.32-220.el6.x86_64/... - здесь находятся актуальные модули ядра; если диск с драйверами содержит обновленный драйвер вышестоящего драйвера, то структура каталогов здесь должна соответствовать расположению вышестоящего модуля ядра. Версия ядра, конечно же, должна совпадать с версией установщика.

А поскольку картинка стоит тысячи слов, вот образец диска с драйверами, который мы используем для запуска новых ноутбуков, которым требуется обновление. atl1c.ko Водитель:

$ unsquashfs -ls driver-disk.dd 
Parallel unsquashfs: Using 2 processors
8 inodes (26 blocks) to write

squashfs-root
squashfs-root/.rundepmod
squashfs-root/lib
squashfs-root/lib/modules
squashfs-root/lib/modules/2.6.32-220.el6.x86_64
squashfs-root/lib/modules/2.6.32-220.el6.x86_64/kernel
squashfs-root/lib/modules/2.6.32-220.el6.x86_64/kernel/drivers
squashfs-root/lib/modules/2.6.32-220.el6.x86_64/kernel/drivers/net
squashfs-root/lib/modules/2.6.32-220.el6.x86_64/kernel/drivers/net/atl1c
squashfs-root/lib/modules/2.6.32-220.el6.x86_64/kernel/drivers/net/atl1c/atl1c.ko
squashfs-root/lib/modules/2.6.32-220.el6.x86_64/updates
squashfs-root/rhdd3
squashfs-root/rpms
squashfs-root/rpms/x86_64
squashfs-root/rpms/x86_64/kmod-compat-wireless-3.3_2_n-2.el6.x86_64.rpm
squashfs-root/rpms/x86_64/repodata
squashfs-root/rpms/x86_64/repodata/filelists.xml.gz
squashfs-root/rpms/x86_64/repodata/other.xml.gz
squashfs-root/rpms/x86_64/repodata/primary.xml.gz
squashfs-root/rpms/x86_64/repodata/repomd.xml

Я обнаружил это при поиске инструкций по созданию диска с драйверами для Centos 7.4. В моем случае мне понадобился драйвер RAID для установки на HP Microserver, где единственные внутренние диски являются частью RAID.

Я начал со старого диска с драйверами устройства (на самом деле USB-ключ), на котором были следующие папки (среди некоторых других файлов):

/rpms/x86_64/
/rpms/x86_64/repodata/

Мне показалось, что следующий процесс сработал:

  1. Удалите содержимое /rpms/x86_64/ папка на USB-ключе
  2. Загрузите правильный / последний драйвер в виде файла RPM
  3. Переместите этот RPM в отдельную папку
  4. Обеспечьте createrepo пакет установлен
  5. Выполните следующую команду, где ваша_папка где находится число оборотов в минуту:

    createrepo your_folder/

  6. Убедитесь, что это создало repodata папка в ваша_папка

  7. Скопируйте содержимое ваша_папка к /rpms/x86_64 на USB-ключе

Хотя это напрямую не относится к OP, это может быть полезно для кого-то еще, кто сталкивался с этой страницей, когда пытался решить, как создать диск с драйверами устройства для установки CentOS.