Создание загрузочной флешки
Модераторы: SLEDopit, Модераторы разделов
-
sunny1983
- Сообщения: 357
- ОС: GNU/Linux 4.x (Fedora, Debian)
Создание загрузочной флешки
Искал в Интернете как создать загрузочную флешку для Linux, нашёл два способа. Первый - на флешку копируется iso-образ загрузочного диска командой dd. Второй - делается мультизагрузочная флешка с помощью программы unetbootin или подобных.
Первый способ не подходит так как теряется большая часть полезного объёма флешки и к тому же я в упор не понимаю как это может работать, iso-образ предназначен ведь для записи на лазерный диск, у которого свой способ организации данных, каким образом он может завязаться на флешку?
По второму способу есть вопросы. unetbootin ведь тоже грузит iso-образы через эмуляцию cdrom? Зачем его вообще эмулировать, почему нельзя грузиться с флешки как с жесткого диска у них же схожий способ организации данных.
Допустим у меня есть рабочая Linux-система, я хочу перенести её на флешку. Я делаю dump раздела, смонтированного как "/", потом форматирую флешку в ext4, монтирую её, делаю на неё restore сделанного дампа, а затем настраиваю загрузчик extlinux, grub или lilo. Или я могу отформатировать флешку в vfat, чтобы сохранить её совместимость с Windows, но тогда мне вместо extlinux нужно использовать syslinux (у них конфиг syslinux.conf одинаковый) и... что-то ещё нужно, образ initrd или unionfs, как он делается?
Первый способ не подходит так как теряется большая часть полезного объёма флешки и к тому же я в упор не понимаю как это может работать, 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: Создание загрузочной флешки
Вы всё свалили в одну кучу. Какая всё-таки задача у Вас стоит? Грузить готовый ISO или поставить систему на флешку?
У unetbootin есть один недостаток — часто он просто не работает...
У unetbootin есть один недостаток — часто он просто не работает...
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
MrClon
- Сообщения: 838
- ОС: Ubuntu 10.04, Debian 7 и 6
Re: Создание загрузочной флешки
ISO образ это побайтовая копия файловой системы ISO. ISO это просто одна из множества файловых систем, ничего не мешает ей находиться на флешке, жёстком диске или где-то ещё. Но что-бы ОС находящаяся в ISO образе могла загрузиться не только с оптического диска, но и с других носителей, она должны быть специально подготовлена. Например ISO образы бубунты и (кажется) дебиана могут грузиться и работать с флешек, а вот образ Win XP — нет.
Запись ISO на флешку с помощью dd это не про установку на флешку, это про использование флешки вместо CD. Просто другой носитель, для той-же самой цели. Например на случай если у тебя нету CD привода, или жалко переводить болванки
Можно, но это геморрой, IMHO, Проще поставить на флешку новую систему, точно так-же как ставишь её на хард (можно даже ставить её не с CD, а с другой флешки (с.м. выше))
-
azsx
- Сообщения: 3684
- ОС: calculate linux, debian, ubuntu
Re: Создание загрузочной флешки
ваще нутром я чую, что вашу задачу надо попробовать решить утилитой isohybrid.pl, но командами доказать не могу 
однажды заинтерисовался кто что записывает iso загрузочные на флешки. Программ в линукс таких весьма много. Единственные рабочие варианты перечислены, unebootion и dd. Остальные программы или не работали, или даже к зависанию ПК приводили (но у меня ситуация, даже gpartted винчестеры отсоединяет при запуске).
нет, вин хр также записывается загрузочным образом на флешку. Не все образы идут, но это логично.
У unetbootin есть один недостаток — часто он просто не работает...
однажды заинтерисовался кто что записывает iso загрузочные на флешки. Программ в линукс таких весьма много. Единственные рабочие варианты перечислены, unebootion и dd. Остальные программы или не работали, или даже к зависанию ПК приводили (но у меня ситуация, даже gpartted винчестеры отсоединяет при запуске).
а вот образ Win XP — нет.
нет, вин хр также записывается загрузочным образом на флешку. Не все образы идут, но это логично.
-
MrClon
- Сообщения: 838
- ОС: Ubuntu 10.04, Debian 7 и 6
Re: Создание загрузочной флешки
Записать-то на флэшку можно что угодно, вот только родные образы установочных дисков хрюшки с флешек загружаться не обучены. Всякие там ЗверьCD и просто модифицированные образы это другое.
Спасибо сказали:
-
azsx
- Сообщения: 3684
- ОС: calculate linux, debian, ubuntu
Re: Создание загрузочной флешки
вот только родные образы установочных дисков хрюшки с флешек загружаться не обучены. Всякие там ЗверьCD и просто модифицированные образы это другое.
в своей жизни я только раз видел родной диск winxp. Со стороны...
Мне также очень интересна тема ТС, так как я также не умею справляться с его проблемой. Насколько я понимаю проблемы две.
1. Загрузочная область на cd и загрузочная область на флешке даже физически распологаются иначе.
2. команда dd по умолчанию iso записывает как единый массив.
Логично предположить (я могу ошибаться), что для решения проблемы надо: на флешку fat32 записать какой нибудь syslinux в загрузочную область. Как то (по волшебству) он должен знать откуда запускать win или nix установку. Скопировать файлы с установочного cd, просто cp. Получить профит - загрузочная флешка + место на ней под файлы.
Вот теперь вопрос - а как это сделать?
-
Hephaestus
- Сообщения: 3728
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
Re: Создание загрузочной флешки
Есть и третий вариант - руками.
Размечаем флешку, заливаем/ставим на разделы всё, что надо, потом берем syslinux (или extlinux) и организовываем загрузку/мультизагрузку.
Загрузка с такой флешки будет работать даже на проблемных платах, вроде моей Gigabyte, которая в упор не хочет грузиться с флешек.
-
Hephaestus
- Сообщения: 3728
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
Re: Создание загрузочной флешки
Никакого волшебства. У него есть развестистый конфигурационный файл, в котором нужно указать, где чего лежит.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: Создание загрузочной флешки
Повысить эрудицию. И заиметь удобный рабочий загрузочный инструмент для восстановления данных.
Переводить флешки ещё более жалко, они всё-таки дороже стоят.
Это проясняет ситуацию. Но в чём заключается эта подготовка?
Насколько я понимаю организация данных на флешках организована также как и на жестких дисках, есть сектора по 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: Создание загрузочной флешки
Как управляться с загрузчиками из пакета syslinux я в курсе. Должен быть файл /boot/syslinux/syslinux.cfg, его синтаксис похож на синтаксис lilo.conf, главное правильно указать опции KERNEL и APPEND для загрузки ядра и передачи ему параметров. Ядро загрузить я смогу, а вот что дальше? Ведь если на флешке fat32 её нельзя смонтировать как "/", нужен образ initrd или unionfs. То есть, самое сложное - как рабочую систему закатать в такой образ.
фигасе... Я знал что там полно трудностей.
-
Hephaestus
- Сообщения: 3728
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
Re: Создание загрузочной флешки
Равно как и не стоит устанавливать рабочую Linux-систему на fat32.
Используйте ext и extlinux.
Что касается "как закатать туда рабочую систему", обсуждали уже.
-
Bizdelnick
- Модератор
- Сообщения: 21480
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Создание загрузочной флешки
Вроде он без «.pl». http://www.syslinux.org/wiki/index.php/Doc...FHARD_DISK_MODE
Почему именно syslinux, а не обычный grub (ну или lilo, кому что больше нравится)? Главное, чего, видимо, не осознал ТС, это то, что флешка для linux полностью равноценна жёсткому диску, и загрузка с неё выполняется точно таким же образом.
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
Hephaestus
- Сообщения: 3728
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
Re: Создание загрузочной флешки
Ну, как Вам сказать... С lilo я начал и у меня не вышло организовать то, что хотелось.Bizdelnick писал(а): ↑14.07.2015 12:24Почему именно syslinux, а не обычный grub (ну или lilo, кому что больше нравится)?
Использовать grub - был такой соблазн, но я его преодолел.
Для Slackware традиционным загрузчиком является всё-таки lilo, а grub мне представляется каким-то чужим, посторонним. К тому же, мне пришлось бы использовать grub2. В общем, чем-то мне grub не нравится, ещё со времён Debian.
В результате остановился на syslinux, который используется в Slax, кстати.
А посоветовал его... да потому что сам на нём делал, точно знаю, что работает, вот и посоветовал.
А так, конечно, каждый волен выбирать сам.
-
sunny1983
- Сообщения: 357
- ОС: GNU/Linux 4.x (Fedora, Debian)
Re: Создание загрузочной флешки
Hephaestus писал(а): ↑14.07.2015 14:46grub мне представляется каким-то чужим, посторонним. К тому же, мне пришлось бы использовать grub2. В общем, чем-то мне grub не нравится, ещё со времён Debian.
В результате остановился на syslinux
Единомышлинег
-
MrClon
- Сообщения: 838
- ОС: Ubuntu 10.04, Debian 7 и 6
Re: Создание загрузочной флешки
Bizdelnick писал(а): ↑14.07.2015 12:24Главное, чего, видимо, не осознал ТС, это то, что флешка для linux полностью равноценна жёсткому диску, и загрузка с неё выполняется точно таким же образом.
Клуб любителей поиска проблем на ровном месте.
-
MrClon
- Сообщения: 838
- ОС: Ubuntu 10.04, Debian 7 и 6
Re: Создание загрузочной флешки
Флешку можно потом отформатировать обратно в FAT32 (или что угодно) и использовать дальше как флешку. А потом можно сделать это ещё чёрт знает сколько раз сэкономив чёрт знает сколько болванок.
Вот как ты обычно устанавливаешь свой любимый дистрибутив на жёсткий диск? Напиши подробную инструкцию, а потом замени в ней все вхождения строки "жёсткий диск" на строку "флешка". Улавливаешь?
Возможно в слаке и будут какие-то проблемы, но я не вижу с чего-бы.
Если что, спроси у drBatty, он вроде-бы использует слашу с флешки.
-
yars
- Сообщения: 1147
- Статус: Slacker!
- ОС: Slackware64-current
Re: Создание загрузочной флешки
В Slackware есть скрипт, позволяющий сделать загрузочную флешку, пригодную еще и для хранения данных. Он форматирует флешку, копирует дерево каталогов на нее и устанавливает загрузчик. Лежит в usb-and-pxe-installers дерева каталогов.
Slackware64-current/Xfce/Xiaomi Mi Notebook Pro 15.6 | Arch Linux/Xfce/Lenovo G580
-------------
Registered Linux User #557010
-------------
Registered Linux User #557010
-
sabir
- Сообщения: 66
- ОС: OpenBSD
Re: Создание загрузочной флешки
Если Вы можете загрузить ядро, а единственной задачей любого загрузчика является именно загрузка ядра и передача ему управления, то дальше ядро само или через параметры запускает программу/скрипт "init", которая делает все, что угодно, в том числе может примонтировать фс лежащую на флешке. Это может быть непосредственно фс, что крайне не эффективно (т.к. флешки медленные и будет иметь место жуткое тупление, плюс каждая ось, не исключая Линукса считает своим долгом постоянно что то записывать => будет иметь место физический износ носителя, что особенно актуально в случае с не дешевыми SSD), а может быть архив со сжатой фс, которую можно разжать/примонтировать в память, и далее передать управление /sbin/init, а далее все как обычно. В последнем случае, вся система будет находиться непосредственно в памяти => быстродействие будет максимальным.
Прекрасным примером может служить Slax или его форк/клон Porteus. Там уже имеются скрипты делающие флешку загрузочной, плюс можно вскрыть initramfs, покоцать там все как надо, плюс можно повскрывать модули или даже создать свой с нуля, плюс флешка не будет убита, как флешка, т.е. система отожмет какую то часть флешки, а остальное пространство можно будет использовать для хранения файлов, фс так и останется в fat32, т.е. будет доступна как из вынь, так и из линь. На мой личный взгляд идеальное решение.
-
yars
- Сообщения: 1147
- Статус: Slacker!
- ОС: Slackware64-current
Re: Создание загрузочной флешки
Флешки для 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
-------------
Registered Linux User #557010
-
MrClon
- Сообщения: 838
- ОС: Ubuntu 10.04, Debian 7 и 6
Re: Создание загрузочной флешки
О да, флешки очень медленные. Особенно учитывая что им не нужно елозить головками в поисках нужного файла.
Я всегда с собой таскаю флешку с установленной убунтой (установленной просто как на жёсткий диск). Грузится быстро, работает быстро, несколько месяцев на работе бутал комп только с неё (ленился поставить систему на хард :), жива. Что я делаю не так?
Ах да, /tmp кажется в памяти, но я не уверен. В общем-то экономить здоровье флешки особого резона нет, стоят они копейки
Я всегда с собой таскаю флешку с установленной убунтой (установленной просто как на жёсткий диск). Грузится быстро, работает быстро, несколько месяцев на работе бутал комп только с неё (ленился поставить систему на хард :), жива. Что я делаю не так?
Ах да, /tmp кажется в памяти, но я не уверен. В общем-то экономить здоровье флешки особого резона нет, стоят они копейки
-
sunny1983
- Сообщения: 357
- ОС: GNU/Linux 4.x (Fedora, Debian)
Re: Создание загрузочной флешки
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: Создание загрузочной флешки
Сейчас вроде бы кошерным считается использовать overlayfs.
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
yars
- Сообщения: 1147
- Статус: Slacker!
- ОС: Slackware64-current
Re: Создание загрузочной флешки
Нужно ядро, способное:
1) работать с USB-контроллером;
2)нужна поддержка unionfs (overlayfs) в ядре.
Либо, нужно сделать initrd с необходимыми ядерными модулями, а задачу монтирования корня возложить на PID1.
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
-------------
Registered Linux User #557010