Вернуться   Компьютерный форум > Блоги > Xodok
Оценить эту запись

LiveUSB Ubuntu на мультизагрузочной флешке

Запись от Xodok размещена 27.11.2011 в 15:22
Обновил(-а) Xodok 10.12.2011 в 21:27

В хозяйстве многих пользователей необходимым гаджетом является мультизагрузочная флешка с набором различного
ремонтно-восстановительного софта включая LiveUSB операционные системы.
Особый интерес представляют Linux persistent системы, т.е. с запоминанием настроек. При этом LiveUSB система приобретает качества полноценной установленной системы и, вместе с тем, не перегружает флешку интенсивной перезаписью и не провоцирует быстрый выход флешки из строя.
В небольших системах, таких как Puppy, Knoppix заложен механизм создания файлов запоминания настроек. Для более солидных систем типа Ubuntu и его многочисленных клонов существует много статей по установке не мультизагрузочных, а монопольных систем с запоминанием на флешку. Для мультизагрузочной флешки развертывание дистрибутива из образа ISO в корень флешки не очень желательно, как из-за нагромождения файлов и папок, так и совпадения имен с другими компонентами. Например, папка BOOT присутствует во многих дистрибутивах. Желательным является размещение дистрибутива в отдельную папку с уникальным произвольным именем. Еще более желательным является использование исходного файла образа без его развертывания. По такому способу (загрузка из образа) нашел только одну статью на http://greenflash.su/ для Ubuntu 10.10 с небольшой модификацией исходного образа и без упоминания о возможности сохранения параметров.
Длительное время занимаюсь установкой LiveUSB Ubuntu релизов от 10.04 до 11.10, разных релизов Kubuntu, Lubuntu Xubuntu, Linux Mint, runtu-lite_10.04-201107-i386.iso на мультизагрузочные флешки с загрузчиком Grub4Dos с запоминанием настроек и размещением дистрибутивов в виде файла образа ISO либо с извлечением в отдельную папку. Надеюсь, что некоторым пользователям эта информация будет полезна.
Для начала рассмотрим запуск системы из образа ISO на примере ubuntu-11.10-desktop-i386.iso. Файл образа записывается на флешку в корень или в любую папку. Крайне желательно чтобы файл не имел фрагментов. Запустить можно и фрагментированный файл, но для этого его нужно полностью скопировать в оперативную память, а это копирование увеличивает время загрузки системы и повышает требования к размеру оперативной памяти.
Запись в menu.lst для дефрагментированного файла при использовании загрузчика Grub4Dos выглядит следующим образом:

title Загрузка LiveUSB Ubuntu 11.10
find --set-root /ubuntu-11.10-desktop-i386.iso
map /ubuntu-11.10-desktop-i386.iso (0xff)
map --hook
root (0xff)
kernel /casper/vmlinuz file=cdrom/preseed/ubuntu.seed noprompt boot=casper persistent floppy.allowed_drive_mask=0 ignore_uuid iso-scan/filename=/ubuntu-11.10-desktop-i386.iso splash -- locale=ru_RU.UTF-8
initrd /casper/initrd.lz


Строка kernel ... должна быть единой без перевода строки. В этой строке слово persistent указывает системе на поиск файла запоминания настроек. Имя файла образа можно изменять, но оно не должно содержать пробелов и обязательно иметь расширение iso.
Приведенная запись универсальна для всех перечисленных выше дистрибутивов с небольшими изменениями. Например для Linux Mint вместо ubuntu.seed нужно записать mint.seed. Вообще для любого дистрибутива кроме исходных Ubuntu нужно в образе проверить имена файлов /casper/vmlinuz, /preseed/ubuntu.seed, /casper/initrd.lz Далеко не все самопальные сборки запускаются таким
образом. Признаками сборки может быть,к примеру, наличие имени файла custom.seed вместо ubuntu.seed или initrd.gz вместо initrd.lz.
Если файл положен в какую-нибудь папку, например ISO, следует подкорректировать пути в записи во всех строках типа
find --set-root /iso/ubuntu-11.10-desktop-i386.iso
При добавлении дистрибутива на рабочую мультизагрузочную флешку, которую уже неоднократно редактировали, положить файл образа без фрагментации весьма проблематично. В этом случае плохо помогают и специальные дефрагментаторы, способные работать с
выделенными файлами. Выходом из этого положения может быть распаковка дистрибутива в выделенную папку с произвольным именем.
Основные требования к имени : использование латиницы,цифр, допустимых символов, отсутствие пробелов.
К примеру, создаем папку ubuntu-11-10 и разворачиваем в нее соответствующий образ. Делаем запись в menu.lst

title Загузка LiveUSB Ubuntu 11.10 v2
kernel /ubuntu-11-10/casper/vmlinuz cdrom-detect/try-usb=true noprompt boot=casper persistent floppy.allowed_drive_mask=0
ignore_uuid live-media-path=/ubuntu-11-10/casper/ splash -- locale=ru_RU.UTF-8
initrd /ubuntu-11-10/casper/initrd.lz

Эта запись, как и предыдущая универсальная для разных дистрибутивов с теми же примечаниями.

Рассмотрим как собственно сохраняются данные. Хранение данных производится в файле с зарезервированным именем casper-rw.

Размер этого файла может быть до 4ГБ.
Предупреждение 1. Система видит файл только на ФС типа FAT (16/32).
Предупреждение 2. Файл должен располагаться в корне одного из дисков. С запоминанием может работать только одна из упомянутых систем. Остальные можно запускать без запоминания, т.е. убрать слово persistent в записи.
По сути это виртуальный диск с ФС Ext2. Сформировать такой файл можно и непосредственно из LiveUSB системы, но это оставим для линуксоидов. Под windows можно использовать утилиту PDL-Casper-RW-Creator.exe. Другая утилита toporesize-0.7.1 имеет дополнительные возможности, такие как форматирование файла, изменение его размера. Папка второй утилиты должна размещаться на диске С:. Обе утилиты не требуют установки.
Еще одним способом запоминания параметров является создание раздела с ФС Ext2 и именем casper-rw. В отличие от
одноименного файла раздел не ограничен размером 4ГБ.
Никаких ухищрений по монтированию файла casper-rw или раздела при запуске системы не требуется. Монтируются автоматически.

Дополнение 1.
Загрузка из фрагментированного ISO возможна следующим образом. Из ISO копируем 2 файла в папку на флешке, например, назовем ее Linux. Файлы vmlinuz и initrd.lz.
title LiveUSB Ubuntu
kernel /Linux/vmlinuz iso-scan/filename=/ubuntu-11.10-desktop-i386.iso boot=casper persistent locale=ru_RU splash --
initrd /Linux/initrd.lz


Дополнение 2.
Для запуска дистрибутива в режиме инсталляции следует заменить в записи опцию persistent на only-ubiquity quiet.
Размещено в Без категории
Просмотров 7751 Комментарии 0 Отправить другу ссылку на эту запись
Всего комментариев 0

Комментарии

 

Текущее время: 04:44. Часовой пояс GMT +4. Powered by vBulletin® Version 5.8.9
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.