Debian, создание загрузочной флешки из модифицированного образа дистрибутива
Дано. Компьютер с сетевой картой, которая не поддерживается актуальным установщиком Debian, но при этом сам Debian на этот компьютер нужно поставить по сети.
Методов решения подобной проблемы может быть несколько, однако в этой статье рассмотрим вариант, при котором драйвера добавляются в скачанный установочный netinst
-образ.
После скачивания образ нужно распаковать в папку (с помощью GUI, через mount
или любым другим удобным способом).
Установщик актуальной (10.9) версии Debian может загружать дополнительные драйвера из папки firmware
, которая находится в корне дистрибутива. Так как мы имеем дело с ISO-образом, все папки и сам образ изначально будут в режиме только для чтения. После добавления прав на запись (например через chmod u+w firmware
) в папку можно добавить необходимые драйверы.
Теперь необходимо сформировать новый загрузочный ISO-образ из папки с дистрибутивом. По сразу нескольким причинам один из самых простых способов сделать это именно в Debian — воспользоваться утилитой xorriso
(есть в репозитории). Команда:
$ xorriso -as mkisofs \
-c isolinux/boot.cat \
-b isolinux/isolinux.bin \
-no-emul-boot \
-boot-load-size 4 \
-boot-info-table \
-eltorito-alt-boot \
-e boot/grub/efi.img \
-no-emul-boot \
-isohybrid-gpt-basdat \
-o /path/to/tmp.iso \
/path/to/tmp
Первоисточник команды. Чтобы сформированный образ мог загружаться в UEFI-режиме нужно воспользоваться утилитой isohybrid
(содержится в пакете syslinux-utils
):
$ isohybrid --uefi tmp.iso
После этого дело за малым — записать образ на накопитель. Для этого отлично подойдет dd
. Не забудьте предварительно выяснить имя устройства (в примере /dev/sdb
), присвоенное флешке, например через lsblk
. Команда:
# dd bs=4M if=path_to_iso.iso of=/dev/sdb conv=fdatasync
Отдельно стоит отметить, что все вышеперечисленные операции можно значительно упростить воспользовавшись дополнительным компьютером с Windows и программами AnyBurn (для создания образа из папки) и Rufus (для записи образа).