понедельник, 1 декабря 2008 г.

howto: Создание загрузочной USB-флэшки с SystemRescueCd

SystemRescueCd можно скачать по нижеприведённой ссылке.
http://sysresccd.org/Download

Описание его основных возможностей и преимуществ я дам позже.

Должен заметить, он содержит некоторые несвободные компоненты, к сожалению не имеющие на данный момент открытых аналогов.

Официальное howto показалось мне неполным, тем более что в результате на флэшке будет куча файлов, что мягко говоря не очень удобно. В случае использования этого howto на флэшке должны будут находится только папка syslinux и файл sysrcd.dat.

Вы можете использовать как USB-флэшку, так и USB-HDD (при этом разделов может быть несколько, но загрузчик должен быть на первом).

1. Нам понадобятся parted, dosfstools, mtools, syslinux и может пригодится gparted. Устанавливайте средствами вашего дистрибутива. Если у вас нет машины с Linux, можете загрузить SystemRescueCd, в нём есть всё необходимое.

2. Сохраните всю информацию с вашей флэшки.

3. Форматируем флэшку в FAT16 (можно с помощью gparted). Так как с других файловых систем будет загружаться далеко не на всех материнских платах и ноутбуках. Загрузка с USB-накопителей не стандартизирована и разные BIOS реализуют её по-своему.
# mkdosfs -F 16 /dev/sdb1
Естественно вместо sdb1 необходимо подставить ваш диск (gparted вам подскажет).
Символ "#" означает что эти действия должны выполняться с правами суперпользователя (root).

4. Проставляем boot флаг (можно с помощью gparted).
# parted /dev/sdb set 1 boot on
5. Монтируем образ SystemRescueCd (можно воспользоваться fuseiso, либо извлечь файлы из образа с помощью isomaster).
# mkdir /mnt/systemrescuecd
# mount -o loop systemrescuecd-x86-1.1.2.iso /mnt/systemrescuecd
6. Монтируем флэшку (можно средствами kde/gnome/xfce, например в /media/disk).

7. Создаём на флэшке папку syslinux.
$ mkdir /media/disk/syslinux
8. Копируем туда с SystemRescueCd файлы из папок isolinux, bootdisk и ntpasswd, а также syslinux.cfg из папки syslinux. И в корень флэшки файл sysrcd.dat.
$ cp -r /mnt/systemrescuecd/isolinux/* /media/disk/syslinux/
$ cp -r /mnt/systemrescuecd/bootdisk/* /media/disk/syslinux/
$ cp -r /mnt/systemrescuecd/ntpasswd/* /media/disk/syslinux/
$ cp /mnt/systemrescuecd/syslinux/syslinux.cfg /media/disk/syslinux/
$ cp /mnt/systemrescuecd/sysrcd.dat /media/disk/
9. Отмонтируем флэшку.
$ umount /dev/sdb1
10. Устанавливаем загрузчик syslinux в раздел на флэшке в папку syslinux.
$ syslinux -d syslinux /dev/sdb1
11. Прописываем в MBR флэшки загрузочную DOS/WIN MBR, которая передаёт управление загрузчику с раздела с boot флагом.
$ dd if=/usr/lib/syslinux/mbr.bin of=/dev/sdb
12. Можно проверять. В qemu можно проверить без перезагрузки.
$ qemu -hda /dev/sdb
В SystemRescueCd начиная с версии 1.1.0 "испортили" freedos.img, его лучше заменить на вот этот.
$ cp balder10.imz /media/disk/syslinux/freedos.img
Для того чтобы заставить некоторые BIOS загрузиться с USB-флэшки вам потребуется включить опцию "Legacy USB Support". Если BIOS поддерживает Boot menu (на материнских платах Asus клавиша "F8", на ноутбуках "F9" или "F10"), то удобнее всего воспользоваться им. Если же функция Boot menu отсутствует то ваша флэшка скорее всего появится в меню "Hard Disk Drives", реже в "Removable Devices" где вам необходимо будет выставить её приоритет.

Некоторые ноутбуки (замечательной фирмы Acer) всё же наотрез откажутся загружаться с USB-флэшки, и на некоторых (Fujitsu Siemens) не работает mhdd, - в этих случаях придётся загружать SystemRescueCd с диска.

Принимается конструктивная критика и дополнения.

1 комментарий: