Создание загрузочной флешки

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
sunny1983
Сообщения: 357
ОС: GNU/Linux 4.x (Fedora, Debian)

Создание загрузочной флешки

Сообщение sunny1983 »

Искал в Интернете как создать загрузочную флешку для Linux, нашёл два способа. Первый - на флешку копируется iso-образ загрузочного диска командой dd. Второй - делается мультизагрузочная флешка с помощью программы unetbootin или подобных.
Первый способ не подходит так как теряется большая часть полезного объёма флешки и к тому же я в упор не понимаю как это может работать, iso-образ предназначен ведь для записи на лазерный диск, у которого свой способ организации данных, каким образом он может завязаться на флешку?
По второму способу есть вопросы. unetbootin ведь тоже грузит iso-образы через эмуляцию cdrom? Зачем его вообще эмулировать, почему нельзя грузиться с флешки как с жесткого диска у них же схожий способ организации данных.
Допустим у меня есть рабочая Linux-система, я хочу перенести её на флешку. Я делаю dump раздела, смонтированного как "/", потом форматирую флешку в ext4, монтирую её, делаю на неё restore сделанного дампа, а затем настраиваю загрузчик extlinux, grub или lilo. Или я могу отформатировать флешку в vfat, чтобы сохранить её совместимость с Windows, но тогда мне вместо extlinux нужно использовать syslinux (у них конфиг syslinux.conf одинаковый) и... что-то ещё нужно, образ initrd или unionfs, как он делается?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21480
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Создание загрузочной флешки

Сообщение Bizdelnick »

Вы всё свалили в одну кучу. Какая всё-таки задача у Вас стоит? Грузить готовый ISO или поставить систему на флешку?
У unetbootin есть один недостаток — часто он просто не работает...
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
MrClon
Сообщения: 838
ОС: Ubuntu 10.04, Debian 7 и 6

Re: Создание загрузочной флешки

Сообщение MrClon »

sunny1983 писал(а):
13.07.2015 23:11
и к тому же я в упор не понимаю как это может работать, iso-образ предназначен ведь для записи на лазерный диск, у которого свой способ организации данных, каким образом он может завязаться на флешку?

ISO образ это побайтовая копия файловой системы ISO. ISO это просто одна из множества файловых систем, ничего не мешает ей находиться на флешке, жёстком диске или где-то ещё. Но что-бы ОС находящаяся в ISO образе могла загрузиться не только с оптического диска, но и с других носителей, она должны быть специально подготовлена. Например ISO образы бубунты и (кажется) дебиана могут грузиться и работать с флешек, а вот образ Win XP — нет.

sunny1983 писал(а):
13.07.2015 23:11
Первый способ не подходит так как теряется большая часть полезного объёма флешки

Запись ISO на флешку с помощью dd это не про установку на флешку, это про использование флешки вместо CD. Просто другой носитель, для той-же самой цели. Например на случай если у тебя нету CD привода, или жалко переводить болванки

sunny1983 писал(а):
13.07.2015 23:11
Допустим у меня есть рабочая Linux-система, я хочу перенести её на флешку. Я делаю dump…

Можно, но это геморрой, IMHO, Проще поставить на флешку новую систему, точно так-же как ставишь её на хард (можно даже ставить её не с CD, а с другой флешки (с.м. выше))
Спасибо сказали:
azsx
Сообщения: 3684
ОС: calculate linux, debian, ubuntu

Re: Создание загрузочной флешки

Сообщение azsx »

ваще нутром я чую, что вашу задачу надо попробовать решить утилитой isohybrid.pl, но командами доказать не могу :(
У unetbootin есть один недостаток — часто он просто не работает...

однажды заинтерисовался кто что записывает iso загрузочные на флешки. Программ в линукс таких весьма много. Единственные рабочие варианты перечислены, unebootion и dd. Остальные программы или не работали, или даже к зависанию ПК приводили (но у меня ситуация, даже gpartted винчестеры отсоединяет при запуске).
а вот образ Win XP — нет.

нет, вин хр также записывается загрузочным образом на флешку. Не все образы идут, но это логично.
Спасибо сказали:
MrClon
Сообщения: 838
ОС: Ubuntu 10.04, Debian 7 и 6

Re: Создание загрузочной флешки

Сообщение MrClon »

azsx писал(а):
14.07.2015 01:41
нет, вин хр также записывается загрузочным образом на флешку. Не все образы идут, но это логично.

Записать-то на флэшку можно что угодно, вот только родные образы установочных дисков хрюшки с флешек загружаться не обучены. Всякие там ЗверьCD и просто модифицированные образы это другое.
Спасибо сказали:
azsx
Сообщения: 3684
ОС: calculate linux, debian, ubuntu

Re: Создание загрузочной флешки

Сообщение azsx »

вот только родные образы установочных дисков хрюшки с флешек загружаться не обучены. Всякие там ЗверьCD и просто модифицированные образы это другое.

в своей жизни я только раз видел родной диск winxp. Со стороны...
Мне также очень интересна тема ТС, так как я также не умею справляться с его проблемой. Насколько я понимаю проблемы две.
1. Загрузочная область на cd и загрузочная область на флешке даже физически распологаются иначе.
2. команда dd по умолчанию iso записывает как единый массив.
Логично предположить (я могу ошибаться), что для решения проблемы надо: на флешку fat32 записать какой нибудь syslinux в загрузочную область. Как то (по волшебству) он должен знать откуда запускать win или nix установку. Скопировать файлы с установочного cd, просто cp. Получить профит - загрузочная флешка + место на ней под файлы.
Вот теперь вопрос - а как это сделать?
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Создание загрузочной флешки

Сообщение Hephaestus »

sunny1983 писал(а):
13.07.2015 23:11
Искал в Интернете как создать загрузочную флешку для Linux, нашёл два способа.
Есть и третий вариант - руками.
Размечаем флешку, заливаем/ставим на разделы всё, что надо, потом берем syslinux (или extlinux) и организовываем загрузку/мультизагрузку.
Загрузка с такой флешки будет работать даже на проблемных платах, вроде моей Gigabyte, которая в упор не хочет грузиться с флешек.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Создание загрузочной флешки

Сообщение Hephaestus »

azsx писал(а):
14.07.2015 03:10
Логично предположить (я могу ошибаться), что для решения проблемы надо: на флешку fat32 записать какой нибудь syslinux в загрузочную область. Как то (по волшебству) он должен знать откуда запускать win или nix установку. Скопировать файлы с установочного cd, просто cp. Получить профит - загрузочная флешка + место на ней под файлы.
Вот теперь вопрос - а как это сделать?
Никакого волшебства. У него есть развестистый конфигурационный файл, в котором нужно указать, где чего лежит.
Как управляться с syslinux подробно рассказано, например, здесь. Руководство старое, но базовые вещи актуальности не потеряли. Освоив это, дальше уже несложно разобраться, как сделать загрузочную флешку любой степени сложности.
Единственное, нужно помнить, что для ФС fat* используется syslinux, для ext* - extlinux.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
sunny1983
Сообщения: 357
ОС: GNU/Linux 4.x (Fedora, Debian)

Re: Создание загрузочной флешки

Сообщение sunny1983 »

Bizdelnick писал(а):
14.07.2015 00:24
Какая всё-таки задача у Вас стоит?

Повысить эрудицию. И заиметь удобный рабочий загрузочный инструмент для восстановления данных.
MrClon писал(а):
14.07.2015 01:13
или жалко переводить болванки

Переводить флешки ещё более жалко, они всё-таки дороже стоят.
MrClon писал(а):
14.07.2015 01:13
Но что-бы ОС находящаяся в ISO образе могла загрузиться не только с оптического диска, но и с других носителей, она должны быть специально подготовлена.

Это проясняет ситуацию. Но в чём заключается эта подготовка?
azsx писал(а):
14.07.2015 03:10
1. Загрузочная область на cd и загрузочная область на флешке даже физически распологаются иначе.

Насколько я понимаю организация данных на флешках организована также как и на жестких дисках, есть сектора по 512 байт, в первом секторе располагается загрузчик и также можно создать таблицу разделов MBR. На лазерных дисках отсутствует понятие секторов и дорожек, данные записываются спирально, начиная от центра диска, при этом, для того чтобы диск был загрузочным должно использоваться расширение El Torito файловой системы ISO 9660, в качестве образа El Torito используется образ isolinux.bin из пакета syslinux, лет 15 назад, когда были живы дискеты, использовался другой образ, при загрузки с лазерного диска эмулировалась дискета.
Но опять же это не раскрывает задачу из предыдущей цитаты, какая ещё "особая подготовка" нужна, чтобы файловая система ISO 9660 ложилась на магнитные диски также как и на лазерные.
azsx писал(а):
14.07.2015 03:10
Логично предположить (я могу ошибаться), что для решения проблемы надо: на флешку fat32 записать какой нибудь syslinux в загрузочную область. Как то (по волшебству) он должен знать откуда запускать win или nix установку. Скопировать файлы с установочного cd, просто cp. Получить профит - загрузочная флешка + место на ней под файлы.
Вот теперь вопрос - а как это сделать?

Как управляться с загрузчиками из пакета syslinux я в курсе. Должен быть файл /boot/syslinux/syslinux.cfg, его синтаксис похож на синтаксис lilo.conf, главное правильно указать опции KERNEL и APPEND для загрузки ядра и передачи ему параметров. Ядро загрузить я смогу, а вот что дальше? Ведь если на флешке fat32, её нельзя смонтировать как "/", нужен образ initrd или unionfs. То есть, самое сложное - как рабочую систему закатать в такой образ.
Спасибо сказали:
azsx
Сообщения: 3684
ОС: calculate linux, debian, ubuntu

Re: Создание загрузочной флешки

Сообщение azsx »

Как управляться с загрузчиками из пакета syslinux я в курсе. Должен быть файл /boot/syslinux/syslinux.cfg, его синтаксис похож на синтаксис lilo.conf, главное правильно указать опции KERNEL и APPEND для загрузки ядра и передачи ему параметров. Ядро загрузить я смогу, а вот что дальше? Ведь если на флешке fat32 её нельзя смонтировать как "/", нужен образ initrd или unionfs. То есть, самое сложное - как рабочую систему закатать в такой образ.

фигасе... Я знал что там полно трудностей.
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Создание загрузочной флешки

Сообщение Hephaestus »

sunny1983 писал(а):
14.07.2015 09:48
Ведь если на флешке fat32, её нельзя смонтировать как "/",
Равно как и не стоит устанавливать рабочую Linux-систему на fat32.
Используйте ext и extlinux.
Что касается "как закатать туда рабочую систему", обсуждали уже.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21480
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Создание загрузочной флешки

Сообщение Bizdelnick »

azsx писал(а):
14.07.2015 01:41
isohybrid.pl

Вроде он без «.pl». http://www.syslinux.org/wiki/index.php/Doc...FHARD_DISK_MODE

Hephaestus писал(а):
14.07.2015 09:06
берем syslinux (или extlinux)

Почему именно syslinux, а не обычный grub (ну или lilo, кому что больше нравится)? Главное, чего, видимо, не осознал ТС, это то, что флешка для linux полностью равноценна жёсткому диску, и загрузка с неё выполняется точно таким же образом.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Создание загрузочной флешки

Сообщение Hephaestus »

Bizdelnick писал(а):
14.07.2015 12:24
Почему именно syslinux, а не обычный grub (ну или lilo, кому что больше нравится)?
Ну, как Вам сказать... С lilo я начал и у меня не вышло организовать то, что хотелось.
Использовать grub - был такой соблазн, но я его преодолел.
Для Slackware традиционным загрузчиком является всё-таки lilo, а grub мне представляется каким-то чужим, посторонним. К тому же, мне пришлось бы использовать grub2. В общем, чем-то мне grub не нравится, ещё со времён Debian.
В результате остановился на syslinux, который используется в Slax, кстати.
А посоветовал его... да потому что сам на нём делал, точно знаю, что работает, вот и посоветовал.
А так, конечно, каждый волен выбирать сам.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
sunny1983
Сообщения: 357
ОС: GNU/Linux 4.x (Fedora, Debian)

Re: Создание загрузочной флешки

Сообщение sunny1983 »

Hephaestus писал(а):
14.07.2015 14:46
grub мне представляется каким-то чужим, посторонним. К тому же, мне пришлось бы использовать grub2. В общем, чем-то мне grub не нравится, ещё со времён Debian.
В результате остановился на syslinux

Единомышлинег
Спасибо сказали:
MrClon
Сообщения: 838
ОС: Ubuntu 10.04, Debian 7 и 6

Re: Создание загрузочной флешки

Сообщение MrClon »

Bizdelnick писал(а):
14.07.2015 12:24
Главное, чего, видимо, не осознал ТС, это то, что флешка для linux полностью равноценна жёсткому диску, и загрузка с неё выполняется точно таким же образом.

Клуб любителей поиска проблем на ровном месте.
Спасибо сказали:
MrClon
Сообщения: 838
ОС: Ubuntu 10.04, Debian 7 и 6

Re: Создание загрузочной флешки

Сообщение MrClon »

sunny1983 писал(а):
14.07.2015 09:48
Переводить флешки ещё более жалко, они всё-таки дороже стоят.

Флешку можно потом отформатировать обратно в FAT32 (или что угодно) и использовать дальше как флешку. А потом можно сделать это ещё чёрт знает сколько раз сэкономив чёрт знает сколько болванок.

sunny1983 писал(а):
14.07.2015 09:48
И заиметь удобный рабочий загрузочный инструмент для восстановления данных.

Вот как ты обычно устанавливаешь свой любимый дистрибутив на жёсткий диск? Напиши подробную инструкцию, а потом замени в ней все вхождения строки "жёсткий диск" на строку "флешка". Улавливаешь?
Возможно в слаке и будут какие-то проблемы, но я не вижу с чего-бы.
Если что, спроси у drBatty, он вроде-бы использует слашу с флешки.
Спасибо сказали:
Аватара пользователя
yars
Сообщения: 1147
Статус: Slacker!
ОС: Slackware64-current

Re: Создание загрузочной флешки

Сообщение yars »

В Slackware есть скрипт, позволяющий сделать загрузочную флешку, пригодную еще и для хранения данных. Он форматирует флешку, копирует дерево каталогов на нее и устанавливает загрузчик. Лежит в usb-and-pxe-installers дерева каталогов.
Slackware64-current/Xfce/Xiaomi Mi Notebook Pro 15.6 | Arch Linux/Xfce/Lenovo G580
-------------
Registered Linux User #557010
Спасибо сказали:
Аватара пользователя
sabir
Сообщения: 66
ОС: OpenBSD

Re: Создание загрузочной флешки

Сообщение sabir »

sunny1983 писал(а):
14.07.2015 09:48
Ядро загрузить я смогу, а вот что дальше? Ведь если на флешке fat32, её нельзя смонтировать как "/", нужен образ initrd или unionfs. То есть, самое сложное - как рабочую систему закатать в такой образ.

Если Вы можете загрузить ядро, а единственной задачей любого загрузчика является именно загрузка ядра и передача ему управления, то дальше ядро само или через параметры запускает программу/скрипт "init", которая делает все, что угодно, в том числе может примонтировать фс лежащую на флешке. Это может быть непосредственно фс, что крайне не эффективно (т.к. флешки медленные и будет иметь место жуткое тупление, плюс каждая ось, не исключая Линукса считает своим долгом постоянно что то записывать => будет иметь место физический износ носителя, что особенно актуально в случае с не дешевыми SSD), а может быть архив со сжатой фс, которую можно разжать/примонтировать в память, и далее передать управление /sbin/init, а далее все как обычно. В последнем случае, вся система будет находиться непосредственно в памяти => быстродействие будет максимальным.
Прекрасным примером может служить Slax или его форк/клон Porteus. Там уже имеются скрипты делающие флешку загрузочной, плюс можно вскрыть initramfs, покоцать там все как надо, плюс можно повскрывать модули или даже создать свой с нуля, плюс флешка не будет убита, как флешка, т.е. система отожмет какую то часть флешки, а остальное пространство можно будет использовать для хранения файлов, фс так и останется в fat32, т.е. будет доступна как из вынь, так и из линь. На мой личный взгляд идеальное решение.
Спасибо сказали:
Аватара пользователя
yars
Сообщения: 1147
Статус: Slacker!
ОС: Slackware64-current

Re: Создание загрузочной флешки

Сообщение yars »

Флешки для USB3 уже не такие медленные. Для них вообще узкое место -- USB интерфейс, 480 Мбит/с несравнимо со скоростями SATA, особенно SATA 6 Гбит/с, плюс задержки в контроллере-конверторе (флешки не подключаются напрямую к шине USB), отсюда и тормоза. По поводу износа -- верно, использовать флешку как носитель /tmp, /var и /run не слишком хорошая идея. Для этих каталогов есть tmpfs, для SSD есть trim. Live-системы используют squashfs, поверх которой работает какая-нибудь tmpfs.
Slackware64-current/Xfce/Xiaomi Mi Notebook Pro 15.6 | Arch Linux/Xfce/Lenovo G580
-------------
Registered Linux User #557010
Спасибо сказали:
MrClon
Сообщения: 838
ОС: Ubuntu 10.04, Debian 7 и 6

Re: Создание загрузочной флешки

Сообщение MrClon »

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

Я всегда с собой таскаю флешку с установленной убунтой (установленной просто как на жёсткий диск). Грузится быстро, работает быстро, несколько месяцев на работе бутал комп только с неё (ленился поставить систему на хард :), жива. Что я делаю не так?
Ах да, /tmp кажется в памяти, но я не уверен. В общем-то экономить здоровье флешки особого резона нет, стоят они копейки
Спасибо сказали:
Аватара пользователя
sunny1983
Сообщения: 357
ОС: GNU/Linux 4.x (Fedora, Debian)

Re: Создание загрузочной флешки

Сообщение sunny1983 »

sabir писал(а):
16.07.2015 10:04
Если Вы можете загрузить ядро, а единственной задачей любого загрузчика является именно загрузка ядра и передача ему управления, то дальше ядро само или через параметры запускает программу/скрипт "init", которая делает все, что угодно, в том числе может примонтировать фс лежащую на флешке. Это может быть непосредственно фс, что крайне не эффективно (т.к. флешки медленные и будет иметь место жуткое тупление, плюс каждая ось, не исключая Линукса считает своим долгом постоянно что то записывать => будет иметь место физический износ носителя, что особенно актуально в случае с не дешевыми SSD), а может быть архив со сжатой фс, которую можно разжать/примонтировать в память, и далее передать управление /sbin/init, а далее все как обычно. В последнем случае, вся система будет находиться непосредственно в памяти => быстродействие будет максимальным.
Прекрасным примером может служить Slax или его форк/клон Porteus. Там уже имеются скрипты делающие флешку загрузочной, плюс можно вскрыть initramfs, покоцать там все как надо, плюс можно повскрывать модули или даже создать свой с нуля, плюс флешка не будет убита, как флешка, т.е. система отожмет какую то часть флешки, а остальное пространство можно будет использовать для хранения файлов, фс так и останется в fat32, т.е. будет доступна как из вынь, так и из линь. На мой личный взгляд идеальное решение.

Загрузчик должен передать ядру параметр root, чтобы ядро смонтировало нужную файловую систему как "/" и оттуда запустило /sbin/init или параметр initrd, чтобы смонтировался initrd-образ, который бы подключил дополнительные модули ядра, а потом всё равно смонтировался бы root. Что нужно указывать, чтобы смонтировался образ в формате unionfs? Я об этой файловой системе знаю только в теории, там вроде несколько слоёв, сам образ read-only, а изменения файловой системы пишутся в слой, находящийся в оперативной памяти, то есть физического износа флешки не будет.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21480
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Создание загрузочной флешки

Сообщение Bizdelnick »

sunny1983 писал(а):
17.07.2015 12:26
unionfs

Сейчас вроде бы кошерным считается использовать overlayfs.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
yars
Сообщения: 1147
Статус: Slacker!
ОС: Slackware64-current

Re: Создание загрузочной флешки

Сообщение yars »

Нужно ядро, способное:
1) работать с USB-контроллером;
2)нужна поддержка unionfs (overlayfs) в ядре.
Либо, нужно сделать initrd с необходимыми ядерными модулями, а задачу монтирования корня возложить на PID1.
Slackware64-current/Xfce/Xiaomi Mi Notebook Pro 15.6 | Arch Linux/Xfce/Lenovo G580
-------------
Registered Linux User #557010
Спасибо сказали: