Тази статия е своеобразно copy->paste от “Как да накараме Ubuntu 8.04, инсталирано върху флашка да запазва настройките си“, но е променена, така че да се отнася за “Учи Свободен с Убунту“, или за друга дистрибуция базирана на Ubuntu 7.10.

Започваме…

Ако с програмката от тази статия сте си инсталирали „Учи Свободен с Убунту“ върху флаш памет, може би ви се иска някак си да можете да запазвате настройките си и промените които правите по време на работа, дори и след рестарт. За щастие – има как да го направите. В текущата статия ще се спра върху начинът за постигане на това с „Учи Свободен с Убунту“ (който всъщност е базиран на Убунту 7.10, така че инструкциите ще са валидни и за него).

Към настоящият момент тази функционалност е „счупена“ както в 7.10, така и в 8.04 и се налага редактиране на два скрипта в initrd.gz. За ваше щастие обаче, съм подготвил оправен initrd.gz, така че да не ви се налага да редактирате скриптове. Можете да го свалите от тук: initrd.gz (8 MB). Напишете

wget http://learnfree.eu/download/ubuntu-persistent/lfu_1.2/initrd.gz в терминал за да го свалите, ако опитате през браузъра той ще се опита да покаже съдържанието на gz файла, вместо да го свали. Правете така и за останалите gz файлове за които ще стане дума. Можете директно да копирате моят файл върху флашката ви в папка casper (заменяйки вашият), а можете и да следвате инструкциите за да си направите собствен.

Ще опиша целия процес за да можете и вие да го направите. Първо стартирайте компютъра от „Учи Свободен с Убунту“ което сте инсталирали върху флашката.

За по-сигурно, ще работим като root – отворете един терминал и в него напишете:

sudo su Оставете го отворен, тъй като в него ще извършим всички следващи действия.

Първо си създавате една папка в която ще работите:

mkdir -p ~/persistent/initrdСлед това отивате в ~/persistent/initrd и разархивирате там initrd.gz от диска (т.е. флашката, която е монтирана като /cdrom):

cd ~/persistent/initrd
gzip -dc /cdrom/casper/initrd.gz | cpio -i
После отваряте за редактиране файлът ~/persistent/initrd/init:

gedit ~/persistent/initrd/initВ него намирате мястото където пише:

break)
break=premount
;;
esac
и точно над esac добавяте

persistent)
PERSISTENT=yes
root_persistence=casper-rw
home_persistence=home-rw
;;
Крайният вид трябва да е

break)
break=premount
;;
persistent)
PERSISTENT=yes
root_persistence=casper-rw
home_persistence=home-rw
;;
esac
Запазвате файла и го затваряте. Следващата редакция е в ~/persistent/initrd/scripts/casper:

gedit ~/persistent/initrd/scripts/casperОтивате на ред 403, маркирате всичко от него (включително) до ред 417 (включително) и го изтривате. Запазвате файла и го затваряте. Сега трябва да изградите отново initrd.gz:

cd ~/persistent/initrd
find . | cpio -o -H newc | gzip -9 > ../initrd.gz
Сега трябва да копирате изграденият initrd.gz върху флашката. Тук се сблъскваме с един недостатък на това да сте инсталирали Убунту върху флашка – тя се монтира като cdrom и можете само да четете от нея, но не и да пишете. За да заобиколим този проблем, трябва да я монтираме с опция rw. За целта, първо обаче трябва да разберем как точно се казва устройството (дали е /dev/sdb1, /dev/sdc1 и т.н.). Може да го направите като в терминала напишете

mount | grep "/cdrom"Ще ви излезе нещо подобно на

/dev/sdb1 on /cdrom type vfat (ro) Първото което е изписано е името на устройството – в случая е /dev/sdb1.
Сега за да го монтирате в rw режим, трябва да напишете

mount -o remount,rw /dev/sdb1 /cdrom

където заменяте /dev/sdb1 с името на устройството което сте получили от предишната команда.
Така. Сега вече може да копирате initrd.gz:

cp ~/persistent/initrd.gz /cdrom/casper/Това е всичко отнасящо се до initrd.gz.

Сега относно мястото където ще се записват настройките/проментите. Този начин на запазване се нуждае от дял с име casper-rw върху флашката, или от image файл на файлова система ext2/ext3, пак с име casper-rw, намиращ се в основната директория на флашката. За простота и удобство съм избрал втория начин – с помощта на image файл. От размера на този файл зависи с какво свободно пространство ще разполагате за промени/настройки т.е. какво количество файлове ще можете да си записвате в домашната директория на Убунту и в другите директории от файловата система (не в основната директория на флашката).

Ако искате сами да си създадете такъв файл трябва първо да създадете един празен файл с нужната големина. Ако не ви се занимава, може да продължите да четете и да видите откъде може да свалите готов image файл. Както вече разбрахме, флашката е монтирана в /cdrom и е достъпна за запис само за root. Създаваме празен файл с големина 512 MB върху нея:

dd if=/dev/zero of=/cdrom/casper-rw bs=1M count=512След това създавате ext2 или ext3 файлова система в този файл. Аз лично препоръчвам ext2, за да работи по-бързо:

mkfs.ext2 /cdrom/casper-rw -L casper-rwАко искате файловата система да е ext3, използвайте mkfs.ext3 вместо mkfs.ext2.

Ако не ви се пишат команди, съм ви приготвил две готови изображения с големина 256 и 512 MB. Тъй като са празни, съм ги компресирал с gzip, така че са станали с големина няколкостотин килобайта, и са лесни за сваляне:
изображението за 265 MB файлова система: image-256.gz

wget http://learnfree.eu/download/ubuntu-persistent/lfu_1.2/image-256.gzизображението за 512 MB файлова система: image-512.gz

wget http://learnfree.eu/download/ubuntu-persistent/lfu_1.2/image-512.gzСлед като свалите някое от тях обаче, трябва да го разкомпресирате и преименувате на casper-rw. Например, свалили сте image-512.gz в домашната си директория, а флашката ви е монтирана като /media/UBUNTU:

mv ~/image-512.gz /cdrom
cd /cdrom
gunzip image-512.gz
mv image-512 casper-rw
Принципно, трябва да сте готови!

Сега, за да ви се записват настройките (и за да се зареждат вече записаните такива) е нужно само в boot менюто да добавите думичката persistent като параметър на ядрото. За целта при стартиране на boot менюто на флашката маркирайте опцията която обикновено избирате за да стартирате вашето Убунту, но не натискайте Enter, а натиснете Tab.
В долната част на екрана ще се появи текстово поле в което са изписани текущите параметри които се подават на ядрото, а накрая има две тирета .
Добавете интервал след тиретата и след него напишете persistent, така че да стане – persistent. Натиснете Enter, и вашето живо USB Убунту ще се стартира в persistent режим, т.е. ще си запазва и възстановява настройките. Ако не ви се занимава всеки път да пишете, може да редактирате файлът syslinux.cfg от флашката. В него са описани опциите които се появяват в boot менюто. Всяка от опциите от менюто там е описана като menu label ^(име на опцията). Под нея има ред започващ с думата kernel, а след него – с думата append. Именно редът с append ви интересува. Ориентирайте се коя е опцията, която нормално избирате за да стартирате Убунту от флашката (най-вероятно това е първата опция), и на края на редът с apped, след двете тирета добавете интервал и след него думичката persistent. Редът трябва да изглежда примерно така:

append file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.gz quiet splash -- persistentЗаписвате файла и сте готови!

Инсталацията на Убунту върху флашка (поне 8.04, за другите не съм обърнал внимание още), има един недостатък – самата флашка се монтира в /cdrom в режим само за четене т.е. не можете да записвате директно файлове върху нея освен ако не сте с root привилегии. Ще потърся начин да фиксирам този проблем по някое време…

Също така НЕДЕЙТЕ да вадите флашката от компютъра докато от нея е пуснато Убунту. Особено ако сте в persistent режим. Ако го направите, най-вероятно ще „счупите“ (не фатално) файловата система и може да изгубите записани данни.

Имайте предвид че не всичко работи както ви се иска в такъв режим – например, не можете успешно да ъпгрейдвате ядрото, не можете да променяте драйвера за видеокартата (винаги се засича автоматично при стартиране) и т.н. Но като цяло можете да инсталирате всякакъв софтуер и да си работите пълноценно дори и в този режим.

Успех!