UNDER CONSTRUCTION !
Klonowanie Gentoo po SSH
autor : Piotr Brzozowski
- Ustawienia zmiennych dokumentu:
Ustawienia Gentoo klonowanego (Stary):
ip komputera : {text:variable-set}
Ustawienia komputera na który kopiujemy (Nowy):
ip komputera : {text:variable-set}
- Przygotowanie Nowego do kopiowania
Dla ułatwienia komputer z którego będziemy klonować Gentoo nazywam „Starym” a ten docelowy nazywam „Nowym”. Przygotowania mają na celu odpalenie linuxa na Nowym i udostępnienie go w sieci przez SSH.
W tym celu wypalamy LiveCD, (wystarczy minimal CD):
http://src.gentoo.pl/releases/x86/current/installcd/install-x86-minimal-2007.0.iso
Boot-ujemy z niej Nowego, przyznajemy hasło roota i uruchamiamy sshd.
Tu upewniamy się, że Nowy jest dostępny w sieci, ewentualnie ustawiamy wszystko z palca
# ifconfig
Uruchamiamy serweer SSH i potwierdzamy utworzenie klucza:
# /etc/init.d/sshd start
Ustawiamy tymczasowe hasło roota
# passwd
Ze Staregi łącze się po ssh na Nowy:
$ ssh root@ {text:variable-get}
Od tego momentu wszytsko już będzie się odbywało po ssh.
- Tworzenie partycji i systemu plików
Więcej na ten temat :
Laduje moduły obsługi raid-a:
# modprobe raid1 (For RAID 1)
# modprobe raid0 (For RAID 0)
# cd /dev && MAKEDEV md
Taki rozkład partycji zamierzam utworzyć na Nowym:
Na Nowym dziele oba 160G dyski na partycje:
/dev/sda1 * 1 5 40131 83 Linux
/dev/sda2 6 492 3911827+ 82 Linux swap / Solaris
/dev/sda3 493 4140 29302560 fd Linux raid autodetect
/dev/sda4 4141 19457 123033802+ 5 Extended
/dev/sda5 4141 18000 111330418+ fd Linux raid autodetect
/dev/sda6 18001 18600 4819468+ fd Linux raid autodetect
/dev/sda7 18601 19457 6883821 fd Linux raid autodetect
Po partycjonowaniu tworze plik /etc/mdadm.conf przy użyciu mdadm:
# mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 /dev/sda3 /dev/sdb3
# mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 /dev/sda5 /dev/sdb5
# mdadm --create --verbose /dev/md3 --level=0 --raid-devices=2 /dev/sda6 /dev/sdb6
# mdadm --create --verbose /dev/md4 --level=0 --raid-devices=2 /dev/sda7 /dev/sdb7
Sprawdzam jak przebiega synchronizacja :
# cat /proc/mdstat
Ewentualnieaby śledzić proces synchronizacji. Zatrzymaj wciskając CTRL+C
# watch -n1 'cat /proc/mdstat'
To powinno wyglądać podobnie do tego:
Personalities : [raid1] [raid0]
md4 : active raid0 sdb7[1] sda7[0]
13767424 blocks 64k chunks
md3 : active raid0 sdb6[1] sda6[0]
9638784 blocks 64k chunks
md2 : active raid1 sdb5[1] sda5[0]
111330304 blocks [2/2] [UU]
resync=DELAYED
md1 : active raid1 sdb3[1] sda3[0]
29302464 blocks [2/2] [UU]
[==================>..] resync = 94.9% (27819136/29302464) finish=0.3min speed=73657K/sec
unused devices:
Tworze plik /etc/mdadm.conf :
# mdadm --detail --scan >> /etc/mdadm.conf
Tworzenie systemu plików:
# mkfs.ext2 /dev/sda1
# mkfs.ext2 /dev/sdb1
# mkfs.reiserfs /dev/md/1
# mkfs.reiserfs /dev/md/2
# mkfs.reiserfs /dev/md/3
# mkfs.reiserfs /dev/md/4
# mkswap /dev/sda2
# mkswap /dev/sdb2
Montowanei partycji
mount /dev/md1 /mnt/gentoo
cd /mnt/gentoo
mkdir -p boot boot_backup home tmp usr/bin
mkdir -p compile/ccache compile/genkernel compile/portage_tmp
mkdir -p mnt/cdrom media proc sys
mount /dev/sda1 /mnt/gentoo/boot
mount /dev/sdb1 /mnt/gentoo/boot_backup
mount /dev/md2 /mnt/gentoo/home
mount /dev/md3 /mnt/gentoo/tmp
mount /dev/md4 /mnt/gentoo/compile
Klonowanie systemu
Na starym upewniam się, ze /boot jest zamontowany :
# mount /boot
# mount /boot_backup
Na Starym :
$ su
# cd /
# scp /usr/bin/rsync root@ {text:variable-get} :/mnt/gentoo/usr/bin/
# rsync -Saq --numeric-ids --exclude=/home --exclude=/compile --exclude=/mnt --exclude=/media --exclude=/proc –exclude=/sys -e 'ssh -c blowfish' --rsync-path=/mnt/gentoo/usr/bin/rsync / root@ {text:variable-get} :/mnt/gentoo
Kopiuje konfiguracje raid na Nowym :
# mv /mnt/gentoo/etc/mdadm.conf /mnt/gentoo/etc/mdadm.conf_orig
# mdadm --detail --scan > /mnt/gentoo/etc/mdadm.conf
- Należy przejrzeć /etc/fstab, powinien być co najmniej taki
-
/dev/sda1 /boot ext2 noauto,noatime 1 2
/dev/sdb1 /boot_backup ext2 noauto,noatime 1 2
/dev/md1 / reiserfs noatime 0 1
/dev/sda2 none swap sw 0 0
/dev/sdb2 none swap sw 0 0
/dev/md2 /home reiserfs noatime 0 1
/dev/md3 /tmp reiserfs noatime 0 1
/dev/md4 /compile reiserfs noatime 0 1
/dev/cdrom /mnt/cdrom auto noauto,ro 0 0
shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
- Chroot, dev
Przechodze na środowisko chroot, na Nowym :
# mount -t proc none /mnt/gentoo/proc
# mount -o bind /dev /mnt/gentoo/dev
# chroot /mnt/gentoo /bin/bash
# env-update
# source /etc/profile
# export PS1="(chroot) $PS1"
Przed restartem utworz w chroocie devices :
# cd /dev
# MAKEDEV update
- Konfiguracja Nowego
vi /etc/conf.d/hostname
vi /etc/hosts
/etc/init.d/net.eth*
- Grub
Odpalam GRUBa
# grub
root (hd0,0)
setup (hd0)
root (hd1,0)
setup (hd1)
Przykładowy grub.conf
default 0
timeout 10
title=Gentoo Linux 2.6.22-gentoo-r8
root (hd0,0)
kernel /boot/kernel-genkernel-x86-2.6.22-gentoo-r8 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/md1 udev
initrd /boot/initramfs-genkernel-x86-2.6.22-gentoo-r8
Reboot
umount /mnt/gentoo/boot
umount /mnt/gentoo/boot_backup
umount /mnt/gentoo/home
umount /mnt/gentoo/tmp
umount /mnt/gentoo/compile
umount /mnt/gentoo/proc
umount /mnt/gentoo/dev
umount /mnt/gentoo
sync
reboot
Rozwiązywanie problemów
Zrebutowałeś ale nie zadziałało i chcesz coś poprawić ?
# ifconfig
# /etc/init.d/sshd start
# passwd
Ze Staregi łącze się po ssh na Nowy:
$ ssh root@ {text:variable-get}
# mdadm --assemble /dev/md1 /dev/sda3 /dev/sdb3
# mdadm --assemble /dev/md2 /dev/sda5 /dev/sdb5
# mdadm --assemble /dev/md3 /dev/sda6 /dev/sdb6
# mdadm --assemble /dev/md4 /dev/sda7 /dev/sdb7
| Attachment | Size |
|---|---|
| klonowanie_gentoo_ssh.odt | 17.53 KB |