Загрузочная флешка

Опубликовано nekit - ср, 23/03/2011 - 15:38

Довольно часто приходится переустанавливать систему знакомым. Бывает, что ОС Windows кроме синего экрана ничего не показывает, а данные нужно сохранить и хранятся они на системном диске. Решил сделать загрузочную флешку с ОС FreeBSD, на которую будут установлены все необходимые программы, в частности - для работы с NTFS, Perl и т.д. Можно установить все, что угодно, даже графическую среду. Так же на флешке будет храниться дистрибутив FreeBSD, для того чтобы можно было развернуть ее без использования установочного диска на любом сервере в нужной конфигурации (например sysinstall не умеет работать с GPT, ZFS, gjournal), а флешка в данном случае с установленной ОС очень удобное средство.

Итак, приступим. Нам нужно:
  • Флешка, не меньше 512 Мб
  • Первый установочный диск FreeBSD
Размечаем флешку. У меня в системе она определилась как da0
  1. fdisk -BI /dev/da0
  2. bsdlabel -w -B /dev/da0s1
Далее создаем файловую систему.
  1. newfs -O2 -L FreeBSDonUSB /dev/da0s1a
Теперь флешка готова для записи системы. Монтируем ее.
  1. mount /dev/ufs/FreeBSDonUSB /media
Теперь нужен первый установочный диск FreeBSD. Вставляем в cdrom или если есть образ, то монтируем его.
  1. mdconfig -a -t vnode -f 7.2-RELEASE-i386-disc1.iso
  2. mount_cd9660 /dev/md0 /cdrom
Указываем папку куда будет ставиться ОС
  1. setenv DESTDIR /media
Устанавливаем базовую систему.
  1. cd /cdrom/7.2-RELEASE/base
  2. ./install.sh
При выводе сообщения на экран соглашаемся с ним. Устанавливаем ядро.
  1. cd /cdrom/7.2-RELEASE/kernels
  2. ./install.sh generic
Если нужны маны в системе, то заходим в папку manpages и запускаем install.sh. Переименовываем папку с ядром.
  1. cd /media/boot
  2. rmdir kernel
  3. mv GENERIC kernel
Правим fstab
  1. echo '/dev/ufs/FreeBSDonUSB / ufs rw,noatime 1 1' >> /media/etc/fstab
Если версия системы ниже FreeBSD 7.2, то нужно подгрузить модуль geom_label, чтобы определились имена разделов.
  1. echo 'geom_label_load="YES"' >> /media/boot/loader.conf
Ну все, флешка готова. Отмонтируем ее и можно загружаться. Так же после загрузки нужно провести первоначальную настройку системы, о которой можно прочитать в этой статье. P.S. Если нужен интерактивный загрузчик, то нужно выполнить
  1. boot0cfg -v -B -o noupdate da0
Вернуть обратно можно командой
  1. fdisk -B /dev/da0
P.P.S На FreeBSD 8.0+ наблюдается ошибка при запуске системы и монтировании корневого раздела. Это связано с тем, что в этой ветке добавлена новая реализация usb стека и многие подсистемы избавлены от блокировок, в следствии чего usb устройство может не успеть определиться до загрузки корневого раздела. Лечится это просто, нужно поставить небольшую задержку при определении устройств:
  1. echo "kern.cam.boot_delay=10000" >> /boot/loader.conf
  2. echo "kern.cam.scsi_delay=10000" >> /boot/loader.conf

Добавить комментарий

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