Debootstrap: Lenny telepítése meglévő Linux rendszer mellé LVM-re

 ( subchee | 2010. július 27., kedd - 7:47 )

Minap olyan feladat került elém, hogy meg kellett oldanom egy távoli szerveren Debian Lenny telepítését anélkül, hogy elautóznék a szerverhez. A gépen egyébként Ubuntu Lucid Server futott, viszont le kellett cserélnem, mert a Lucid-ban már nem támogatott hivatalosan az OpenVZ és az openvz.org-ról töltött patchsettel leforgatva a 2.6.32-es vanilla kernel meg fagy...

Egy rövid összefoglaló, hogyan csináltam:

lvcreate -L 10G lenny vgroup
#meglévő fizikai köteten meglévő kötetcsoporton hoztam létre egy új kötetet; 10GB bőven elég egy Lenny alaptelepítésnek
mkfs.ext3 /dev/mapper/vgroup-lenny
#lenny esetén NE válasszunk ext4 -et!
mkdir /lenny
mount -t ext3 /dev/mapper/vgroup-lenny
apt-get install debootstrap
debootstrap --arch=amd64 lenny /lenny http://ftp.hu.debian.org/debian
cp -v /etc/resolv.conf /lenny/etc/resolv.conf
cp -v /etc/network/interfaces /lenny/etc/network/interfaces (majd nano /lenny/network/interfaces)
cp -v /etc/hosts /lenny/etc/hosts
echo "proc /proc proc defaults 0 0" >> /lenny/etc/fstab
echo "sysfs /sys sysfs defaults 0 0" >> /lenny/etc/fstab
echo "/dev/mapper/vgroup-lenny / ext3 defaults 0 0" >> /lenny/etc/fstab
echo "/dev/mapper/vgroup-swap none swap defaults 0 0" >> /lenny/etc/fstab
mount -o rbind /dev /lenny/dev
mount -o rbind /proc /lenny/proc
chroot /lenny
passwd root
#adjuk meg a root jelszavát
hostname HOSTNÉV 
#vagy szerkesszük a /etc/hostname fájlt
hostname --fqdn
#így meggyőződünk a hostnévről
echo "deb http://ftp.hu.debian.org/debian lenny main contrib non-free" > /etc/apt/sources.list
echo "deb http://security.debian.org lenny/updates main contrib non-free" >> /etc/apt/sources.list
apt-get update
apt-get upgrade
apt-cache search linux-image
apt-get install linux-image-2.6.26-2-amd64 linux-headers-2.6.26-2-amd64 
#vagy ha van frissebb imidzs és header, telepítsük azt
#ha kérdezi, hogy megszakítsa-e a telepítést amiatt, hogy initrd-s kernelt telepítünk, válaszoljunk nemmel
#NE engedjük, hogy telepítsen LILO -t vagy GRUB-ot
apt-get install locales ssh wget lvm2
#itt figyeljünk arra, hogy az lvm2 konfigurálásakor nem panaszkodik-e arra, hogy a /dev-ben vagy a /proc-ban nem tud megnyitni valamit
#ha panasz van, akkor lépjünk ki a chroot -ból, nézzünk meg, hogy jól bindoltunk-e mindent (/dev/shm, /dev/pts is kellhet)
#majd a chroot-ba visszalépve futtassuk a dpkg-reconfigure lvm2 parancsot és figyeljük a kimenetét megint
dpkg-reconfigure locales 
#generáljuk le a en_US.UTF-8, hu_HU és a hu_HU.UTF-8 lokalizációkat legalább és akár ki is választhatjuk alapértelmezettnek a hu_HU.UTF-8 -at
update-initramfs -u /boot/initrd.img-2.6.26-2-amd64
logout
cp /lenny/boot/* /boot
update-grub

Igazából ez csak azért érdekes, mert LVM-re kellett a Debian Lenny-t telepíteni és azért kellett sokáig szopni a kisujjam, hogy rájöjjek, a virtuális gépen amikor megcsináltam a debootstrap-os telepítést, akkor újraindulás után a Debian miért nem látja a root partíciót. Hát azért, mert az lvm2 csomagot telepíteni kell és újragenerálni az initrd imidzset és így lőn boldogság, csinálhatom is élesben. Ezt nem találtam a neten (az LVM-es gond konkrét megoldását), gondoltam megosztom. :)

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Talan kevesebb a hibalehetoseg, es vadonatuj, oprendszer nelkuli gep eseten is mukodik a kovetkezo modszer (jopar eve alkalmaztam egy 600+ km-re levo gepnel):

- egy sajat (helyi) szamitogepre felinstallalom a Linuxot, beallitok mindent, ami kell
- lementem az egeszet (.tar.bz2), felteszem ftp szerverre
- csinalok egy bootolhato CD-t, amit a tavoli gepen elinditanak, belepek ssh-val, letoltom az ftp szerverrol a lementett rendszert, lilo, reboot.

Ennel a modszernel annyibol nyugodtabb vagyok, hogy ha valamit elrontok a tavoli gepen, akkor meg mindig elindittathatom a gepet a boot CD-rol, es ki tudom javitani a hibat.

ilo, rmm, semmi?

Esetleg a kovetkezo hasonlo cikkedben lehetne csak a cmdline a 'code' tagek kozt, mert igy nehezebben olvashato. Meg nekem logikusabbnak tunik a magyarazatot a parancsok elott elhelyezni, pl:

- Meglévő fizikai köteten meglévő kötetcsoporton hoztam létre egy új kötetet; 10GB bőven elég egy Lenny alaptelepítésnek:

lvcreate -L 10G lenny vgroup

Amugy nagyon hasznosak a hasonlo komplett leirasok, koszi!

És vajh wikibe is bekerült, vagy csak ide?

Ott van fenn a hupwiki doboz... meg nincs benne.

Okés, hamarabb lesz a magyarázat és aztán a parancs. Bocs, hogy nem szedtem szét a kommenteket a code tagtől külön!

Érdekes megoldás. Jómagam az előbb említett tar.gz-s módszert alkalmazom aktívan desktop-okhoz. Ennek az LVM-es módszernek az az előnye, hogy nem kell a particiókkal szórakozni. Másrészt nem látom milyen lehetőség van rollback-re. (A tar.gz-s módszernél egyszerűen bennhagyja az ember a grub config-ban az előző op rendszer bejegyzéseit is.)

Ezzel a módszerrel is megmarad az előző oprendszered telepítve és nem muszáj az update-grub parancsot használni, hanem kézzel is fel lehet venni a Lenny megfelelő bejegyzését a menu.lst -be vagy a grub.cfg -be (vagy utóbbi esetén ugye a /etc/grub.d/40_custom fájlba és úgy update-grub2). Ha nem jó valami a Lenny -vel, simán bootolható még az előző rendszer. :)

Köszi, az update-grub sort átugrottam, valahogy a /boot felülírásával egésznek tűnt a történet :)

subschee írta:
echo "deb http://ftp.hu.debian.org/debian lenny main contrib non-free" > /etc/apt/sources.list
echo "deb http://security.debian.org lenny/updates main contrib non-free" >> /etc/apt/sources.list

ebbol eleg a masodik, ha a debootstrap-ot --components=main,contrib,non-free kapcsoloval inditod.

A hostname kiadasa keves, mindenkepp meg kell szerkeszteni a /etc/hostname file-t, hogy maskor is magara talaljon (pl. reboot utan)

Az fstab-ba lehet symlinkeket is irni, elvben ugy is meg fogja talalni (/dev/vgroup/lenny)

A swap bejegyzes opcios reszehez en be szokom rakni, hogy 'sw' (tehat sw,defaults). Megszokas.

Kimaradt a hosts file megszerkesztese. Ha a hostname nem egyezik az eredeti host nevevel, par progi nem fogja megtalalni onmagat. Ez nagyon fontos dolog, tok rejtelyes bugokat tud okozni.

A proc-ot es a sysfs-t etch ota mar biztosan nem kell a fstab-ba belerakni, automatikusan mountolodnak.

Az utolso apt-get install -lal tedd fel a man es a less csomagokat is, mert furcsan fogsz nezni utana (a debootstrap folyamatnak ezek nem reszei vmiert).
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

A hostname kiadasa keves, mindenkepp meg kell szerkeszteni a /etc/hostname file-t, hogy maskor is magara talaljon (pl. reboot utan)
+1, ez valoban kell.

Kimaradt a hosts file megszerkesztese. Ha a hostname nem egyezik az eredeti host nevevel, par progi nem fogja megtalalni onmagat. Ez nagyon fontos dolog, tok rejtelyes bugokat tud okozni.
igy igaz. egy

127.0.0.1 localhost

bejegyzes tobb mint kotelezo" es az elsodleges hostname-t is erdemes beallitani a default ip-re.

Az elsodleges hostname-t a 127.0.0.1-hez kell irni, a default IP-re mar DNS-bol is vissza tud talalni. A lenyeg, hogy a FQDN es a rovid hostname is benne legyen
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

Hát azért, mert az lvm2 csomagot telepíteni kell és újragenerálni az initrd imidzset és így lőn boldogság, csinálhatom is élesben
szintugy. ha pedig lvm helyett/mellett raid-re telepitesz, akkor az mdadm csomagot is fel kell tenni. kulonben nagy a szopo es az ertetlenkedes (legalabbis a bootfolyamat valami nagyon istentelen helyen all le, valami teljesen random es ehhez-semmi-koze-sincs uzenettel, nekem is csak sokadszorra sikerult megjegyezni, hogy biza az is kell).

egyebkent meg valoban jo moka igy installalgatni, tisztan, parancssorbol :) mar az idejet sem tudom mikor hasznaltam utoljara "rendes" installfeluletet.

Mondjuk, amiota a kernel automatikusan ossze tudja lapatolni a RAID-eket, azota fogalmam sincs, miert kellhet az mdadm - a monitorozason kivul.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

Nem tudom, mennyire distro fuggo, de pl ubinal kozel sem trivialis, hogy osszerakja, ha az initrd nincs ugy update-elve, hogy mar egy mdadm.conf letezik elotte.
Vagy ha live cd-rol bebootolsz egy elvileg raid-es gepen, akkor sem rakja ossze, csak ha telepitesz mdadm-ot, es utana nyomsz egy assemble scan-t.

Én a dmraid csomagot telepítettem még egy ilyen deboostrap -os folyamatban, hogy az alaplapi fakeraid -et lássa bootoláskor a Debian. De ezt szándékosan kihagytam a leírásból, mert értelmes ember állítólag vagy igazi raid -et használ, vagy sw raidet, de semmiképp sem alaplapi fakeraid -et. :)

+1
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

Debiant nem lehet remote sshn telepíteni?
--
Discover It - Have a lot of fun!

Ha lehet is... a halozati konfigig biztos el kell vinni, akkor meg mar annyira mindegy, nem?
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

Hát nem egészen... Suset lehet úgy, hogy grub menübe "ssh=1 sshpassword=valamijonehez". Elindul az alaprendszer, hálókártya beállítást megkérdi: DHCP vagy fix ip megadása. Beállítod, OK, és akkor you can login via ssh:

Belépsz ssh -X-szel, elindítod a telepítőt, és ugyanúgy végigviszed, mintha a gép előtt ülnél.
Erre a pár dologra még az operátor, vagy akár a takarítónő is képes, hogy megcsinálja :). Nekem volt már, hogy a telepítp DVD írását bonyolultabb volt elmondani, mint ezt :).
--
Discover It - Have a lot of fun!

>> Erre a pár dologra még az operátor, vagy akár a takarítónő is képes, hogy megcsinálja :)
Túl sokat feltételezel. :)
1) nem az ő dolga 2) nem ért hozzá

Én nem endjúzer szapportos vagyok, hanem szerveres rendszergazda, mégis néha találkozok olyan emberekkel, akik állítólag értenek hozzá, de azt már nem tudom nekik elmagyarázni, hogy pl. az új fájlszerveren nem Netware van és ezért nem is működnek az általa ismert Netware toolok, hanem Open Enterprise Server és ez Linux alapú. Erre csak annyit kérdez, "hádde az is Novell, akko' mé' nem megy??'". Meg még sok ilyen van... "user: Nem tudok belépni a rendszerbe." "én: Melyik rendszerbe?" "user: Hát az informatikaiba, azért téged hívtalak!"

Szóval egy grub konfigfájl (vagy boot paraméter induláskor) megszerkesztetése távolról valaki mással nehezen járható út. Akkor már inkább IP konzol, ha van rá lehetőség, ha meg nincs, akkor mást kell kitalálni. Legrosszabb esetben személyesen odamenni. :)

Meg a szemelyes megtekintes a legtutibb. Akkor tuti nem szakad meg, meg tuti, hogy amit lenyomsz, az el is jut a gephez.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

Meg lehet csinalni, hogy ssh-n felrakod egy chrootba, atmigralod a regi rendszer dolgait, aztan atbillented. De.. igy kvazi live-migralni nempicit melyviz.

Nem is nagyon melyviz. Van hova visszaterni, ha valami balul sul el.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

Ez hasznos volt, köszi!

+1

bookmark