Monday, February 2, 2009

Gentoo Experiment

Ukol:
Naistalovat Linux z jineho linuxu a spustit ho pomoci kvm.

Kroky:
  1. Vytvorit obraz
  2. Naformatovat obraz na dve casti (/,tmp)
  3. Nainstalovat system
  4. Spustit

Ad 1.

Vytvoreni 4GB obrazu.
dd if=/dev/zero of=/home/slune/Image/gentoo.img bs=1M count=4096 .

Ad 2.

Nejjednodussi zpusob je pouzit mkfs.ext3 /home/slune/Images/gentoo.img.
Tim sice vznikne pripojitelny a zapisovatelny obraz, ale pro fdisk naprosto nepozitelny (vyzaduje block device).
Zpusob jako toto obejit vede zrejme losetup /dev/loop1 /home/slune/Images/gentoo.img a fdisk /dev/loop1. Navody zde a zde.
Po vytvoreni struktury fdiskem zkoukneme jak nam to vypada

fdisk -ul /dev/loop1

Disk /dev/loop1: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders, total 8388608 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x2cdb556f

Device Boot Start End Blocks Id System
/dev/loop1p1 * 63 6313544 3156741 83 Linux
/dev/loop1p2 6313545 8385929 1036192+ 83 Linux

Aby jsme mohli disky naformatovat musime je nejdriv pripojit.
(63*512)=32256
(6313545*512)=
3232535040

Pripojime vytvorene disky
losetup -o 32256 /dev/loop2 /dev/loop1
losetup -o 3232535040 /dev/loop3 /dev/loop1

Pozn:
Prvni disk se ale pripoji s velikosti celeho obrazu. Zrejme je potreba urcit i horni velikost.
Nejak takhle
losetup -o 32256 --sizelimit 3232502272 /dev/loop1 /dev/loop0. Pokud jsem to neudelal
mkfs mi pak "spatne" naformatoval system (nastavil spatnou velikost disku).


Naformatujeme disky
mkfs.ext3 /dev/loop2
mkswap /dev/loop3

Pozn:
Gentoo potrebuje pro instalaci velke mnozstvi inodu (vice nez 200 000) pro instalaci na mensi
disky je potreba
mkfs.ext3 -N (velke cislo) /dev/loop2.

Pozn:
Je potreba stahnout portage a satge3 viz. link a rozbalit je.
Portage se musi rozbalit do adresare usr.
(Neco takoveho
tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr)

Dalsi krok je pripojeni systemovych adresaru
mount -t proc none /mnt/gentoo/proc/
mount -o bind /dev /mnt/gentoo/dev/

Tady bych to chtel vic prozkoumat

Chroot do noveho prostredi
chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile
# zmena promptu
export PS1="(chroot) $PS1"


Tady bych to chtel taky vic prozkouma

dalsi kroky jsou popsany v gentoo wiki.

Pokracovani stahneme si nejaky kernel(treba vanilla) rozbalime do
/usr/src/.
Udalame link ln -s /usr/src/neco /usr/src/linux (nebo jsme liny a emergneme celou tu potvoru
emerge vanilla-sources).

A ted troska srandy
cd /usr/src/linux

make menuconfig

Zkusime nastavit vse co je potreba coz se nemuze nikdy na poprve povest.

Instalace zprasenho kernelu
make && make modules_install

Poznamka pokud kompilujeme x86 na x64 pak je treba make ARCH=i386

Tento postup opakujem tak dlouho dokud nam nenabehne system (dost dlouho)

Insalace grubu

Grub potrebuje k zivotu nekolik souboru.
  1. stage1
  2. stage2
  3. grub.conf
  4. bzImage kernelu

Stage1 a Stage2 jsou umisteny ve Fedore tady /usr/share/grub/ a nakopirujeme je do /boot/grub/

grub.conf muze vypadat treba takto

default 0
timeout 30
title Gentoo
root (hd0,0)
kernel /boot/kernel root=/dev/sda1

bzImage kernelu je v /usr/src/linux/arch/i386/boot. Nakopirujeme ho do /boot/
a prejmenujeme dle libosti treba na kernel.
Instalace Grubu
Momentalne se grub nechce nechat primo naistalovat na loop device. Musime mu tedy trosku pomoci.

grub --device-map=/dev/null


device (hd0) /cesta/k/obrazu
root (hd0,0)
setup (hd0)

A je to hotove ted uz jenom qemu-kvm -m 1024 /home/slune/Images/gentoo.img.

No comments:

Post a Comment