Netbook-live

Материал из ALT Linux Wiki

Сборка livecd/liveflash от gns@.

Рабочее окружение: LXDE

Ядро: pure-emerald 3.6-rc7

Актуальная стабильная версия: 6.0.8 на базе Шестой Платформы (с поддержкой сенсорного ввода). Где взять: собрать самому либо спросить gns@ или mike@.


Дистрибутив ориентирован на профессионального пользователя и содержит большой набор ПО для повседневной работы, а также средства диагностики и восстановления. Механизм live.hooks позволяет модификацию рабочей среды без пересборки.

Проект начинался как попытка получить достаточно универсальную и при этом компактную систему на нетбуке eee 701. Несколько лет используется автором на разнообразных нет/ноутбуках как основная и единственная рабочая система.

С самого начала предполагалось, что это будет live с сжатым read only корнем. Такой подход имеет свои преимущества : после любых манипуляций и экспериментов достаточно перезагрузиться и получить чистую систему. Во-вторых, размер образа долгое время поддерживался около 300-400 мб благодаря lzma сжатию (сейчас ~650).

Очевидный недостаток - невозможность фиксации изменений и настроек - компенсируется возможностью писать хуки (оригинал), выполняемые при загрузке.

Загрузить

http://beta.altlinux.com/p6/netbook-live/

NB. ISO НЕ гибридный и предназначен только для CD. Для флешек предназначен IMG, а в развернутом виде образ лежит для знающих, что с ним делать.

История изменений

Установка

[README.bootflash], [README.install]

TODO: перенести тексты на вики.

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

Из образа live-flash.img

Публикуемые на FTP образы *live-flash.img представляют собой образ с MBR и таблицей разделов, подготовленный с использованием makebootflash. Записать его на флешку можно командой:

dd if=altlinux-6.0.0_RC1-netbook-i586-live-flash.img of=/dev/sdb

Обратите внимание, что нужно использовать блочное устройство (в примере: sdb) а не раздел на нём (sdb1).

Создание образа с использованием makebootflash

Если директория с дистрибутивом находится по адресу /path/to/eeepc-live/, а флешкой является устройство /dev/sdb, Вы можете

  • записать напрямую в устройство:

makebootfat -v -L EEELIVE -m /usr/lib/syslinux/mbr.bin -b /usr/lib/makebootfat/x86/ldlinux.bss -c /usr/lib/makebootfat/x86/ldlinux.sys -Y -Z /path/to/eeepc-live/ -o /dev/sdb

  • создать img файл

dd if=/dev/zero of=eeepc-live.img bs=1M count=470 makebootfat -v -L EEELIVE -m /usr/lib/syslinux/mbr.bin -b /usr/lib/makebootfat/x86/ldlinux.bss -c /usr/lib/makebootfat/x86/ldlinux.sys -Y -Z /path/to/eeepc-live/ -o eeepc-live.img

А затем, записать его: dd if=eeepc-live.img of=/dev/sdb

Обратите внимание, что нужно использовать блочное устройство (в примере: sdb) а не раздел на нём (sdb1). Образ, создаваемый makebootfat, уже содержит таблицу разделов и MBR.

Вручную, с использованием syslinux

  • Необходимо скопировать все содержимое корневой директории на флешку
  • Установить загрузчик syslinux

Из iso-образа при помощи unetbootin (не рекомендуется)

  • Запустите unetbootin, укажите iso-образ и флешку, на которую следует установить систему. Остальное сделает unetbootin.

Для подготовленных пользователей

  • Используйте любой загрузчик, который хотите на usb устройстве или на жестком диске
  • Поместите файлы vmlinuz и full.cz в то место, где загрузчик сможет их найти
  • Поместите eeelive на любой носитель
  • В конфигурационный файл загрузчика, например в grub.conf, поместите следующие строки:
   title ALT Linux nblive-6.0.2
     kernel /boot/alt0/vmlinuz live fastboot lowmem i915.modeset=1 stagename=/eeelive automatic=method:disk,label:FLASHDSK
     initrd /boot/alt0/full.cz


(замените метку FLASHDISK, меткой файловой системы где находится файл eeelive)

После загрузки, файловая система смонтируется как /image. Так же, там может находится директория live-hooks.d содержащая скрипты для запуска во время загрузки.

Инсталляция на диск

Часто поднимается вопрос "Могу ли я инсталлировать дистрибутив на жесткий диск?"

Ответ: "Да, это возможно. Однако, хотя система и будет загружаться, она будет все равно "живой""

Вопрос: "Как инсталлировать дистрибутив как обычную, постоянную систему?"

Ответ: "Это невозможно. Это "живая" система. Так и задумано. Основаная идея такова - Вы можете играть с системой и сломать ее, но после перезагрузки Вы получите чистую, полнофункциональную систему. Мне было нужно именно это и я это сделал.

Частично идея была навеяна дистрибутивом Xandros, который шел прединсталлированным на Asus EeePC 701 где / являлся файловой системой aufs, доступной только на чтение на первом разделе и веткой с чтением и записью на втором разделе. Для восстановления исходного состояния, достаточно было отформатировать раздел, доступный на чтение и запись. Но я пошел дальше и принял во внимание обновление основной системы, которое было бы невозможно или возможна с ошибками на имеющемся разделе, доступном для чтения и записи.

Однако, некоторое постоянство могло бы быть полезным, по крайней мере Вам нужены сохраненные профили firefox, thunderbird, pidgin. Вы можете захотеть сохранить всю директорию /home и это возможно - смотрите [README.hooks]

Я работаю следующим образом:

На SSD носителе, есть раздел размером в 1GB, где храняться full.cz vmlinuz и загрузчик, загружающий vmlinuz с initrd full.cz и пропускающий командную строку, необходимую для для загрузки из образа eeelive.

Далее, у меня есть куча небольших скриптов, в live.hooks - они бесполезны для всех, кроме меня - это моя небольшая персонализация. Потом у меня монтируется директория /home, размером в 2GB, при помощи этих хуков. Смотрите примеры и вики.

Когда у меня появился 1215N в дополнение к моему 901, я изменил подход: Теперь все мои данные находятся на зашифрованном при помощи LUKS, usb флешке, размером в 8GB. Когда я его вставляю и разлочиваю, он монтируется в /media/m8gb, после этого я вызываю скрипт /media/m8gb/prepare, который развертывает мою конфигурацию vpn, wifi и 3G соединение для NetworkManager, так же он добавляет ключи к ssh агенту и разворачивает /media/m8gb/home.skel поверх /home/altlinux.

Так же, существует /media/m8gb/profiles с encfs (ага, encfs поверх LUKS, просто для детализации) Другой скрипт /media/m8gb/mount-me монтирует encfs оттуда в домашнюю директорию firefox, .config/purple и thunderbird.

Когда я заканчиваю, я размонтирую encfs, лочу LUKS и вынимаю флешку.

Важен тот факт, что $HOME виртуальный и эфемерный. Единственными вещами, требующими "онлайн" обновления являются профили mozilla, конфиги или логи jabber и ~/work.

Всю остальную конфигурацию, которую мне надо сохранить, я копирую в /media/m8gb/home.skel. Например, конфиги irssi и .ssh/config.

Поэтому, я могу работать с любым моим ноутбуком, с легкостью переключаясь между ними.

Конечно, у меня есть второй ssd носитель, емкостью 16GB в 901 модели и диск на 250GB в 1215. Первое, о чем я подумал, я должен аккуратно разделить мою работу и... все остальное. Поэтому, вся моя работа на флешке, а диски для хранения музыки, фильмов и тому подобного. Так же, у меня хранится частичный клон сизифа на 1215N. Иногда я использую его для сборки пакетов и образов.

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

Разумеется, Вы можете сами придумать, как управляться со своим добром.

Загрузка

По идее, "оно всё само" (c). В некоторых случаях может понадобиться отключать KMS или загрузку модулей.

Вход в систему: логин altlinux, без пароля.

Обновление

Если вы уже использовали eeepc-live, нет необходимости полностью перезаписывать загрузочную флешку. Достаточно обновить ровно три файла:

 eeelive
 syslinux/alt0/full.cz
 syslinux/alt0/vmlinuz

Также с одного носителя можно загружать несколько разных версий eeepc-live. Например, если вы хотите просто попробовать релиз 311 не замещая используемую версию:

 mkdir syslinux/602

скопируйте из нового образа файлы full.cz и vmlinuz в syslinux/311, а eeelive как eee311 (вот именно для таких случаев на ftp лежит, кроме iso и img, развёрнутый образ). В syslinux/syslinux.cfg добавьте секцию:

 label eeepc-new
   menu label ^2) Boot ALT Linux Netbook-Live 6.0.2
   kernel 602/vmlinuz
   append initrd=602/full.cz live fastboot stagename=602 lowmem automatic=method:disk,label:PENDRIVE vga=normal splash quiet

(вместо PENDRIVE - label вашей флешки)

Версионирование

В каждый момент существуют stable, testing, и current.

Версия, маркированная как stable, обычно испытывалась не менее недели. В общем, старое и засохшее - зато надёжное.

Current это то, на чём сейчас сидит gns@ на eee 901 / 1215N.

Тестинг это тестинг. Обычно через день или два после выпуска он становится current.

NB. Каждый релиз собирается на базе актуального на этот день Сизифа.

Suspend to disk

Начиная с 3.1.1 (Apr 20 2011) система умеет просыпаться из hibernate.

Пересборка

Сборка дистрибутива полностью определяется профилем mkimage и базовым репозитарием. Для самостоятельной пересборки (например, добавить XFCE, TeX, перламутровые пуговицы, или выкинуть ненужное), достаточно сделать четыре простых действия. Весь необходимый для этого инструментарий есть в самом дистрибутиве.

Четыре шага на пути к успеху

1. Склонируйте[1]репозитарий /people/gns/packages/liveflash.eeepc.git с git.altlinux.org:

   git clone git://git.altlinux.org/people/gns/packages/liveflash.eeepc.git

или

   git clone http://git.altlinux.org/people/gns/packages/liveflash.eeepc.git

или, если у вас есть ssh доступ:

   ssh git.alt clone /people/gns/packages/liveflash.eeepc.git
   git clone git.alt:/people/yourname/packages/liveflash.eeepc.git
   cd liveflash.eeepc
   git checkout p6

Также, начиная с версии p6-beta20110801-1, загрузочный образ содержит профиль из которого был собран. Он находится в /image/profile.tar.bz2.

2. проверьте свою конфигурацию apt. В sources.list должны быть указаны пути/url к ближайшему доступному зеркалу Сизифа (или бранча p6, если используется Шестая Платформа). Сборка на других репозитариях не гарантируется.

3. по желанию, добавьте свои пакеты в eeelive/packages.d/live. Или создайте файлик типа eeelive/packages.d/feat-custom, его нужно будет вписать в eeelive/Makefile рядом с остальными feat-XXX.

4. скажите make

5. ....

6. PROFIT!

Где работает

Примечания

  1. Размещать профиль для сборки следует под $HOME или $TMP, см. /etc/hasher-priv/system