Instalacja Slackware-current na partycji ext4

W tym miejscu zapraszamy Was do współpracy. Czekamy na propozycje, sugestie i rady.
Moderatorzy zatroszczą się o to, by najlepsze teksty trafiły do FAQ.

Moderatorzy: Moderatorzy, Administratorzy

MariuszWWA
Użytkownik
Posty: 180
Rejestracja: 2005-10-31, 21:02
Lokalizacja: Warszawa

Instalacja Slackware-current na partycji ext4

Post autor: MariuszWWA » 2009-03-02, 13:44

Postaram się opisać sposób, w jaki udało mi się postawić system na partycji z systemem plików ext4.

Co nam będzie potrzebne:
1. Dowolna dystrybucja livecd, ze wsparciem dla ext4 (a więc krenel co najmniej w wersji 2.6.28).
Osobiście skorzystałem z Ubuntu 9.04 alpha3. Dostępna jest już wersja alpha5. Polecam.
2. Kernel 2.6.28 (lub nowszy). Jesli chodzi o przygotowanie kernela, to na forum są niezbędne informacje.
Oczywiście obsługę ext4 nalezy wkompilować na stałe. Ja skompilowałem wersję 2.6.29-rc5 i działa bez zarzutów.
3. Grub z obsługą ext4. Ten dostępny w repozytorium /extra niestety nie posiada obsługi ext4. Można samemu nałożyć patch, lub skorzystać z gotowej paczki przygotowanej przeze mnie. Jest to ta sama wersja, która znajduje się w /extra, ale
z nałożonym patchem ext4.
4. Oczywiście płyta Slackware-current i drugi napęd do którego ją włożymy (ewentualnie można pobierać potrzebne
paczki z ftp.slackware.com/pub/slackware/slackware-current lub pobrać nieoficjalny obraz iso slackware-current i zamontować go)

1. Zaczynamy.
1.1 Uruchamiamy livecd.
1.2 Konfigurujemy dostęp do internetu. W moim przypadku internet działał od razu. Nie jest to niezbędne ale na pewno
bardzo przydatne.
1.3 W Ubuntu nie ma domyslnie zainstalowanego programu Midnight Commander, więc zaznaczamy w źródłach oprogramowania repozytorium universe i instalujemy go poleceniem sudo apt-get install mc. Bardzo przydatna rzecz.
1.4 Tworzymy katalog /mnt/slackware, w którym zamontujemy partycję ext4, by zainstalować Slacka.
1.5 Można utworzyć więcej katalogów w /mnt. Przydadzą się jesli zamierzamy zamontować np. partycję z przygotowanym
wcześniej kernelem i grubem.

2. Przygotowanie partycji ext4
2.1 System plikow tworzymy poleceniem mkfs.ext4, np:

Kod: Zaznacz cały

mkfs.ext4 /dev/sda2
Oczywiście po tym zabiegu stracimy wszystkie dane, które znajdują się na formatowanej partycji.
U mnie podział dysku wygląda nastepująco:

Kod: Zaznacz cały

/dev/sda1 swap
/dev/sda2 ext4 partycja główna /
/dev/sda3 ext4 /home
3. Montujemy partycję główną /

Kod: Zaznacz cały

mount /dev/sda2 /mnt/slackware
4.(opcjonalne) Montujemy partycję, na której znajduje się wcześniej przygotowany kernel oraz grub.
Ja wszystkie potrzebne pliki miałem na partycji /dev/sda3.

Kod: Zaznacz cały

mount /dev/sda3 /mnt/home
5. Montujemy płytę Slackware-current. W przypadku Ubuntu, po włożeniu jej do napędu powinna sama sie zamontować w katologu /media/Slackware<coś_tam> Jesli nie mamy drugiego napędu i korzystamy z obrazu iso, montujemy go, np:

Kod: Zaznacz cały

mount -o loop /mnt/home/slackware-current-24_Feb_2009-DVD.iso /mnt/iso
6. pkgtools-12.1.0-noarch-7.tgz
Z paczki slackware/a/pkgtools-12.1.0-noarch-7.tgz kopiujemy skrypt installpkg do katalogu /usr/bin

7. Instalujemy system podstawowy.

Kod: Zaznacz cały

installpkg -root /mnt/slackware /mnt/iso/slackware/a/aaa_base-12.2.0-noarch-1.tgz (itd.)
Jest to tylko przykład i nalezy go dostosować do własnych warunków. Proponuję zainstalować tylko niezbędne minimum i później doinstalowac pozostałe paczki. Oczywiście nie instalujemy paczek z kernelem, bo te z repozytorium Slackware nie obsługują ext4.
Wskazówka: ja wszystkie paczki instalowałem z poziomu Midnight Commandera korzystając ze skrótu klawiszowego Alt+Enter.
Czyli wpisujemy w mc installpkg -root /mnt/slackware i za pomoca tego skrótu wklejamy nazwy paczek kolejno z katologu slackware/a, slackware/ap itd.
Nie zapomnij zainstalować paczki z grubem!

8. Instalujemy jadro.
Teraz do katalogu /mnt/slackware/boot kopiujemy wcześniej przygotowane jądro. U mnie ten katalog wygląda mniej więcej tak:

Kod: Zaznacz cały

lrwxrwxrwx 1 root root      17 2009-03-02 02:04 config -> config-2.6.29-rc5
-rw-r--r-- 1 root root   38592 2009-02-22 01:11 config-2.6.29-rc5
lrwxrwxrwx 1 root root      21 2009-03-02 02:04 System.map -> System.map-2.6.29-rc5
-rw-r--r-- 1 root root  868450 2009-02-22 01:20 System.map-2.6.29-rc5
lrwxrwxrwx 1 root root      18 2009-03-02 02:04 vmlinuz -> vmlinuz-2.6.29-rc5
-rw-r--r-- 1 root root 1654544 2009-02-22 01:20 vmlinuz-2.6.29-rc5
9. Montujemy "pseudo" systemy plików:

Kod: Zaznacz cały

root@ubuntu:~# mount -t proc proc /mnt/slackware/proc
root@ubuntu:~# mount -t sysfs sys /mnt/slackware/sys
root@ubuntu:~# mount -o bind /dev /mnt/slackware/dev
10. Logujemy się do zainstalowanego systemu

Kod: Zaznacz cały

chroot /mnt/slackware /bin/bash
11. Tworzymy plik /etc/mtab niezbedny do zainstalowania gruba

Kod: Zaznacz cały

grep -v rootfs /proc/mounts > /etc/mtab
12. Instalujemy grub w MBR (wg uznania)

Kod: Zaznacz cały

grub-install --no-floppy /dev/sda
Gdy już mamy zainstalowanego gruba w MBR, nalezy utworzyć plik /boot/grub/menu.lst i wyedytować go wg własnych potrzeb. Mój przykładowo wygląda tak:

Kod: Zaznacz cały

# GRUB configuration file '/boot/grub/menu.lst'.
# generated by 'grubconfig'.  Sat Feb 21 18:53:52 2009
#
# The backup copy of the MBR for drive '/dev/sda' is
# here '/boot/grub/mbr.sda.1518'.  You can restore it like this.
# dd if=mbr.sda.1518 of=/dev/sda bs=512 count=1
#
# Start GRUB global section
timeout 0
color light-gray/blue black/light-gray
# End GRUB global section
# Linux bootable partition config begins
  title Linux
  root (hd0,1)
  kernel /boot/vmlinuz root=/dev/sda2 ro video=radeonfb:mtrr:3,ywrap vt.default_utf8=0
# Linux bootable partition config ends
title --- For help press 'c', type: 'help'
root (hd0)
title --- For usage examples, type: 'cat /boot/grub/grub.txt'
root (hd0)
13. Postawowa konfiguracja systemu.
Uruchamiamy narzedzie pkgtool i z menu wybieramy setup. Możemy ustawić:
mouse, netconfig, services, setconsolefont, timeconfig

14. Ustawiamy hasło dla roota (poleceniem passwd)

15. Tworzymy plik /etc/fstab
Oczywiście podaję tylko przykład z mojego systemu:

Kod: Zaznacz cały

/dev/sda1        swap             swap        defaults             0   0
/dev/sda2        /                ext4        noatime,nodiratime   0   1
/dev/sda3        /home            ext4        noatime,nodiratime   1   2
devpts            /dev/pts         devpts      gid=5,mode=620       0   0
proc               /proc            proc        defaults             0   0
tmpfs             /dev/shm         tmpfs       defaults             0   0
16. Slackware jest już zainstalowany i skonfigurowany (oczywiście w podstawowym zakresie)
Teraz wystarczy się wylogować z chroota, odmontować wszystkie systemy plików które montowaliśmy (w pierwszej kolejności /mnt/slackware/proc,sys,dev)
i uruchomić ponownie komputer.

ODPOWIEDZ