Документация по ОС FreeBSD Четверг, 06.02.2025, 21:16
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [0]
Установка и настройка [281]
X Window [25]
Man pages [30]
Ports & Packages [26]
cvs [18]
Multimedia [20]
Нововсти в мире Unix [0]
RFC [4]
RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Безопасность [52]
Работа с железом [58]
Книги по FreeBSD [17]
Сеть [505]
Программирование [40]
FireWall [58]
Темы экзамена BSDA [14]
Официальные темы экзамена BSDA, включая подробноые описания и советы по обучению.

Главная » Статьи » Установка и настройка

Панацея на флешке. Создаем мультизагрузочную флешку на все случаи жизни [2009]
Думаю, у всех нас есть несколько любимых LiveCD, которые мы постоянно носим с собой — на всякий случай. И это оправданно, ведь LiveCD незаменим, когда нужно восстановить работоспособность ОС или просто поработать в знакомом окружении.
Но CD/DVD — громоздкий и ненадежный носитель. Если тебе надоело таскать с собой ворох LiveCD, я предлагаю записать все эти ОС на флешку.

С момента первого публичного релиза knoppix («дедушки» всех LiveCD) прошло уже около 10 лет. За этот срок каждый уважающий себя дистрибутив обзавелся LiveCD-версией, а количество узкоспециализированных LiveCD-систем перевалило за все мыслимые и немыслимые пределы. Но время идет, и компакт-диски уже не соответствуют современным требованиям компактности (такой вот каламбур), надежности и сроков хранения информации. На смену LiveCD/LiveDVD-системам давно пришли так называемые LiveUSBсистемы (ОС на USB-флешке). Создать свой LiveUSB с каким-нибудь одним дистрибутивом сегодня не составляет труда. На помощь придут многочисленные графические утилиты, подчас даже входящие в состав дистрибутива. Но при всей простоте подход недостаточно гибок: если требуется несколько ОС или хочется по-своему разбить накопитель на разделы — придется немного поработать руками и головой. Зато получится многофункциональный, тонко настроенный инструмент. Итак, приступим…

Ингредиенты

Для начала стоит определиться, что же мы все-таки будем водружать. Вариант установки Windows представляется мне не очень удачным, так как функциональность и скорость работы этой ОС в качестве LiveUSB оставляет желать лучшего. К тому же, ее запуск с CD или флешки запрещен по лицензионному соглашению. Если не рассматривать всякие экзотические варианты, типа Minix, то на выбор остается сотня-другая ОС на базе Linux и десяток-другой решений на xBSD. После непродолжительных раздумий я остановил свой выбор на следующих системах:

1. System Rescue CD 1.3.1 Beta4 — пожалуй, самый популярный, функциональный и динамически развивающийся «спасательный» CD на базе Linux.

2. Ubuntu 9.10 i386 Alpha6 LiveCD — думаю, в представлении не нуждается. Пригодится, если захочется поработать в знакомой системе на чужом компе.

3. DrWeb 5.0 LiveCD — переносной антивирус, удобный и достаточно эффективный.

4. FreeBSD 8 RC1 — на случай, если понадобится ее куда-нибудь установить или починить установленную систему.

5. FreeDOS — да-да, старичок еще может пригодиться для запуска, например, mhdd (лучшей, на мой взгляд, программы для низкоуровневой работы с винтами).

В установленном виде весь «зоопарк» будет занимать не более 2,5-3 Гб, поэтому подойдет любая флешка от 4 Гб. Можно взять и большего объема, при этом организовав жирный раздел FAT/NTFS, используемый по прямому назначению — для переноса данных. Но я предпочел выделить под эту задачу отдельную флешку Transcend V85 на 4 Гб.

Все настройки будут производиться на Ubuntu 9.10 amd64 alpha (к моменту публикации статьи уже выйдет релиз), которая живет на ноуте Dell Vostro A860.

Пропорции

Использовать объем флешки можно двумя способами: либо создать 1 раздел, куда поставить все ОС, либо выделить каждой свой раздел. Первый вариант не очень удобен, так как на одном разделе образуется мешанина из файлов разных ОС, что осложняет обновление и вынуждает отслеживать совпадения имен файлов. К тому же, FreeBSD отказывается жить на FATразделе. Лучше поделить флешку на разделы. Я использовал следующее разбиение:

1. FAT32, 400 Мб — на случай необходимости переноса небольшого количества информации. Кстати, мне попадались компьютеры, которые отказывались грузиться с флешки, если на ней не было первого раздела с FAT32. На этом же разделе мы разместим образы загрузочных дискет с FreeDOS.

2. Неформатированный, 1 Гб — раздел для FreeBSD. Если хочется хранить коллекцию портов и/или установить что-нибудь дополнительно, то может понадобиться больше места. FreeBSD может быть установлена только на первичный раздел.

3. EXT4, 2 Гб — раздел для Ubuntu.

4. EXT4, 250 Мб — раздел для SystemRescueCD.

5. EXT3, 100 Мб — раздел для DrWeb LiveCD. Текущая версия не может загружаться с ext4.

Разбивать можно как с помощью fdisk + mkfs, так и с помощью gparted. Это тривиальная операция, поэтому подробно на ней останавливаться не будем. Стоит лишь учесть некоторые нюансы:

• Для удобства можно каждому разделу присвоить соответствующую метку.
• На FAT-раздел рекомендую установить bootфлаг.
• С целью экономии места на ext-файловых системах лучше отключить резервирование блоков (вместо /dev/sdb3 нужно подставить имена нужных разделов):

$ sudo tune2fs -r 0 /dev/sdb3

Пришло время выбрать загрузчик для нашего «зверинца». Вариантов не так много: если держаться мейнстрима, то выбирать надо из Grub, Grub2, Grub4DOS, syslinux.

Syslinux — хороший и распространенный загрузчик (практически все графические утилиты именно его устанавливают на флешку), но он не умеет напрямую грузить FreeBSD. Grub4DOS — тот же Grub, только с некоторыми дополнительными возможностями. Grub2 — реинкарнация Grub первой версии (который теперь получил название Grub Legacy), имеющая все те же возможности плюс много всяких вкусностей (подробнее о Grub2 можно узнать из статьи «На пути к совершенству», опубликованной в z #127). Его-то и будем ставить, благо, в Ubuntu, начиная с версии 9.10, он является загрузчиком по умолчанию.

Команда для установки загрузчика выглядит следующим образом:

$ sudo grub-install --rootdirectory=/media/Ubuntu/ /dev/sdb

где /dev/sdb — устройство, куда установится бутлоадер, а /media/Ubuntu/ — путь, где будет находиться каталог /boot/grub с конфигом и модулями. В каталоге /media/Ubuntu/boot/ grub создадим конфигурационный файл grub.cfg с содержимым:

$ sudo nano /media/Ubuntu/boot/grub/grub.
cfg
set timeout=5
set default=0
menuentry "Reboot" {
reboot
}
menuentry "Halt" {
halt
}

Параметр «set timeout» задает время, по истечении которого при бездействии пользователя будет загружен пункт, заданный параметром «set default». Конструкции menuentry описывают пункты меню (нумерация пунктов начинается с 0).

Первое блюдо

Вариантов установки Ubuntu на флешку несколько:

1. Запустить установку и выбрать в качестве корня раздел на флешке. Все вносимые в систему изменения будут сохраняться, но мы лишимся преимуществ live-системы: возникнут проблемы с загрузкой иксов на компах с разными видеокартами, будут плодиться сетевые устройства в udev и т.д.

2. Просто скопировать на флешку содержимое LiveCD. В этом случае останутся все преимущества LiveCD, но вносимые изменения будут теряться.

3. Скопировать на флешку содержимое LiveCD и создать файл casper-rw, в котором будут сохраняться все изменения. На мой взгляд, наиболее оптимальный вариант.

Копируем на заранее подготовленный раздел содержимое LiveCD, за исключением папок isolinux, pics и файлов wubi.exe и autorun.inf (не забываем скопировать скрытый каталог.disk). Затем создадим на этом разделе файл casper-rw размером 1250 Мб:

$ dd if=/dev/zero of=casper-rw
bs=1M count=1250

и отформатируем его в ext2:

$ mkfs.ext2 -F casper-rw

Теперь в grub.cfg добавим пункты:

$ sudo nano /media/Ubuntu/boot/grub/grub.cfg
menuentry "Ubuntu" {
# В отличие от Grub Legacy, в Grub2
отсчет разделов начинается с 1
set root=(hd0,3)
linux /casper/vmlinuz noprompt
cdrom-detect/try-usb=true persistent file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/
casper/initrd.lz quiet splash
initrd /casper/initrd.lz
}
menuentry "memtest" {
set root=(hd0,3)
linux16 /install/mt86plus
}

Второе блюдо

К сожалению, проект FreeBSD не имеет официального LiveCD (не говоря уже о LiveUSB). А самый известный FreeBSD LiveCD — frenzy — остановил свое развитие на версии 1.1 (основанной на FreeBSD 6). Этот недостаток с лихвой компенсируется гибкостью системы — качеством, свойственным всему Open Source. Уже установленная и настроенная система может быть легко перенесена на флешку. Если под рукой установленной системы нет, то можно установить FreeBSD на флешку с помощью штатного инсталлятора. Правда, sysinstall отказывался видеть мою флешку и упрямо предлагал установиться на винт.

Поэтому пришлось воспользоваться VirtualBox и представить флешку как винт (смотри врезку «Виртуализируемся»). Пожалуй, единственный недостаток такого способа — предпочтительно не создавать слайсы через fdisk из FreeBSD (из-за эмуляции он неправильно определяет геометрию диска). Лучше создать слайс из Ubuntu с помощью mkfs.ufs (из пакета ufsutils):

$ sudo mkfs.ufs /dev/sdb2

Сегодня установить FreeBSD не сложнее, чем Linux, поэтому, ввиду ограничения на объем статьи, не буду подробно останавливаться на процессе установки. Единственный нюанс: не надо устанавливать загрузчик.
После окончания установки нужно в grub.cfg добавить пункт:

$ sudo nano /media/Ubuntu/boot/grub/grub.
cfg
menuentry "FreeBSD"{
set root=(hd0,2,a)
freebsd /boot/loader
}

В уже установленной системе следует провести несколько манипуляций, чтобы минимизировать количество операций записи/чтения на флешке (что несколько продлит ей жизнь). Для начала перенесем /tmp в mfs (файловая система в виртуальной памяти). Для этого в конфиг / etc/rc.conf добавим строчку:

# ee /etc/rc.conf
tmpmfs="YES"

С помощью опции varmfs= «YES» можно также перенести в mfs /var. Но использование mfs для всего /var может вызвать некоторые проблемы, поэтому ее лучше использовать только для /var/ run и /var/log:

# ee /etc/fstab
md /var/run mfs rw,s4M,nosuid,noatime 0 0
md /var/log mfs rw,s16M,nosuid,noatime 0 0

По умолчанию при перезагрузке в /var/log создаются не все файлы (не создается, например, / var/log/wtmp, а он нужен таким системным утилитам, как login, last, who и т.п.) Это поведение можно изменить в файле /etc/newsyslog.conf.

Достаточно к строке с /var/log/wtmp добавить «C»:

# ee /etc/newsyslog.conf
/var/log/wtmp 644 3 *
@01T05 BC

Десерт

Перенесем содержимое DrWeb LiveCD (каталог boot) на соответствующий раздел и пропишем в grub.cfg:

$ sudo nano /media/Ubuntu/boot/grub/grub.
cfg
menuentry «DrWEB» {
set root=(hd0,6)
linux /boot/vmlinuz root=/dev/
ram0 init=/linuxrc init_opts=4
dokeymap looptype=squashfs
loop=/module/white.mo usbroot
initrd=/boot/initrd vga=791
splash=silent,theme:drweb CONSOLE=/
dev/tty1
initrd /boot/initrd
}
menuentry «DrWEB safe» {
set root=(hd0,6)
linux /boot/vmlinuz init_opts=3
root=/dev/ram0 quiet dokeymap
looptype=squashfs loop=/module/
white.mo usbroot slowusb init=/
linuxrc
initrd /boot/initrd
}

С диска System Rescue CD скопируем в соответствующий раздел каталоги isolinux и ntpasswd, а также файлы sysrcd.dat, sysrcd.md5 и version. Добавим в конфиг Grub’а пункты: $ sudo nano /media/Ubuntu/boot/grub/grub.

cfg
menuentry «System Rescue CD» {
set root=(hd0,5)
linux /isolinux/rescuecd
initrd /isolinux/initram.igz
}
# Альтернативное ядро (более старая версия) — на случай, если не загрузится основное menuentry "System Rescue CD altker"
{
set root=(hd0,5)
linux /isolinux/altker32
initrd /isolinux/initram.igz
}

System Rescue CD содержит также 64-битные ядра, но они могут пригодиться лишь в одном случае — при необходимости сделать chroot в 64-битную систему, поэтому нет смысла выносить их в меню загрузчика. Кроме стандартных параметров (типа acpi=off), ядро System Rescue CD может при загрузке принимать различные специфические параметры, самые полезные из которых:

• setkmap=uk — при загрузке не спрашивает раскладку, устанавливает uk.
• docache — загружает всю систему в ОЗУ (потребуется не менее 300 Мб).
• forcevesa — использовать видеодрайвер vesa (полезно при проблемах с видеорежимом).
• dostartx — запускать иксы при загрузке.

В комплекте с System Rescue CD идет также ворох загрузочных дискет: FreeDOS, mhdd, aida (прога для получения информации о железе), gag (загрузчик), ranish (менеджер разделов, аналог fdisk), dban (утилита для уничтожения данных с винтов), memtest. Из всех дискет мне могут пригодиться только FreeDOS и mhdd. Grub2 сможет загрузить эти дискеты при помощи memdisk (из состава пакета syslinux).

Я скопировал файлы freedos.img и mhdd.img, а также файл /usr/lib/syslinux/memdisk в каталог /bootdisk на первом разделе. В grub.cfg добавил:

$ sudo nano /media/Ubuntu/boot/grub/grub.cfg
menuentry «FreeDOS» {
set root=(hd0,1)
linux16 /bootdisk/memdisk
initrd16 /bootdisk/freedos.img
}
menuentry «MHDD» {
set root=(hd0,1)
linux16 /bootdisk/memdisk
initrd16 /bootdisk/mhdd.img
}

Красота спасет мир

Ну вот, все грузится и работает. Но черное меню с белыми буквами — слишком обыденно, хочется добавить красивостей. К сожалению, модуль gfxmenu (grub.gibibit.com) еще не включен в основную ветку Grub2 (из-за недостаточной стабильности), поэтому создать полностью кастомизированное меню не получится. Но кое-что сделать все-таки можно. Grub2 имеет два режима отображения меню: console (по умолчанию) и gfxterm.

Последний позволяет поставить фоновое изображение и использовать произвольный шрифт (при использовании юникодного шрифта пункты меню могут быть на русском), правда, за счет незначительного увеличения времени загрузки. Для включения gfxterm надо в grub.cfg добавить:

$ sudo nano /media/Ubuntu/boot/grub/grub.cfg
# Загружаем модули
insmod gfxterm
insmod vbe
insmod font
insmod png

# Указываем расположение шрифта
loadfont (hd0,3)/boot/unicode.pf2
set gfxmode=640x480

# Переключаем режим отображения в gfxterm
terminal_output gfxterm

# Указываем расположение фонового изображения
background_image (hd0,3)/boot/x.png

Шрифт можно скопировать отсюда /usr/share/grub/unicode.pf2 (или /usr/share/grub/ascii.pf2, если не нужен юникод) или сконвертировать из любого имеющегося в формате bdf (с помощью grub-mkfont). Фоновое изображение можно либо выбрать из пакета grub2-splashimages (будет располагаться в /usr/share/ images/grub), либо сконвертировать самому. Grub2 понимает изображения в форматах png, jpeg и tga (необходимо загрузить соответствующий модуль для каждого формата) и разрешении 640x480. За несколько минут в Gimp’е я набросал простенький splashimage в стиле x.

Цвет надписей и элементов меню задается с помощью команд color_normal и color_highlight в формате foreground/ background. Список доступных цветов можно посмотреть на страничкеwww.gnu.org/software/grub/manual/html_node/color.html.

Reboot

Теперь точно все! Можно перезагружаться и наслаждаться результатами проделанной работы. P.S. Необязательно останавливаться именно на описанных дистрибутивах — по аналогии можно загружать любой линуксовый LiveCD.

Виртуализируемся

В процессе создания мультизагрузочной флешки мне понадобилось много раз тестировать полученный результат. Чтобы не перезагружать ноутбук каждый раз при внесении изменений в конфиг загрузчика, я использовал VirtualBox. Правда, VirtualBox не поддерживает загрузку с USB, и пришлось прибегнуть к маленькому трюку — представлению флешки как образа виртуального жесткого диска.

При установленном VirtualBox (версии не ниже 1.4), чтобы /dev/sdb представить как образ виртуального жесткого диска, надо дать команду:

$ sudo VBoxManage internalcommands createrawvmdk -filename /home/username/flash.vmdk -rawdisk /dev/sdb

Затем в виртуальной машине в качестве жесткого диска указать /home/username/flash. vmdk (при этом у пользователя, от которого запущена виртуальная машина, должны быть права на доступ к /dev/sdb).

Links

• Дополнительная информация по установке Linux на флешку: www.pendrivelinux.com.
• Домашняя страница Grub2: www.gnu.org/software/grub/grub-2.en.html.
• Статья, посвященная MFS: old.softerra.ru/freeos/16111/page1.html.



Источник: http://www.xakep.ru/magazine/xa/131/082/1.asp
Категория: Установка и настройка | Добавил: oleg (01.06.2010)
Просмотров: 1062 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2025