LINUX.ORG.RU

LiveCD с установленной системы

 , ,


1

1

Необходимо сделать LiveCD (Debian) с установленными и настроенными программами, т.е. вставил CD/флэшку, система загрузилась в ОЗУ и можно работать (даже без участия hdd). Как можно сделать LiveCD с уже установленного Linux?

В интернете попадались варианты, когда генерируется образ (например, binary-hybrid.iso), а потом с помощью добавления скриптов в момент загрузки система и настраивается. Но есть ли вариант, когда можно сделать LiveCD с уже установленной системы?


Ответ на: комментарий от SergeySVold

https://www.debian.org/CD/live/

Там готовые LiveCD образы со своими программами и настройками. Вот хотелось бы такой же образ, только сделать под себя (свое окружение, программы, скрипты и т.п).

Как сделать такой же образ, только с установленного и настроенного Linux (Debian)?

My555
() автор топика
Ответ на: комментарий от My555

Делай, тебе никто не запрещает.

За основу можешь взять любой LiveCD, изучить как они работают, тоже самое тебе нужно реализовать в твоём LiveCD.

Как работает LiveCD, на CD / DVD диске есть squashfs архив, это специальный архив, который может монтироваться, но только в режиме чтения.

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

Поэтому в сценария в initramfs прописаны команды, которые монтируют squashfs архив, потому монтируют отдельно tmpfs для записи и далее каскадно монтируют посредством aufs / overlayfs / unionfs squashfs как нижний слой для чтения и tmpfs как верхний слой для записи. Т.е. получается такой «бутерброд» из двух файловых систем, при чтении считывание будет проходить из squashfs, а запись новых файлов или изменённых на tmpfs.

После того как скрипты всё смонтируют будет произведён switch_root или pivot_root, т.е. переключение корня в смонтированный «бутерброд».

Т.е. берёшь и изучаешь как работает LiveCD и делаешь по аналогии.

Если у Debian есть уже готовый LiveCD, то ты можешь взять, распаковать squashfs образ, сделать в него chroot, поставить нужные программы, сделать нужные настройки и затем опять запаковать в squashfs архив, а потом заменить твоим файлом squashfs в LiveCD от Debian.

anonymous
()

сделать LiveCD с уже установленного Linux?

  1. Запустить live в режиме «persistent». Режим позваляет сохранять все изменения, как в установленной системе.
  2. Использовать системы, которые как-раз расчитаны на такую работу, например Porteus.
  3. Из установленной системы сделать live. Дебиан не делал. А в *бунту делаю так
andytux ★★★★★
()
Ответ на: комментарий от SergeySVold

Согласен, тем более сейчас он собирается на пакетной базе Debian, хоть и называется slax.

anonymous
()

В антиксе встроена лайфпеределывалка. Тот же дебиан. Тоже можно пробовать.

explorer
()
  1. с помошью debootstrap собираешь систему, заворачиваешь в образ

  2. делаешь initrd c поддержкой overlayfs, tmpfs и что там еще нужно

  3. добавляешь в initrd свой скрипт, который монтирует носитель, разворачивает в overlay твой образ-RO+tmpfs-RW

можно еще придумать механизм сохранения изменений

ps: ну а если велосипед изобретать не охота, то тот же Slax

samson ★★
()
Ответ на: комментарий от anonymous

а потом заменить твоим файлом squashfs в LiveCD от Debian

Подскажите, когда я монтирую iso образ LiveCD, то он сразу предупреждает, что недоступен для записи. В результате я копирую из него все содержимое в другую папку из которой в дальнейшем и делаю новый iso образ, но с него система не загружается и выдает DISK BOOT FAILURE.

My555
() автор топика
Ответ на: комментарий от andytux

Из установленной системы сделать live. Дебиан не делал. А в *бунту делаю так

Т.к. я в Linux совсем новичок, сразу споткнулся на отсутствие папок opt и др. в Debian.

My555
() автор топика

Но есть ли вариант, когда можно сделать LiveCD с уже установленной системы?

В поставке MX Linux (Debian-based дистр) есть утилита MX Snapshot — она делает то, что тебе надо.

atsym ★★★★★
()
Ответ на: комментарий от Deleted

Зачем вообще в наше время потребовался LiveCD?

Удобно, после перезагрузки всегда новая система.

My555
() автор топика
Ответ на: комментарий от Deleted

Зачем вообще в наше время потребовался LiveCD?

«…CD» нужен толко в том случее, если требуется запись на болванку. В остальных случаях от него только лишние сложности и ограничения. А вот «Live…» может быть весьма полезен.

andytux ★★★★★
()
Ответ на: комментарий от My555

делаю новый iso образ, но с него система не загружается

А ты делаешь исо-образ загрузочный? Ты правильно его делаешь? И в продолжение предыдущего ответа. Если ты сделал загрузочный исо-образ, это не значит, что, записав его на флешку, ты получишь загрузочную флешку.

andytux ★★★★★
()
Ответ на: комментарий от My555

сразу споткнулся на отсутствие папок opt и др. в Debian.

Каталог /opt. В системе он есть. В исо-образе - нет. Во первых, если нет, то создай. Во вторых, имя каталога в принципе может быть любое. Я для себя решил, что пусть будет /opt. Потому что он уже есть во многих системах. И по спецификации FHS вполне подходит для этих целей. Обычно в него помещаю исо-образы и другие файлы «живых систем» . Например, конфиг груб составлен так, что ищет файлы в этом каталоге. Если изменишь имя, то нужно будет вносить изменения в конфиг. Если говорить о Debian, то столкнешься с более сложными препятствиями. Например, программа, ответственная за работу «живой системы» в Debian называется - live, а в *buntu - casper. И это не единственный параметр, которыми они отличаются. Эти изменения придется учитывать в конфиге груб.

andytux ★★★★★
()
Ответ на: комментарий от andytux

А ты делаешь исо-образ загрузочный? Ты правильно его делаешь?

Пробовал по-разному. Например, есть скачанный iso образ Debian Live с оф. сайта. Копирую его на флэшку (cp liveimage.iso /dev/sdb) - все загружается (через dd тоже работает).

Далее в качестве эксперимента этот образ монтирую, копирую в другую папку и собираю:

mount -o loop liveimage.iso /image
cp -r /image /tempimage
genisoimage -J -R -o newliveimage.iso -no-emul-boot -boot-info-table -b isolinux/isolinux.bin -c isolinux/boot.cat /tempimage

Записываю полученный новый образ на флэшку: cp newliveimage.iso /dev/sdb - и выдает ошибку.

P.s.: тестовый пример набирал по памяти, может где-то ошибся, но в целом так.

My555
() автор топика
Ответ на: комментарий от My555

genisoimage -J -R -o newliveimage.iso -no-emul-boot -boot-info-table -b isolinux/isolinux.bin -c isolinux/boot.cat /tempimage

Для исо-образа может быть и правильно, На память все параметры не помню, давно не делал. А вручную не делал еще давнее.

Записываю полученный новый образ на флэшку

И дальше я правильно сказал. С флешки этот образ грузиться не будет, т.к. в нем нет соответствующего загрузчика. Чтобы сделать загрузочную флешку простым копированием исо-обрза, образ делают с гибридной таблицей разделов. Как это сделать конкретно, я не знаю. Это я и назвал бесполезной тратой сил и времени на создание образа. Если не нужно писать на болванку, а достаточно только загрузка с флешки или хдд, то и незачем заморачиваться с исо. Совет. Осваивай груб. Пригодиться в любой ситуации и никакие другие загрузчики будут не нужны. Даже если исо-образ не гибридный, то во многих случаях можно загрузиться из исо-образа, не записывая его на флешку. В этом случае и образов может быть не один, а сколько физически поместится.

andytux ★★★★★
()
Ответ на: комментарий от andytux

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

Но, как я понимаю, для это ведь нужен винт с прописанным grub-загрузчиком? Т.е. сразу после БИОСа управление передается grub-загрузчику и там уже происходит перенаправление. А как быть, если вообще без винта или на другом компьютере, где grub не прописан?

My555
() автор топика
Ответ на: комментарий от andytux

Получилось все-таки запустить с флэшки, скачал mbr с оригинального образа и добавил в новый.

My555
() автор топика
Ответ на: комментарий от andytux

Ну на флешку закатать систему - дело не хитрое. Хотя если опыта с линуксом мало, придется почитать кое-какие мануалы.

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

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

Вот сделать неизменяемый образ немного дольше

Так неизменяемый образ это же как раз LiveCD или я неправильно понимаю?

P.s.: с Линуксом ковыряюсь от силы неделю.

My555
() автор топика
Ответ на: комментарий от My555

для это ведь нужен винт с прописанным grub-загрузчиком?

У тебя система установлена? Ты ее запускаешь грубом? Если оба ответа да, то и начни с того, чтобы им ты мог загрузить все, что угодно, любую систему, любой образ, с любого диска-раздела. А потом этот конфиг можно применять с любым грубом, на любом устройстве.

если вообще без винта

Что-то будет, например флешка. От винта отличается только названием. Размещение и работа груба ничем не отличается. В свое время, когда флешек еще не было, в загрузочных исо тоже использовал груб, никаких isolinux. Для режима совместимости с БИОС груб устанавливается одной командой на любое устройство. А в режиме ЕФИ и того проще - простым копированием файлов. Собственно, загрузочной называется флешка, на которой установлен загрузчик. Все остальное по мере необходимости. Нужен исо, скопировал на флешку исо. Или вообще, загрузчиком флешки загрузить исошник, находящийся где-то на харддиске, или систему, установленную на чужом компьютере, которую свой загрузчик запустить не может.

andytux ★★★★★
()
Ответ на: комментарий от My555

Ну можно сделать неизменяемую флешку например. При перезагрузке все изменения забывает.

Deleted
()
Ответ на: комментарий от andytux

Понял, спасибо, буду с grub знакомиться, т.к. получается универсальный загрузчик. Тем более у меня с LiveCD, как я понял, все равно потом управление передается grub (меню в LiveCD и выбор режима).

Ну можно сделать неизменяемую флешку например. При перезагрузке все изменения забывает.

Так это же LiveCD, точнее Live-образ записанный на флэшку. У меня как раз получилось скачать оригинальный Live-образ, распаковать-запаковать и обратно сделать загрузочную флэшку. Все в оперативке получается, при перезагрузке как новая система.

А не подскажите, chroot только из консоли можно изменения делать, привязаться к графической оболочки нет возможности? Т.е. чтобы саму систему можно было «визуально» настраивать.

My555
() автор топика
Ответ на: комментарий от My555

Упаковать в образ и запустить на QEMU или Vrtualbox.

Mixa
()
Ответ на: комментарий от My555

А не подскажите, chroot только из консоли можно изменения делать, привязаться к графической оболочки нет возможности? Т.е. чтобы саму систему можно было «визуально» настраивать.

Тут дело в твоем непонимании. Ты должен запустить liveCD, настроить его под себя и сохранить это все в новый образ liveCD.

Технически можно и из chroot-а запустить иксы (графическую оболочку), но скорее всего ты упрешься в аппаратные ограничения компьютера – не хватит оперативной памяти или ещё что-нибудь пойдёт не так.

anonymous
()
Ответ на: комментарий от My555

Подскажите, когда я монтирую iso образ LiveCD, то он сразу предупреждает, что недоступен для записи.

Конечно, iso образ - это файл, содержащий файловую систему iso9660, она предназначена для записи на носители информации с возможностью доступа только для чтения и как следствие iso образ (iso9660) тоже доступна только для чтения.

В результате я копирую из него все содержимое в другую папку из которой в дальнейшем и делаю новый iso образ, но с него система не загружается и выдает DISK BOOT FAILURE.

Ты в общем правильно делаешь, только тебе нужно погуглить как создавать iso образ, который может загружаться.

В случае EFI загрузки он и так должен грузиться в EFI режиме, в случае наличия в корне iso образа директории efi с файлами загрузчика. А для загрузки в legacy (BIOS) режиме тебе нужно разобраться как создавать образ, а точнее с какими ключами вызывать утилиту mkisofs для создания загружаемого образа.

Т.к. я в Linux совсем новичок, сразу споткнулся на отсутствие папок opt и др. в Debian.

Папки opt, а точнее, видимо /opt могут быть и в Debian, обычно в эту директорию устанавливаются сторонние программы, устанавливаемые из своих установщиков, а не из пакетов в репозитории дистрибутива.

Удобно, после перезагрузки всегда новая система.

В Linux именно система, т.е. системные файл, файлы программ, прочего, не изменияются, пишутся только логи в /var/log и изменяются файлы в директории профиля пользователя.

Записываю полученный новый образ на флэшку: cp newliveimage.iso /dev/sdb - и выдает ошибку.

А зачем ты собираешь iso образ, если потом всё равно грузишься с флешки?

Тебе нужно поставить любой загрузчик на флешку, а далее прописать в загрузчике конфигурацию для запуска Live системы. Т.е. вызов ядра и Initrd, в остальном нужно создать соответствующу структуру директорий и файлов. Возможно, нужно придётся прописать некоторые параметры, что бы Live система, а точнее ядро и Initramfs находила нужные файлы на флешке.

Но, как я понимаю, для это ведь нужен винт с прописанным grub-загрузчиком? Т.е. сразу после БИОСа управление передается grub-загрузчику и там уже происходит перенаправление. А как быть, если вообще без винта или на другом компьютере, где grub не прописан?

Что в случае iso образа, что флешки, что диска, в начале запускается загрузчик, а потом он в соответствие со своей конфигурацией загружает образ ядра и initramfs в память и передаёт ядру управление. Далее ядро монтирует Initramfs и скрипты в Initramfs уже ищёт squashfs файл и подключают его и далее запускается Live система.

Т.е. iso образ ТЕБЕ НЕ НУЖЕН, в случае, если ты всё равно грузишься с флешки. Разберись как поставить загрузчик, например grub на флешку и как в нём прописывать конфигурацию для загрузки ядра и Initramfs Live системы.

Так неизменяемый образ это же как раз LiveCD или я неправильно понимаю?

Live система - это система, которая в качестве файловой системы подключает squashfs образ, который доступен только для чтения, а изменения (запись) пишутся в оперативную память. Т.е. без разницы откуда у тебя загружается система и подключается squashfs файл, с флешки или с диска, без разницы.

А не подскажите, chroot только из консоли можно изменения делать, привязаться к графической оболочки нет возможности? Т.е. чтобы саму систему можно было «визуально» настраивать.

Если нужно сделать просто chroot в графической оболочке, то запусти терминал и выполни в нём команду chroot.

А если ты хочешь запустить из chroot окружения графическую оболочку Live системы, то это будет несколько сложнее и тебе с этим разбираться не нужно.

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

Т.е. потом подключаешь squashfs файл, копируешь из него всё файлы, делаешь chroot в скопированное место, ставишь нужные пакеты и подменяешь профиль.

Создаёшь новый squashfs файл.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.