- LiveCD
- Особенности
- LiveCD без жесткого диска
- LiveCD с поддержкой сеансов
- Возможности и ограничения
- Возможности
- Недостатки
- Системные требования
- Скачать образы
- Simply Linux LiveCD
- Кастомный LiveCD Ubuntu за 5 шагов / Ubuntu LiveCD Remastering
- Шаг №0
- Шаг №1. Копирование файлов iso
- Шаг №2. Распаковываем систему
- Шаг №3. Выполняем вход в систему и настраиваем ее
- Шаг №4. Сжимаем кастомизированную систему
- Шаг №5. Собираем новый iso
LiveCD
LiveCD или Live — «живой» компакт-диск или «живая» система — это операционная система, которая загружается со сменного носителя — компакт-диска или USB-накопителя. Такая портативная система не требует развернутой установки на жесткий диск.
Операционная система в режиме LiveCD загружается непосредственно с носителя — USB- или DVD-диска, не затрагивая установленную на жёстком диске ОС. В режиме LiveCD пользователь может использовать Интернет, электронную почту, просматривать и редактировать изображения, создавать и редактировать документы с помощью приложений, входящих в состав дистрибутива.
Особенности
- Дистрибутивы Альт позволяют в Live-режиме установить систему на жесткий диск. Но подобная установка не является штатным процессом, и вместо нее лучше использовать классический инсталлятор. Установка из Live — на всякий случай.
- В Live-режиме не получится перейти на проприетарный драйвер и нельзя поменять ядро. Для проприетарных драйверов понадобится штатная установка дистрибутива на жесткий диск.
- В режиме LiveCD в дистрибутиве Альт создаются системный пользователь altlinux и суперпользователь root — без пароля. Также система автоматически монтирует для пользователя все локальные носители по умолчанию на чтение и запись.
Загрузчик операционной системы (GRUB) предлагает несколько вариантов запуска Live-режима: LiveCD без жесткого диска и LiveCD с поддержкой сеансов.
LiveCD без жесткого диска
В этом случае LiveCD работает с USB-/DVD-диска, и не затрагивает операционную систему, если она уже установлена на жесткий диск компьютера. Чаще используется для диагностики уже установленной ОС.
LiveCD с поддержкой сеансов
LiveCD с поддержкой сеансов предполагает, что все изменения в настройках ОС, сделанные в текущей сессии, после перезагрузки компьютера будут сохранены и восстановлены в новом сеансе автоматически. При выключении компьютера LiveCD с поддержкой сеансов по умолчанию предлагает пользователю сохранить сеанс работы. Изменения сеанса (в том числе и созданные документы) сохраняются на остатке места в установочном носителе. При новом запуске LiveCD операционная система загрузит сохраненные настройки предыдущего сеанса и применит их вместо настроек по умолчанию. В итоге получается полностью рабочая, компактная система с быстрым доступом.
Если в процессе работы в режиме LiveCD пользователю понадобится выключить компьютер или перезапустить систему, следует сохранить данные на USB-накопителе или жёстком диске. Файловым менеджер в дистрибутиве позволит получить доступ к работе с файлами на жестком диске компьютера.
Возможности и ограничения
Возможности
Удобство этого режима в том, что можно подойти к любому компьютеру или ноутбуку, подключить USB-накопитель и загрузиться со своим дистрибутивом ALT. Получится полностью рабочая система — с приложениями, документами и настройками, например, фона рабочего стола. При этом на самом компьютере не окажется никаких изменений. «Живую» систему можно запустить за короткое время — до нескольких минут. Технология «Живого диска» может пригодиться в случае запрета или невозможности работы с жестким диском компьютера, например для диагностики проблем загрузки в основной операционной системе. LiveCD можно использовать для запуска системы с личными настройками с любого доступного компьютера. Можно провести диагностику сломанной операционной системы, загрузив собственную и подключившись к жесткому диску. С помощью LiveCD можно организовать бездисковую загрузку системы по сети.
Недостатки
- Отсутствие раздела подкачки swap
- Возможно меньшая скорость чтения данных. Однако с переносом LiveCD на USB-накопители различия в скорости чтения будут минимальны.
Системные требования
Дистрибутив | Минимальный размер ОЗУ | Рекомендуемый размер ОЗУ | Место на жёстком диске |
---|---|---|---|
Simply Linux Live 10/10.1 | 1 ГБ | от 4 ГБ | от 20 ГБ |
Альт Рабочая Станция К Live 10.0 | 1 ГБ | от 4 ГБ | от 20 ГБ |
Скачать образы
Внимание! UNetbootin и UltraISO вместо простой записи гибридного образа ALT Linux на флеш-накопитель портят загрузку, поэтому эти программы для записи образов использовать не рекомендуется.
Simply Linux LiveCD
Кастомный LiveCD Ubuntu за 5 шагов / Ubuntu LiveCD Remastering
Последние года 3 я активный пользователь Linux. Мне нравится возможность полной настройки и экспериментов, которые позволяет эта система. Единственным неудобством, на мой взгляд, являлась невозможность сохранить свои изменения в сам LiveCD с системой. Это решалось послеустановочными скриптами, но хотелось сделать уже настроенную под себя систему прямиком в LiveCD. Потратив кучу времени, сил и нервов мне удалось реализовать эту цель. Далее постараюсь описать все шаги подробно, чтобы не оставлять «пустых» мест.
Я прикипел к дистрибутиву Lubuntu, на его примере и опишу кастомизацию, но вы можете использовать мои рекомендации для Debian, Ubuntu (любой редакции), Manjaro. На этих Linux мой алгоритм испробован с успехом. Вероятно с другими ОС он тоже сработает, но сам не проверял.
Шаг №0
Подготовим хостовую систему (у меня Lubuntu) для сборки кастомного LiveCD. Нам понадобится несколько дополнительных приложений.
sudo apt install -y squashfs-tools xorriso isolinux
Если у вас хостовая система Manjaro или Arch, вместо пакета isolinux установите syslinux
sudo pacman -Sy squashfs-tools xorriso syslinux
Шаг №1. Копирование файлов iso
Этот шаг до ужаса прост. Монтируем LiveCD, создаем каталог для копирования файлов и копируем.
# монтируем iso sudo mkdir /mnt/iso sudo mount -o loop path/to/iso /mnt/iso # создаем папку для копирования файлов iso sudo mkdir -p /home/$USER/livecd/iso # копируем sudo cp -rf /mnt/iso/* /home/$USER/livecd/iso/ # отмонтируем iso и удаляем папку куда монтировали sudo umount /mnt/iso sudo rm -rf /mnt/iso
Шаг №2. Распаковываем систему
После копирования файлов iso образа нам необходимо найти запакованную систему. В Ubuntu это файл filesystem.sqashfs, находящийся в папке casper. Этот файл — и есть вся операционная система, сжатая в «архив». В iso других ОС название и расположение файла может отличаться.
# создаем папку для распаковки системы mkdir /home/$USER/livecd/rootfs # распаковываем sudo unsquashfs -f -d /home/$USER/livecd/rootfs path/to/iso/casper/filesystem.squashfs
Шаг №3. Выполняем вход в систему и настраиваем ее
В папке rootfs у нас уже лежит операционная система. Теперь мы можем запустить ее в окружении chroot. По сути мы загружаем новую ОС в терминале, условно говоря. Если мы сейчас так и поступим, то все изменения нам придется вносить вручную. Вариант не лучший, на мой взгляд.
Предложу создать автоматизированный скрипт установки пакетов программ и настроек.
Маленькое отвлечение.
1. При настройке системы в chroot не рекомендую обновлять приложения (apt upgrade или pacman -Syu). Иначе придется возиться с настройкой нового ядра (точнее initramfs). Если умеете — в путь. Я предпочитаю не усложнять.
2. Чтобы перенести настроки рекомендую воспользоваться ленивым вариантом. Загружаетесь в нужной системе, можно даже в LiveCD. Выполняем настроки системы и приложений. После этого большинство из них можно найти в папке .config личного каталога пользователя. Просто находим файлы настроек приложений копируем их в любой каталог, я скопировал в каталог files. Туда же отправляем картинки, обои например, если вы их используете.
После «сбора» всех необходимых настроек, нам нужно знать куда их разместить. В Linux есть «чудо-католог» /etc/skel (от слова skeleton). Когда создается новый пользователь, файлы лежащие в этом каталоге будут закидываться в личную папку пользователя. Это нам и нужно. Просто создадим подкатологи /etc/skel/.config и другие если нам они нужны и скопируем настройки сюда. Таким образом, при создании любого пользователя в личную папку будут копироваться все наши настройки.
Далее собственно код с подробными комментариями.
# создаем скрипт настроек системы sudo tee /home/$USER/livecd/rootfs/settings.sh /var/lib/dbus/machine-id # устанавоиваем нужные приложения apt update apt install -y APP1 APP2 # удаляю лишнее apt -y purge sylpheed apt -y purge pidgin apt -y purge xpad apt -y purge transmission* transmission-gtk transmission-qt apt autoremove -y # распаковываю из архивов свои темы и иконки tar -xzf /files/win-10-ico.tar.gz -C /usr/share/icons/ tar -xzf /files/themes.tar.gz -C /usr/share/themes/ ## Обновляем кэш иконок, шрифтов gtk-update-icon-cache /usr/share/icons/win-10-ico/ fc-cache -vf # Сначала создаем папки для настроек в /etc/skel mkdir -p /etc/skel/ # После кидаем настройки сохраненные в папке files ранее cat /files/bashrc | tee /etc/skel/.bashrc cat /files/clipit/clipitrc | tee /etc/skel/.config/clipit/clipitrc cp -f /files/shutdown.desktop /usr/share/applications/ ####### И ТАК ДАЛЕЕ, СО ВСЕМИ НАСТРОЙКАМИ ######### # Отключаем ненужные службы из автозапуска systemctl disable apt-daily.timer systemctl disable apt-daily-upgrade.timer systemctl disable apport # удаляю из автозапуска программу проверки обновлений, предпочитаю вручную rm -f /etc/xdg/autostart/update-notifier.desktop # clean and exit apt-get clean rm /var/lib/dbus/machine-id && rm -rf /tmp/* echo '' > /etc/resolv.conf # exit from chroot exit EOF sudo chmod +x /home/$USER/livecd/rootfs/settings.sh # копируем файл resolv.conf чтобы работала сеть в chroot sudo cp -f /etc/resolv.conf /home/$USER/livecd/rootfs/etc/resolv.conf # копируем папку с нашими настройками в корень системы будущего LiveCD sudo cp -rf papka/files /home/$USER/livecd/rootfs/ # монтируем временные файловые системы sudo mount --bind /proc /home/$USER/livecd/rootfs/proc sudo mount --bind /dev /home/$USER/livecd/rootfs/dev sudo mount --bind /sys /home/$USER/livecd/rootfs/sys # запускаем chroot с нашим скриптом sudo chroot /home/$USER/livecd/rootfs su -lc /settings.sh # после завершения работы скрипта "прибираемся" # удалем файл скрипта и папку с настроками sudo rm -f /home/$USER/livecd/rootfs/settings.sh sudo rm -rf /home/$USER/livecd/rootfs/files # отмонтируем временные файловые системы sudo umount -lR /home/$USER/livecd/rootfs/proc sudo umount -lR /home/$USER/livecd/rootfs/dev sudo umount -lR /home/$USER/livecd/rootfs/sys
Краткий комментарий к скрипту.
Чтобы не возиться с правами и владельцами файлов все настройки я переношу через следующую конструкцию: cat /files/файл-настроек | tee /etc/skel/.config/файл-настроек.
Все что написано между EOF . EOF передается цельным потоком в программу tee, которая все это записывает в файл.
Разумеется файл скрипта сокращен, полный вариант смотрите в моем GitHub, ссылка будет в конце статьи.
Вот и все. Далее соберем все обратно.
Шаг №4. Сжимаем кастомизированную систему
Когда мы внесли все необходимые изменения, можно собирать систему обратно в squashfs. Тут никаких хитростей. Удаляем filesystem.squashfs из папки с файлами iso и создаем новый.
sudo rm -f /home/$USER/livecd/iso/casper/filesystem.squashfs sudo mksquashfs /home/$USER/livecd/rootfs/ /home/$USER/livecd/iso/casper/filesystem.squashfs -comp lz4
Шаг №5. Собираем новый iso
ДОПОЛНЕНИЕ С УЧЕТОМ КОММЕНТАРИЕВ
Чтобы LiveCD работал без ошибок и сохранилась возможность установки с вашей сборки, необходимо обновить в исходных файлах iso сумму md5, файл filesystem.size и список установленных пакетов в файле filesystem.manifest.
# создаем filesystem.manifest sudo chroot /home/$USER/livecd/rootfs dpkg-query -W --showformat='$ $\n' | sudo tee /home/$USER/livecd/iso/casper/filesystem.manifest sudo cp -v /home/$USER/livecd/iso/casper/filesystem.manifest /home/$USER/livecd/iso/casper/filesystem.manifest-desktop # удаляем список пакетов установщика для десктопной версии REMOVE='ubiquity ubiquity-frontend-gtk ubiquity-frontend-kde casper lupin-casper live-initramfs user-setup discover1 xresprobe os-prober libdebian-installer4' for i in $REMOVE do sudo sed -i "/$/d" /home/$USER/livecd/iso/casper/filesystem.manifest-desktop done # обновляем файл filesystem.size printf $(sudo du -sx --block-size=1 /home/$USER/livecd/rootfs | cut -f1) > /home/$USER/livecd/iso/casper/filesystem.size # считаем md5 hash сумму cd /home/$USER/livecd/iso sudo rm md5sum.txt find . -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt
Здесь есть одна тонкость. В зависимости от вашей хостовой системы путь к файлу isohdpfx.bin может отличаться. В Ubuntu он в каталоге /usr/lib/ISOLINUX, в Manjaro /usr/lib/syslinux/bios (если не ошибаюсь).
В коде ниже смените ISO_NAME во второй и предпоследней строках на свои названия вашей сборки.
sudo xorriso -as mkisofs \ -r -J -V "ISO_NAME" \ -b isolinux/isolinux.bin \ -c isolinux/boot.cat \ -no-emul-boot \ -partition_offset 16 \ -boot-load-size 4 \ -boot-info-table \ -isohybrid-mbr "/usr/lib/ISOLINUX/isohdpfx.bin" \ -o /home/$USER/ISO_NAME \ /home/$USER/livecd/iso
По итогу вы получаете свой кастомизированный LiveCD Ubuntu за 5 шагов. Все приведенные выше коды собраны мной в скрипты, которые вы можете взять на github.