Windows на флешке как самостоятельный диск

Ubuntu на USB-накопителе

С появлением USB-накопителей большей емкости и поддержкой загрузки компьютера через USB меня заинтересовали живые дистрибутивы непосредственно на USB (Live USB) вместо классического компакт-диска. Поводом для отдельной статьи является тот факт, что различные автоматизированные средства не позволили мне добиться желаемых свойств. Отдельные шаги прокомментированы, чтобы более опытный пользователь мог настроить их под свои нужды.

  • функциональная загрузка Ubuntu Linux с USB-накопителя;
  • сохранение изменений между отдельными запусками;
  • возможность использования флешки и как обычного диска для записи/чтения данных — даже из работающей Ubuntu;
  • и все это только на одном разделе типа FAT — т.е. без разбиения.

Основной целью является не создание установочного носителя.

P примечание: сообщения под статьей относятся ко всем видам программного обеспечения, но оно не может гарантировать возможность записи в раздел FAT32, из которого работает Ubuntu. в то же время. Это можно решить, создав два раздела: первый для обычного использования, второй для «Live Ubuntu», включая файл для сохранения изменений.

Для справки, загрузка ОС с USB-накопителя включает в себя:

  • Указание BIOS для загрузки загрузчика ОС с USB-HDD;
  • Запустите загрузчик с MBR (основной загрузочной записи) USB-накопителя;
  • Загружая ядро, ядро ​​затем загружает файлы initramfs (initrd.img), содержащие автоопределение оборудования и загрузку модулей;
  • Загрузить образ файловой системы только для чтения (squashfs);
  • Сохранение изменений файловой системы в отдельный файл casper-rw или home-rw (используя unionfs).

Описанный выше процесс в основном аналогичен загрузке операционной системы с жесткого диска, отличаются только два последних пункта. Скрипты проекта позаботятся об этом.Каспер.

Casper достаточно гибок, что позволяет размещать и squashfs, и casper-rw по-разному: либо в виде файлов на обычном разделе FAT16/32, либо в отдельном разделе Linux, либо даже напрямую как блочное устройство (т.е. вместо файла casper-rw будет использоваться раздел с именем casper-rw). Более того, все это работает автоматически.

Обратите внимание на разделение файловой системы на раздел, доступный только для чтения, и сохранение всех изменений этого образа в отдельный файл. Благодаря unionfs, с точки зрения пользователя, система ведет себя как единая файловая система с возможностью записи.

ВНИМАНИЕ: casper-rw и иногда filesystem.squashfs часто повреждаются во время тестирования. Я еще не выяснил, является ли это неисправной флешкой (я так не думаю) или тем фактом, что файловая система (FAT32), содержащая оба файла, доступна для записи одновременно. Итак: ИСПОЛЬЗУЙТЕ НА СВОЙ РИСК.

Создание работающей установки Ubuntu

Опять же, существуют разные методы, другие источники обычно рекомендуют использовать существующую файловую систему на Live CD и chroot для этой системы в соответствии с вашими потребностями. Недостаток Chroot заключается в текстовой консоли, это тоже можно решить (см. комментарии в разделе Настройка Ubuntu Live CD), однако лично я предпочитаю обычную установку Ubuntu в виртуализированной среде (VirtualBox не-OSE).

Читайте также:  Как подключить колонки к компьютеру через блютуз на windows 10 компьютер

Установите на виртуальную машину как минимум следующие пакеты:

Первый — это набор скриптов, расширяющих свойства initramfs (для поиска образов файловой системы squashfs и casper-rw), следующие — утилиты для автоопределения оборудования, инструменты для создания образа файловой системы, и последний — установщик с флешки (т.е. создание обычной установки на компьютере).

Необходимо устанавливать «Гостевые дополнения» — хотя они и сделали бы использование виртуальной машины более приятным, но на LiveUSB бесполезны.

Далее установите программы по вашему выбору, единственным ограничением является установка бинарных драйверов nvidia и fglx — casper всегда создает новый /etc/X11/xorg.conf при запуске и (намеренно) не обнаруживает бинарный файл водители. Это намерение, видимо, связано с GPL — распространение этих бинарных драйверов, по некоторым мнениям, противоречит этой лицензии. Мне еще предстоит узнать, успешно ли кто-нибудь модифицировал эти сценарии.

Следующий шаг — отредактировать скрипт /usr/share/initramfs-tools/scripts/casper так, чтобы флешка монтировалась с правами записи для всех пользователей (по умолчанию предполагается, что образ читаемой только файловая система /media/ubuntu/casper/filesystem.squashfs хранится на недоступном для записи диске (CD-ROM, отдельный раздел диска).Выделенная часть указывает на изменения:

Кроме того, целесообразно добавить e2fsck в initramfs и изменить скрипт casper для проверки постоянного раздела диска casper-rw. Первая часть оформляется добавлением скрипта /usr/share/initramfs-tools/hooks/casper (добавьте выделенную часть):

И вторую часть, отредактировав скрипт /usr/share/initramfs-tools/scripts/casper (заполните выделенную часть):

После того, как все системные модификации будут выполнены на виртуальной машине, вам необходимо обновить зависимости модуля и создать новый файл initramfs:

Команда update-initramfs автоматически включит сценарии casper в /boot/initrd-xxx.img, что является ключевой частью всего процесса.

Подготовка USB-накопителя

Файлы VDI, созданные VirtualBox, нельзя просто смонтировать как логический раздел, поэтому я создаю образ диска из работающей системы в VirtualBox напрямую на внешнюю флешку.

Сначала подключите флешку к виртуальной машине (VirtualBox меню Devices/USB device… Предупреждение: это может сделать только неоперационная версия VirtualBox от SUN.)

Отформатируйте USBфлешка так, чтобы на ней был только один раздел в формате FAT (если размер больше 4 ГБ, выбирайте FAT32(LBA), в противном случае достаточно FAT16). Узнать метку диска можно командой:

Из вывода попробуйте прочитать, какое устройство ядро ​​назначило флешке — в моем случае /dev/sdb. Если вы допустили ошибку, вы можете использовать следующие команды для удаления всех данных на жестком диске виртуальной машины!

Если на USB-накопителе уже были какие-то разделы, и они были смонтированы автоматически, сначала «размонтируйте» их, щелкнув правой кнопкой мыши значок диска на рабочем столе.

Первая команда стирает начало диска в целях безопасности (т.е. сбрасывает MBR и существующий раздел), вторая запускает fdisk.

  • сначала создайте новый основной раздел (последовательность клавиш «n»+»p»+»1″+»enter»+»enter»+»enter»),
  • установите тип FAT32 («t»+»c»),
  • установить флаг загрузки («a»+»1″+»enter»)
  • и записать изменения («w») при выходе.

В качестве альтернативы вы можете использовать cfdisk или gParted (с графическим интерфейсом).

Чтобы проверить, просмотрите раздел:

Отформатируйте созданный раздел в FAT (нет необходимости выбирать FAT 16 или 32, команда определит его автоматически в зависимости от размера диска) и назовите его «ubuntu», затем проверьте флешку (из-за плохие блоки):

Читайте также:  Как правильно активировать офис 2019 на windows 10

Время от времени проверяйте флешку, даже при использовании Live USB, будь то из MS Windows или Linux.

Создание образа диска

Затем подключите флэш-накопитель USB (т. е. отключите его от виртуальной машины и снова подключите, накопитель должен быть автоматически обнаружен и смонтирован в каталоге /media/ubuntu) и создайте каталог для образа файловой системы:

Каталог должен называться casper, потому что его ожидают сценарии casper. Чтобы использовать другое место, вам нужно отредактировать /usr/share/initramfs-tools/scripts/casper ивоссоздать initrd.img.

В гостевой системе закройте все запущенные приложения, переключитесь в однопользовательский режим (без поддержки сети), измените корневое монтирование на доступ только для чтения (чтобы исключить изменения в файловой системе), создайте образ файловой системы непосредственно на USB-накопитель и, наконец, снова смонтируйте корень с включенной записью изменений:

Команда mksquasfh сжимает полную структуру каталогов гостевой системы (за исключением каталогов или файлов после параметра -e) и сохраняет ее в файл /media/ubuntu/casper/filesystem.squashfs. Имя файла изображения может быть любым, кроме расширения «squashfs».

Каталоги /proc , /sys и /tmp намеренно опущены — первые две содержат виртуальные системные данные, а не реальные файлы, последняя директория содержит только временные файлы.

Теперь вернитесь в графическую среду (просто нажмите CTRL+D или напишите команду выхода и выберите «возобновить загрузку» в следующем меню).

В образ файловой системы по-прежнему необходимо добавить пустые каталоги, которые мы изначально не включили (у каталога tmp есть специальные права доступа):

Далее установите grub — загрузчик ядра:

Команда автоматически записывает grub на MBR-диск /dev/sdb , создает каталог boot/grub на том же диске и копирует файлы, необходимые для работы загрузчика.

(В качестве альтернативы вы можете использовать syslinux, который занимает меньше памяти и его проще настроить, но в моем случае grub оказался более надежным.)

Далее скопируйте ядро, initramfs и memtest с виртуальной машины на флешку:

Memtest не является обязательным, он используется для проверки оперативной памяти компьютера.

Теперь вам нужно создать /media/ubuntu/boot/grub/menu.lst, чтобы он содержал (конечно, вы можете изменить содержимое, см. ручные скрипты grub и casper):

Преимущество Grub в том, чтопри запуске компьютера можно отредактировать вышеперечисленное (клавишей «e») и после редактирования параметров продолжить запуск операционной системы (клавишей «b»).

И последний шаг — создать образ файловой системы для хранения изменений в образе filesystem.squashfs (который доступен только для чтения).

Первая команда создает пустой файл casper-rw размером 1 ГиБ (bs — размер блока, count — количество повторений блока). Затем вторая команда создает файловую систему ext2 внутри этого файла и называет ее casper-rw (это необязательно).

Имя файла casper-rw важно, потому что оно ожидается сценариями casper. Файл также должен находиться в основном (корневом) каталоге USB-накопителя.

В качестве альтернативы можно использовать имя файла /media/ubuntu/home-rw — тогда будут сохранены только изменения в домашних каталогах, а все остальное (т.е. новые установленные программы, модификации скриптов /etc и т. д.) теряется при выключении компьютера).

Исключительно для информации можно добавить список установленных пакетов:

Другие примечания

Проприетарные драйверы видеокарты

Если вы настаиваете на бинарных драйверах видеокарты, то не проблема установить их после запуска ОС с флешки — через меню Система/Администрирование/Драйверы оборудования. После установки вам не нужно перезагружать систему, просто выйдите из Gnome и войдите снова (тем временем X.org перезапустится и загрузит новый драйвер).
После следующей перезагрузки файл /etc/X11/xorg.conf будет перезаписан (за это отвечают касперовские скрипты) и бинарные драйвера не будут установлены. Это можно решить, либо изменив скрипты каспера, либо добавив свой собственный xorg.conf, используя /etc/rc.local. Тогда, конечно, вы потеряете универсальность такой установки — драйвера nVidia будут бесполезны на компьютере с видеокартой Intel. Я протестировал одновременную установку двоичных файлов драйверов.nvidia и fglrx, но тогда Xka вообще не запускалась…

Читайте также:  Как раздать папку по локальной сети windows 10

Список изменений стандартной установки Ubuntu

Перед созданием образа я

  • отключил сервисы cron, anacron, cups, saned (изменив права: sudo chmod -x /etc/init.d/_relevant_service);
  • удален apport, python-apport Thunderbird, Pidgin*, Bogofilter*, Myspell*, Popular-contest, scim*, wamerican, wbritish, evolution*;
  • установлены mc, bluez-compat, mtools, testdisk, wipe, partimage, xfsprogs, medibuntu (mplayer, skype, alsa-firmware, w32codecs, googleearth, libdvdcss2), digikam, mapivi, ufraw, различные программы обнаружения (kismet, aircrack -ng, wireshark, nmapsi4), cryptkeeper, KeepassX, клиент Citrix ICA (подключаемый модуль XenApp + сертификаты), NoMachine NXclient (+ ключ), ntlmaps;
  • внесены различные модификации: X (уменьшить разрешение экрана до 90 dpi), mc (внутренний редактор), gedit (не сохранять резервную копию файла), gnome-terminal (удалить сочетания клавиш), gnome-panel (добавить: иконки Firefox, терминал, gedit, системный монитор, настройки/отображение; удалить переключатель пользователя), тема мифбунту (gtk2-engines-mythbuntu, мифтв-тема-мифбунту).

Изменить размер casper-rw

Сначала создайте пустой файл /tmp/tempfile нужного вам размера (здесь к существующему casper-rw будут добавлены дополнительные 256 МБ):

Теперь добавьте этот пустой файл в конец существующего файла casper-rw на флешке, проверьте существующую файловую систему и разверните ее:

Прямая установка на флешку

Ubuntu можно установить на флешку прямо с Live CD, как и на любой другой жесткий диск, но у этого есть несколько недостатков:

  • Чтение и запись небольших файлов: флэш-накопители являются самыми медленными, особенно для небольших файлов (запись блоков размером 4 КБ может иметь «скорость» около 300 КБ/с, а блоков 1 МБ — до 20 МБ/с).Поэтому на практике Live USB работает быстрее.
  • Частая запись небольших событий (временные файлы браузера, журналы) изнашивает флэш-накопитель, что может привести к его повреждению (ошибки ввода-вывода в системном журнале). Впрочем, сегодня это не так критично из-за роста качества NAND-памяти и снижения цены на флешки.

С другой стороны, можно использовать «логированные» файловые системы, которые частично решают обе проблемы (см. статью на сайте IBM).

Резервное копирование текущего состояния файловой системы

Файл с образом файловой системы casper/filesystem.squashfs естественно всегда один и тот же, все изменения сохраняются в образ в файле casper-rw. Со временем этот файл может стать довольно большим, особенно во время обновления системы.

К счастью, оба образа можно объединить и подключить к обычной системе Linux. Сначала смонтируйте обе файловые системы в отдельные папки, затем используйте UnionFS, чтобы объединить их в отдельную точку монтирования /tmp/3:

Впоследствии можно создать резервную копию папки /tmp/3 или перезаписать ее содержимое диском, используемым в виртуальной машине.

Поделиться с друзьями
ОС советы