неделя, 15 май 2011 г.

TinyCore на ext партишън на USB (и не само)

Идеята на този вид инсталация е да имате възможност за boot на tinycore който сте променили по ваш вкус или пък сте оставили в оригиналният му вид.
Това което можете да постигнете е:
- persistance
- минимална употреба на ram
- възможност за предварително интегриране на пакети и настройка в tinycore

Стъпка по стъпка:
1. Изтегляме си последната версия на tinycore
2. Променяме дистрибуцията по наш вкус:
    - отваряме iso файла:
      mount -o loop tinycore-current.iso /mnt/
    - копираме съдържанието в предварително създадена за целта директория (аз съм я кръстил newiso)
      cp -R /mnt/* /home/peach/newiso
    - създаваме си директория tce в newiso (използва се за поставяне на пакети и конфигурация на поведението при зареждането на пакетите)
    - създаваме директория в tce с име optional и вътре поставяме пакетите (с разширение tcz - пакети можете да намерите в http://distro.ibiblio.org/tinycorelinux/3.x/tcz/  - само имайте грижата да поставите и депендънситата на избраните пакети)
    - в директорията tce поставяме файловете:
onboot.lst в който описваме пакетите които искаме да се инсталират при boot
copy2fs.flg - с празно съдържание ако искаме всички пакети да се копират в /opt (ЗАБЕЛЕЖКА: в зависимост от последващата конфигурация /opt може да се намира и в рам-а така че съответният флаг файл е важен ако искаме новото ни tiny да работи и без USB/CDROM/HDD/NFS след като веднъж стартира copy2fs.lst - ако искаме само някой от пакетите да се заредят в трайно в /opt ги описваме тук ( при това положение flg файла не е нужен.
    - за да правим промени по init файла трябва първо да го декомпресираме и разархивираме (направете си отделна директория за него пр. /home/peach/newinit)
cp /home/peach/newiso/boot/tinycore.gz /home/peach/newinit
cd /home/peach/newinit
gunzip tinycore.gz
cpio -idm < tinycore
.
правим промени каквито ни се искат
.
и идва ред да пакетираме init-a
find ./ | cpio -H newc -o > ../tinycore2
gzip tinycore2

копираме новият инит на мястото на стария  в boot
cp /home/peach/tinycore2.gz /home/peach/newiso/boot/tinycore.gz
до тук сме променили инита като сме му сложили конфигурации и файлове каквито са ни нужни, също така сме поставили пакети които ще се зареждат (или не при стартиране).
В този момент ако искате да произведете iso за да го напишете на диск или да използвате UNetBootin за създаване на boot девайс трябва да изпълните следната команда:
mkisofs -l -J -V TC-custom \
-no-emul-boot -boot-load-size 4 -boot-info-table \
-b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat \
-o TC-remastered.iso newiso


С това получаваме новото iso с промени и пакети по наш вкус.

3.Тази точка покрива направата на boot девайс по старомодният начин което дава определени екстри като лесен механизъм за промяна на пакетите и като цяло boot процеса

Оригинален източник: http://fragilematter.blogspot.com/2010/09/installing-tiny-core-linux-on-usb-drive.html

3.1 подготвяме диска/USB-то
fdisk /dev/sdX
 C - спира dos compatiability
 U - започва да показва всичко в сектори вместо цилиндри
 О - правим нов partition table
 N - нов partition
 P - primary
 1 - първи
 Т - тип на партишъна
 83 - linux тип
 А - active
 1 - нашият (става активен)
 W - записваме промените (ще ви изтрие всичко на медията която ползвате така че ако има нещо важно по-добре си направете backup) 


Сега след като имаме партишън е време да му направим файлова система ext2 отгоре:
mkfs.ext2 -L "tc" /dev/sdX1
правим файлова система с лейбъл tc - това можете да промените по ваш вкус

за да сме сигурни че ядрото е наясно с промените монтираме и демонтираме партишъна 
 mount /dev/sdX1 /mnt
 eject sdX1 или umount /dev/sdX1


Ако сте следвали предишните стъпки за промени по iso-то или поне копирането му в директория newiso следва да преместим нещата съдържащи се в него на подготвеният партишън (който отново ще монтираме - за целта предполагам че ващата дистрибуция автоматично го е монтирала в /media/tc)

cp -R /home/peach/newiso/boot /media/tc/
cd /media/tc/boot/
mv isolinux extlinux
mv extlinux/isolinux.cfg extlinux/extlinux.conf
rm extlinux/isolinux.bin

cp -R /home/peach/newiso/tce /media/tc/ (ако не сме я създавали в newiso можем да я направим директно в /media/tc)

mkdir /media/tc/opt

blkid -s UUID /dev/sdX1 (това ще ни даде стринг във вида /dev/sdX1: UUID="{some long string})
копирайте частта UUID="{some long string} защото ще я използваме.

Отворете extlinux/extlinux.conf в любимият си текстов едитор и на реда започващ с  append initrd= накрая добавете
 waitusb=5 tce=UUID="..." restore=UUID="..." home=UUID="..." opt=UUID="..."
 
 като на мястото на UUID="..." сложете стринга копиран след изпълнението на blkid командата.

тези опции указват:

waitusb=5 - ще изчака 5 секунди преди да потърси usb-то (това се налага в случай че устройството не се инициализира достъчно бързо)


tce=.. - къде е tce директорията
restore=.. - къде tinycore ще запазва рестор файловете си
home=... - същото за home директорията
opt=.. - и opt директорията

имайте предвид че ако искате дистрибуцията да се зарежда изцяло в паметта трябва да махнете restore,home и opt опциите и да добавите copy2fs.flg в tce директорията

можете да добавите и други опции (описани са в  boot/isolinux или boot/extlinux ако вече сте я преименували във файловете f2, f3 и f4)

почети сме готови остава само да си гарантираме че устройството ще е boot-ващо

extlinux -i /media/tc/boot/extlinux (изисква инсталиран пакет syslinux)
cat /usr/share/syslinux/mbr.bin > /dev/sdX - инсталираме MBR на устройството (файла mbr.bin може да се намира на друго място във вашата дистрибуция)

С това сме готови остава единствено да демонтираме устройството и да запалим от него
eject tc

Успех и честито на притежателите на ново,променено по собствен вкус и с пакети по собствен избор boot-ващо от USB - tinycore. 


Няма коментари:

Публикуване на коментар