Klonowanie działającego Gentoo na inną maszynę po SSH

UNDER CONSTRUCTION !

Klonowanie Gentoo po SSH

autor : Piotr Brzozowski

zolv@zolv.eu

  1. Ustawienia zmiennych dokumentu:

Ustawienia Gentoo klonowanego (Stary):

ip komputera : {text:variable-set}

Ustawienia komputera na który kopiujemy (Nowy):

ip komputera : {text:variable-set}

  1. 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.

  1. 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
  1. 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

  2. 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

  1. 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
  1. Konfiguracja Nowego

vi /etc/conf.d/hostname

vi /etc/hosts

/etc/init.d/net.eth*

  1. 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

  1. 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

  2. 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
AttachmentSize
klonowanie_gentoo_ssh.odt17.53 KB