Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Загрузочная флешка Ubuntu 16.04 - неочевидные нюансы  (Прочитано 48433 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
progroz, то что вы предлагаете конечно интересно и здорово, но это некий "кухонный-комбайн", когда в принципе в 99% случаев достаточно "ложки с тарелкой".

Большинству пользователей не нужна загрузка с кучи близко лежащих ISO образов. Нужно просто один раз, в несколько лет, сделать загрузочную флешку и с нее установить/обновить переустановкой/починить себе систему.

Я уже не отношусь к флешкам как месту хранения чего-то полезного/уникального (слишком много уже прошло через мои руки флешек ... и большинство из них умерли у меня на руках :'(). Если на флешке что-то записано то оно - копия файла лежащего где-то на жестком диске (а возможно еще и синхронизированного в облако или забекапленного). Причем я к такому подходу всех своих домашних приучил включая детей. Собственно у меня флешки уже почти вышли из обращения (только дети иногда в школу рефераты/доклады таскают). Поэтому когда мне нужна Live-usb я нахожу первую попавшуюся, и пишу туда образ.

Для меня даже "колхоз" с созданием доп раздела за ISO образом, скопированным на флешку - это не нужная вещь: нужна Live-USB - я пишу на флешку образ, нужно какие-то файлы туда записать - я создаю там ФС и пишу туда файлы.
___

Про винду писать на UBUNTU ресурсе - не совсем уместно - по тому как создавать виндовые LiveUSB - все гуглится легко. Собственно про создание LiveUSB c Linux - еще больше инфы в поисковиках.
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн www777

  • Автор темы
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 2777
    • Просмотр профиля
Master_Sergius, При необходимости, я пользуюсь вот такой инструкцией для создания флешки с Windows 7,
(Нажмите, чтобы показать/скрыть)
с Windows XP работать не будет, во всяком случае у меня не вышло. Другие версии ОС Windows, не тестировал.


Пользователь добавил сообщение 09 Июня 2016, 13:49:19:
Цитировать
Вот эксперимент (делаю 2Gb образ, монитирую его как loop устройство, заливаю туда образ и создаю доп раздел):
Как то не очень очевидно. Что значит делаю 2GB образ, ты создаёшь свой iso, туда копируешь содержимое оригинального iso от ubuntu, а остаточное место используешь для сохранения состояния? То есть цель была создать образ для флешки максимальный объём которой 2Gb?
Было бы лучше если бы комментарии, что и как были между командами.
« Последнее редактирование: 09 Июня 2016, 13:49:19 от www777 »

Оффлайн progroz

  • Активист
  • *
  • Сообщений: 291
    • Просмотр профиля
Master_Sergius,
Прочти ещё раз предыдущее сообщение, флешка с помощью grub4dos автоматически ищет и запускает практически любое ISO,что тут не ясно, причем тут Windows ?
ubuntu-alternate1204, ubuntu-server 1404,  - загружается запускаются все видят cd-rom, suse13.2 kde gnome проблем нет.
 Конфиг. файлы grub4dos сделаны на основе 2k10(гугль в помощь),что делает 2k10, то и эта сделает(при наличии соотв. файлов), ну а в паре с super grub2 disk и тем из Grub2Win это ...
прочти Установка  Syslinux и Grub2 на флешку.odt - 2.4 мб https://yadi.sk/i/5ytEN6DtsMUNJ
 посмотри Конфигурационные файлы - 94 мб https://yadi.sk/d/9niD5fcYsMNMe

Sly_tom_cat
Карман Zalman ZM-VE300 стал не по карману ,слепил софтовый аналог для диска 250gb.
« Последнее редактирование: 09 Июня 2016, 18:11:25 от progroz »

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
www777, делаю образ 2GB - это просто 2GB файл, который я потом делаю loop устройством (это типа вместо флешки 2GB, которой нет под рукой).

Туда копируется образ Ubuntu, который чуть больше 1GB и в остатке создаю пустой раздел - сделать там любую ФС и пиши туда что хочешь.

Но сохранение состояния - это из другой оперы.


Расскажу как делается сохранение состояния в Live системе (ибо разбирал этот вопрос довольно глубоко)

Когда Live система загружена - ей нужно иметь для работы корневую FS с возможностью в нее записывать.

Делается это за счет хитрой файловой системы aufs (она встроена в ядро Linux) - она позволяет собрать две ФС в одну: одна ФС работает в режиме только чтения (RO), а вторая в режиме чтения и записи(RW). При этом на такой ФС есть все, что есть в файловой системе RO и в ФС RW, но если на обоих ФС есть файл с одинаковым путем/названием, то этот файл берется с RW. Все новые и измененные файлы записываются в RW (copy on write).

RO ФС корня загруженной Live системы - это образ squashfs (это сжатая RO файловая система), который лежит в файле casper/filesystem.squashfs инсталяционнаого образа.

RW часть формируется по разному в зависимости от того есть ли файл для сохранения состояния или нет.

Для сохранения состояния используется файл casper.rw. Внутри этого файла создана файловая система, обычно - EXT2. Лежать он должен в корне той файловой системы, с которой загружается Live система. Само собой в этот файл должна быть возможность записать.

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

Утилиты, на сомом деле, создают или требуют на флешке FAT, ставят свой загрузчик (Syslinux) и всю файловую систему с образа переносят в ФС флешки.
.... И вот тут возникают самые первые косяки. Дело в том, что на FAT длинна пути + имя файла может быть не более 255 байт, и все что больше начинает резаться. Режется имя файла или файл просто не записывается. Кроме того, по непонятным причинам эта ФС вообще может смонтироваться криво и выдавать искусственно урезанные имена файлов в формате 8.3. (пару раз ловил этот глюк и так не понял как это возникает/лечится).
Такие окривевшие/отсутствующие файлы потом не находит загрузчик Live системы или инсталятор и с такой флешки либо не загрузиться, либо не установить систему.
Такой баг был в образах нескольких версий Ubuntu.

Когда же мы на флешку копируем образ - то мы копируем cd/dvd образ с iso9660 файловой системой (которая по определению RO, но зато в ней нет проблемы с длинной путей) и в этом случае RW корня обеспечивается через RAM диск. casper.rw в этом случае Live системе не подсунуть (она же не на FAT, а на iso9660 - RO-файловой системе).

_________

А закончу я это повествование тем, что создавать LiveUSB утилитами с файлом сохранения состояния и пользоваться такой утилитой как переносной системой - я не советую.

Во-первых обращение к файлу в casper.rw - довольно медленное по той причине что файл этот лежит в ext2, которая лежит в файле, который лежи на FAT. И хотя обе этих системы достаточно быстрые, но еще с учетом того, что они работают каскадно одна над другой, да еще и на довольно медленном носителе, то получаем довольно трмозное решение (напомню это касается записи и чтения обновленных/новых файлов).

Во-вторых, при обновлении системы все обновленный файлы пишутся в casper.rw, а их оригинальные версии сохраняются в squashfs образе. Т.е. имеем неиспользуемую избыточность.

Ну и наконец самое печальное - casper.rw обновляется практически ежесекундно во время работы Live системы, чем активно выедает ресурс флешки по записи. Происходит это из-за того что корень монтируется в режиме realtime и любое чтнеи (даже списка файлов из каталога) обновляет время последнего доступа в дескрипторах файлов и каталогов (i-node). Лечится такое монтирование с опцией noatime, однако корень загруженной Live системы монтируется не через /etc/fstab, а скриптами образа начальной инициализации системы (initramfs), и нужно сильно постараться, что бы туда подсунуть эту опцию монтирования (нужно кастомизировать файлы образа).

Поэтому для использования флешки как переносной системы я советую просто поставить систему на флешку и настроить ее как следуют (тот же noatime и монитровать /tmp и /var в tmpfs - т.е. в рамдиск).
« Последнее редактирование: 09 Июня 2016, 21:26:20 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Sly_tom_cat, Здорово всё описали, спасибо!
Ещё насколько я помню,существовала возможность создания отдельного раздела с меткой casper-rw вместо файла
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Azure, я в скрипты initrd Live образа давно уже лазил - деталей не помню кроме как про файл в корне LiveUSB. Да и дано это было - возможно поменялось и в новых можно еще раздел можно подцепить. Это надо либо пробовать, либо опять в скрипты initrd залезать.
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн progroz

  • Активист
  • *
  • Сообщений: 291
    • Просмотр профиля
"Откопал" старую флешку с Ubuntu 11.04
Сравниваем конфиги syslinux-ов находим разницу и научным тыком вставляем в конфиги загрузчиков своей флешки
txt.cfg   ubuntu 1604 iso  нет persistent mode
(Нажмите, чтобы показать/скрыть)
txt.cfg ubuntu1104 есть persistent mode c home-rw   casper-rw
(Нажмите, чтобы показать/скрыть)
noprompt cdrom-detect/try-usb=true persistent
Подозрительная разница при помощи которой в home-rw сохраняются данные  в домашней директории live флешки(необходимо загрузится, чтобы home-rw "подхватилась" можно сохранить чего нибудь в домашней директории), копируем  casper-rw - здесь будут хранится установленные программы.
Если изначально первым поставить casper-rw то здесь будут хранится данные   домашней директории  и установленные программы.

В Ubuntu 16.04 фокус с home-rw не получился, по-гуглил, нашел решение http://www.gtkdb.de/index_7_2778.html, пришлось использовать один casper-rw
Оказалось параметру persistent надо ещё и путь указать persistent-path=/boot-isos/persistent/ubuntu-16.04-i386/ ,с другой стороны это неплохо, можно держать несколько casper-rw в разных папках, с различным наполнением.

Ещё при распаковке ISO ubuntu-16.04-i386 и записи файлов на флешку Менеджер архивов ругнулся и не скопировал несколько ссылок - есть вероятность возникновения сбоев  у различных программ по изготовлении загруз. флешек.

конфиги 99.99% рабочие
grub4dos
(Нажмите, чтобы показать/скрыть)
grub2
(Нажмите, чтобы показать/скрыть)
syslinux
(Нажмите, чтобы показать/скрыть)
Тут готовые casper-rw, инструкции.

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Вот заглянул в скрипты initrd Live образа Xubuntu 15.10.

Оказывается noatime в опции монтирования RW (COW) части корня уже добавили!!
И да - если есть раздел с меткой casper-rw - его и будут монтировать как cow/rw часть корня.

Ну это на сколько я смог разобраться в скриптах (я баш не очень хорошо знаю).

Т.е. рецепт создания LiveUSB с сохранением состояния можно предложить такой:
Копируем на флешук образ, fdisk-ом создаем доп раздел (тут нужно внимательно выбрать смещение), делаем на нем ext2 и даем ему метку casper-rw.
После этого флешка будет с сохранением (должна быть) - дома попробую (на работе флешки нет под рукой).

В принципе это все можно оформить коротким скриптом. Если пройдет этот вариант - то напишу его - по мне так проще три команды скопипастить и выполнить чем утилиту ставить, которая по сути эти три команды и сделает.

Там еще какая-то работа со снепшотами появилась - пока не понял как там и что, но похоже в качестве перситенса можно подсунуть btrfs с парой подтомов (один для COW корня, второй для /home). Надо будет попробовать... btrfs то для флешки получше будет чем ext2....
« Последнее редактирование: 10 Июня 2016, 17:01:45 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн progroz

  • Активист
  • *
  • Сообщений: 291
    • Просмотр профиля
Сделал  4й раздел,метка casper-rw, форматировал и ext3 и btrfs, этот раздел подхватил Grub2 с помощью  sgd2, его скриптов автозагрузки ISO:


Поехали
(Нажмите, чтобы показать/скрыть)

В 4м разделе,метка casper-rw, появились папки... уменьшил размер боковой панели, перегрузился, изменения сохранились.
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 11 Июня 2016, 22:42:22 от progroz »

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6890
    • Просмотр профиля
На самом деле, чтобы сделать флешку загрузочной, достаточно установить на нее загрузчик.
Мой выбор: Grub2. Файловая система на флешке - fat32.
 Достоинства.
При использовании как обычная флешка доступна из Windows и Линух, все свойства обычной флешки.
При использовании как загрузочного устройства, загружается все, что может загрузить Grub2.
 Недостатки - пока не обнаружил.
Часто читаю такие вопросы: сделал флешку с помощью одной программы - не работает, другой-третьей - не работает.
Возможно причина одна и решается так, как опишу ниже. Возможно часть неудач с установкой системы не винчестер, когда система установилась но не загружается, можно решить таким-же способом.
Командой dd записываем на флешку iso-образ. Удаляем все разделы с флешки: создаем новую таблицу разделов, новый раздел, форматируем.
Устанавливаем Grub и получаем ошибку, загрузчик жалуется на "неправильные, по его представлению разделы" и не устанавливается.
Для решения этой проблемы нужно обнулить несколько мегабайт от начала устройства,
после этого уже создвавать таблицу разделов, разделы, форматировать, устанавливать загрузчик.
Часто невозможность загрузиться с флешки связана не с тем, что она неправильно создана, а с особенностями конкретного БИОСа.
Имею две загрузочные флешки (2Gb 16Gb), сделаные одинаково. Довольно часто сталкиваюсь с ситуацией, что десктоп загружается только с 2Гб флешки, с 16Гб грузится отказывается.

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Ну способов то много разных.
Но как по мне - образ на флешку cp/dd залили - и это уже все что нужно для переустановки/восстановления системы.

casper-rw всякие или доп разделы на собственные нужды - это уже бантики.
« Последнее редактирование: 12 Июня 2016, 12:13:35 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн www777

  • Автор темы
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 2777
    • Просмотр профиля
У меня есть одна флешка, самая новая из всех что я покупал. Покупал, что бы можно было использовать как загрузочную. Но ни разу не смог ничего с неё загрузить ни на одном ПК. Было перепробовано, разное железо, он древних PC ещё способных загружаться с USB, до современных ноутбуков. В большинстве случаев компьютеры не могут вообще ни с чего загрузится, и даже в биос зайти, если эта флешка в USB порту, даже если на ней нет флага загрузочной.
Ни один биос не определил эту флешку. Но при этом флешка нормально используется для переноса пользовательских файлов/папок. Различные ОС её видят. Имя этой флешки Silicon Power Touch 830 16Gb
Магазин не признал брак, писал письмо в российское представительство SP, мне не ответили. Потом стал читать отзывы к другим USB флешкам, и время от времени встречал отзывы, где есть жалобы на невозможность использовать как загрузочную.

А вот ещё любопытное, использовать usb-creator-gtk в Ubuntu 14.04. То я не всегда могу создавать пространство для сохранения параметров работы Live. Если вставляю флешки определенной модели (можно сказать noname) обьёмом 2 гб, то моя флешка не сможет сохранять состояние Live, (данный пункт настроек будет неактивным) хотя место есть, и в ранних дистрибутивах Ubuntu, эта фича на этих флешках работала. Если я использую другую флешку Kingston на 4 гб, то проблем нет, всё работает.
« Последнее редактирование: 12 Июня 2016, 13:34:05 от www777 »

Оффлайн maks05

  • Старожил
  • *
  • Сообщений: 6786
    • Просмотр профиля
www777, ну известно же, что все фломастеры на вкус разные. И рисуют соответственно. В том смысле, что с изветными производителями, такими как Kingston и Transcend, проблем почти ни когда не бывает. При условии, конечно,использования "простых" моделей, без дополнительный секретных контейнеров, сканеров отпечатков пальцев и т.п. По остальным флэшкам больше вопросов, чем ответов.

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6890
    • Просмотр профиля
 Устройство, которое будем делать загрузочным: для краткости пишу "флешка", хотя на ее месте может быть harddisk, внутренний или внешний.
Имя устройства, названия каталогов-файлов - пишу какие получились у меня, вам нужно изменить на свои.
Все команды выполнять от суперпользователя.

 Внимание! Первая-же команда удалит всю информацию с флешки, если есть что-то нужное - сохраните.

    Создание мультизагрузочной флешки.
1. Запускаем Ubuntu для установки grub i386-pc.

2. Смотрим какое имя дала система нашему устройству
fdisk -l
Disk /dev/sdb: 15 GiB, 16064184320 bytes, 31375360 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000b2a3a

Device     Boot Start      End  Sectors Size Id Type
/dev/sdb1  *     2048 31375359 31373312  15G  b W95 FAT32

3. Обнуляем первые два мегабайта на устройстве.
dd if=/dev/zero of=/dev/sdb bs=1M count=2
4. Запускаем Gparted. Выбираем флешку, создаем таблицу разделов "msdos". Создаем один первичный раздел, форматируем в FAT32. Закрываем Gparted.

5. Монтируем флешку и устанавливаем Grub2.
mount /dev/sdb1 /mnt/sdb1
grub-install --root-directory=/mnt/sdb1 /dev/sdb
   Создаем или копируем файл /mnt/sdb1/boot/grub/grub.cfg
(Нажмите, чтобы показать/скрыть)
  Флешка для загрузки в режиме BIOS готова.

6. Копируем iso-образ в /mnt/sdb1/opt/ubuntu-16.04-desktop-i386.iso
   С этого момента мы можем загружать Ubuntu из образа.

7. Монтируем iso-образ и копируем из него на флешку файлы, необходимые для загрузки из filesystem.squashfs
mount -o loop /mnt/sdb1/opt/ubuntu-16.04-desktop-i386.iso /mnt/buntu
cp /mnt/buntu/casper/vmlinuz /mnt/sdb1/opt/ub1604/casper
cp /mnt/buntu/casper/initrd.lz /mnt/sdb1/opt/ub1604/casper
cp /mnt/buntu/casper/filesystem.squashfs /mnt/sdb1/opt/ub1604/casper
   С этого момента мы можем загружать Ubuntu из filesystem.squashfs.

8. Создаем файл casper-rw размером 1 гигабайт.
dd if=/dev/zero of=/mnt/sdb1/opt/ub1604/casper/casper-rw bs=1M count=1000
mke2fs -F -L casper-rw -m 0 /mnt/sdb1/opt/ub1604/casper/casper-rw
   С этого момента мы можем использовать persistent mode.
   В любое время файл casper-rw можно удалить/создать, любого размера (для FAT32 до 4Гб).

9. Монтируем iso-образ и копируем из него на флешку файлы, необходимые для загрузки в режиме EFI.
mount -o loop /mnt/sdb1/opt/ubuntu-16.04-desktop-amd64.iso /mnt/buntu
cp /mnt/buntu/EFI /mnt/sdb1
cp /mnt/buntu/boot/grub/x86_64-efi /mnt/sdb1/boot/grub
cp /mnt/buntu/boot/grub/efi.img /mnt/sdb1/boot/grub
  С этого момента мы можем загружаться с флешки в EFI режиме.
 Не удаляйте каталоги (и их содержимое) /EFI и /boot.
Остальные файлы-каталоги можно удалять или заменять в любой момент.
Вам доступно все пространство флешки. Можно создавать дополнительные разделы.
« Последнее редактирование: 21 Ноября 2017, 06:58:19 от andytux »

Оффлайн gamayun

  • Активист
  • *
  • Сообщений: 823
  • Кто ищет, тот найдёт, может быть...
    • Просмотр профиля
Ещё зависит от старости железа.Мой 8-ми летний ноут жрет все флешки,а вот комп,которому 11-ый год(из первых пней4)видит флешки только до 2Gb.Bios может и можно обновить,но зачем?Линукс пока еще не выпрыгнул за 2 гига,а Windows уже не надо.Да и DVDпривод пока дышит.
Не бери в голову

 

Страница сгенерирована за 0.034 секунд. Запросов: 25.