Konverze disku na RAID

Z KHnetWiki

(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
 
(Není zobrazeno 5 mezilehlých verzí.)
Řádka 1: Řádka 1:
-
ROZPRACOVÁNO
+
Určení: linux guru, a spol.<br><br>
-
Power HowTo:<br>
+
Testováno na ArchLinux 0.8 (beta2), jádro 2.6.20
-
This covers installing a second drive after a system is already up and running single drive.<br>
+
-
Make sure you <b>backup all your data</b>... you have been pre warned.<br>
+
-
* Primary Disc, lets get its info and record it. I used cfdisk.
+
Tento článek popisuje instalaci druhého do funkčního systému s jedním diskem (a jeho konverzi na RAID1 - mirroring).<br>
-
* NOTE: Do not change anything.. just TAB to QUIT.
+
Nezapomeň: <b>zálohuj, zálohuj, zálohuj ...</b> byl jsi varován.<br>
-
* cfdisk /dev/<yourolddevice>
+
 
 +
* Primární disk, poznamenej si rozdělení. Ukázka je z programu cfdisk.
 +
* POZNÁMKA: nic neměň... QUIT.
 +
* cfdisk /dev/<yourOLDdevice>
<pre>
<pre>
-
disc1       Boot, NC    Primary  Linux ext2                          41.13  
+
sda1       Boot, NC    Primary  Linux ext2                          41.13  
-
disc2                   Primary  Linux swap / Solaris              271.44
+
sda2                   Primary  Linux swap / Solaris              271.44
-
disc3                   Primary  Linux ext3                      82030.72
+
sda3                   Primary  Linux ext3                      82030.72
</pre>
</pre>
-
* Secondary Disc, Setup using cfdisk.  
+
* Sekundární disk, rozděl ho stejně.  
-
* cfdisk /dev/<yournewdevice>
+
* cfdisk /dev/<yourNEWdevice>
<pre>
<pre>
-
disc1       Boot        Primary  Linux raid autodetect              41.13  
+
sdb1       Boot        Primary  Linux raid autodetect              41.13  
-
disc2                   Primary  Linux raid autodetect              271.44
+
sdb2                   Primary  Linux raid autodetect              271.44
-
disc3                   Primary  Linux raid autodetect            82030.72
+
sdb3                   Primary  Linux raid autodetect            82030.72
-
Hint --> Linux raid autodetect is type: FD
+
Rada --> Linux raid autodetect je typ: FD
</pre>
</pre>
-
* create md device nodes
+
* vytvoř md zařízení
<pre>
<pre>
mknod /dev/md0 b 9 0
mknod /dev/md0 b 9 0
mknod /dev/md1 b 9 1
mknod /dev/md1 b 9 1
mknod /dev/md2 b 9 2
mknod /dev/md2 b 9 2
-
mknod /dev/md3 b 9 3
 
...
...
</pre>
</pre>
-
* create raid devices
+
* vytvoř raid pole
<pre>
<pre>
-
[root@svn ~]# mdadm --create /dev/md0 --level=1 --raid-devices=2 missing /dev/<yournewdevice-partitionA>
+
[root@svn ~]# mdadm --create /dev/md0 --level=1 --raid-devices=2 missing /dev/<yourNEWdevice-partitionA>
-
mdadm: array /dev/md0 started.
+
mdadm: array /dev/md0 started.
-
[root@svn ~]# mdadm --create /dev/md1 --level 1 --raid-devices=2 missing /dev/<yournewdevice-partitionB>
+
[root@svn ~]# mdadm --create /dev/md1 --level 1 --raid-devices=2 missing /dev/<yourNEWdevice-partitionB>
-
mdadm: array /dev/md1 started.
+
mdadm: array /dev/md1 started.
-
[root@svn ~]# mdadm --create /dev/md2 --level 1 --raid-devices=2 missing /dev/<yournewdevice-partitionC>
+
[root@svn ~]# mdadm --create /dev/md2 --level 1 --raid-devices=2 missing /dev/<yourNEWdevice-partitionC>
-
mdadm: array /dev/md2 started.
+
mdadm: array /dev/md2 started.
...
...
-
You may be asked: 'Continue creating array? y' if the disk was already formated.
+
Může se tě zeptat: 'Continue creating array? y' pokud je disk už naformátován.
[root@svn ~]#
[root@svn ~]#
</pre>
</pre>
-
* Check /proc/mdstat
+
* Zkontroluj /proc/mdstat
-
* All devices are in tact however they are degraded..
+
* Všechny pole budou degradovány. Přeci jenom jim vždy jedna partition chybí.
<pre>
<pre>
[root@svn ~]# cat /proc/mdstat  
[root@svn ~]# cat /proc/mdstat  
Řádka 62: Řádka 62:
</pre>
</pre>
-
* create filesystems
+
* vytvoř souborový systém
-
* use the filesystem tools you need to create your filesystem
+
* je relativně fuk, jaký použiješ. Jenom na to musíš myslet a upravit na to mkinitcpio (viz dále).
-
* NOTE: our /boot is ext2, / is ext3.
+
* POZNÁMKA: v příkladu je /boot ext2, / je ext3.
<pre>
<pre>
-
[root@svn ~]# mke2fs -j /dev/md0
+
[root@svn ~]#  
-
mke2fs 1.38 (30-Jun-2005)
+
mke2fs /dev/md0
-
Filesystem label=
+
-
OS type: Linux
+
-
Block size=1024 (log=0)
+
-
Fragment size=1024 (log=0)
+
-
10040 inodes, 40064 blocks
+
-
2003 blocks (5.00%) reserved for the super user
+
-
First data block=1
+
-
5 block groups
+
-
8192 blocks per group, 8192 fragments per group
+
-
2008 inodes per group
+
-
Superblock backups stored on blocks:
+
-
        8193, 24577
+
-
 
+
-
Writing inode tables: done                           
+
-
Creating journal (4096 blocks): done
+
-
Writing superblocks and filesystem accounting information: done
+
-
This filesystem will be automatically checked every 35 mounts or
+
-
180 days, whichever comes first.  Use tune2fs -c or -i to override.
+
* mkswap
* mkswap
-
[root@svn ~]# mkswap /dev/md1   
+
[root@svn ~]#  
-
Setting up swapspace version 1, size = 271314 kB
+
mkswap /dev/md1   
-
no label, UUID=9d746813-2d6b-4706-a56a-ecfd108f3fe9
+
* mkfs.ext3 for /
* mkfs.ext3 for /
-
[root@svn ~]# mkfs.ext3 -j /dev/md2
+
[root@svn ~]#  
-
mke2fs 1.38 (30-Jun-2005)
+
mkfs.ext3 -j /dev/md2
-
Filesystem label=
+
-
OS type: Linux
+
-
Block size=4096 (log=2)
+
-
Fragment size=4096 (log=2)
+
-
10027008 inodes, 20027008 blocks
+
-
1001350 blocks (5.00%) reserved for the super user
+
-
First data block=0
+
-
612 block groups
+
-
32768 blocks per group, 32768 fragments per group
+
-
16384 inodes per group
+
-
Superblock backups stored on blocks:
+
-
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
+
-
        4096000, 7962624, 11239424
+
-
 
+
-
Writing inode tables: done                           
+
-
Creating journal (32768 blocks): done
+
-
Writing superblocks and filesystem accounting information: done
+
-
 
+
-
This filesystem will be automatically checked every 25 mounts or
+
-
180 days, whichever comes first.  Use tune2fs -c or -i to override.
+
[root@svn ~]#
[root@svn ~]#
 +
atakdále pro všechny raid partition.
</pre>
</pre>
-
* Mount and Copy Data.
+
* Namontuj a zkopíruj data.
<pre>
<pre>
-
# mount new raid /
+
# mount new raid / (v příkladu md2)
[root@svn ~]# mount /dev/md<where you assigned-/-number> /mnt/
[root@svn ~]# mount /dev/md<where you assigned-/-number> /mnt/
-
# mount new raid /boot
+
 
 +
# mount new raid /boot (v příkladu md0)
[root@svn ~]# mkdir /mnt/boot
[root@svn ~]# mkdir /mnt/boot
[root@svn ~]# mount /dev/md<where you assigned-/boot-number> /mnt/boot/
[root@svn ~]# mount /dev/md<where you assigned-/boot-number> /mnt/boot/
-
# add dirs and mount all other partitions
+
 
-
You need to do this for every partition you had on old disk, to create the new raid device exactly the same.
+
# pokračuj ... všechny partition na starém disku musí mít "obraz" v raid partition.
-
...
+
 
# copy / to new /raid/
# copy / to new /raid/
[root@svn ~]# cd /mnt
[root@svn ~]# cd /mnt
-
[root@svn mnt]# tar -C / -clspf - . | tar -xlspvf -  
+
[root@svn mnt]# tar -C / -clspf - <seznam všech adresářů root partition> | tar -xlspvf -  
 +
(úprava, protože kopírování najednou [tečka] nějak nejede. Tj. /bin /dev /etc atd. (vše kromě sys, proc a samostatných oddílů)
 +
V podstatě to lze udělat i midnight commanderem. Ale radši to nedoporučuji.
 +
 
# copy /boot to new /raid/boot
# copy /boot to new /raid/boot
cd /mnt/boot
cd /mnt/boot
[root@svn boot]# tar -C /boot -clspf - . | tar -xlspvf -
[root@svn boot]# tar -C /boot -clspf - . | tar -xlspvf -
-
# copy other partitions
+
# všechny ostatní partition obdobně.
-
You need to do this for every partition you had on old disk, to create the new raid device exactly the same.
+
-
...
+
</pre>
</pre>
-
* NOTE: <b>CRUCIAL STEP</b>
+
* NOTE: <b>KRITICKÝ KROK</b> (tedy ne že by ostatní byly fuk)
-
* edit /mnt/boot/grub/menu.lst
+
* edituj /mnt/boot/grub/menu.lst
-
* Note: Make it look like so:
+
* bude to vypadat asi takto:
-
* add "fallback 1" to menu.lst
+
* přidej "fallback 1" (což znamená, že pokud se nepovede nabootovat z prvního disku, zkusí druhý)
<pre>
<pre>
Řádka 155: Řádka 119:
title  Arch Linux  [Disc0: /boot/vmlinuz26]
title  Arch Linux  [Disc0: /boot/vmlinuz26]
root  (hd0,0)
root  (hd0,0)
-
#kernel /vmlinuz26 root=/dev/discs/disc0/part3 ro
+
kernel /vmlinuz26 root=/dev/md<root partition - md2> md=<všechny md zařízení, ovšem POUZE nové partition> ro
-
kernel /vmlinuz26 root=/dev/md<where you assigned-/-number>  
+
#md=0,/dev/sdb1 md=1,/dev/sdb2 atd
-
md=<all your md devices,  
+
initrd /kernel26.img
-
please refer mkinitcpio howto for correct syntax,  
+
-
but don't add the old disk partitions at this point> ro
+
# (1) Arch Linux
# (1) Arch Linux
title  Arch Linux  [Disc1: /boot/vmlinuz26]
title  Arch Linux  [Disc1: /boot/vmlinuz26]
root  (hd1,0)
root  (hd1,0)
-
#kernel /vmlinuz26 root=/dev/discs/disc1/part3 ro
+
#kernel - to samé, co předchozí blok
-
kernel /vmlinuz26 root=/dev/md<where you assigned-/-number>
+
-
md=<all your md devices,
+
-
please refer mkinitcpio howto for correct syntax,
+
-
but don't add the old disk partitions at this point> ro
+
----- snip -----
----- snip -----
</pre>
</pre>
-
* setup: vi /mnt/etc/fstab for NEW md devices.
+
* uprav /mnt/etc/fstab - montovat se budou již MD zařízení
-
* I just commented my old ones out..
+
<pre>
<pre>
-
#/dev/discs/disc0/part3 / ext3 defaults 0 1
 
/dev/md2 / ext3 defaults 0 1
/dev/md2 / ext3 defaults 0 1
-
#/dev/discs/disc0/part1 /boot ext2 defaults 0 1
 
/dev/md0 /boot ext2 defaults 0 1
/dev/md0 /boot ext2 defaults 0 1
-
#/dev/discs/disc0/part2 swap swap defaults 0 0
 
/dev/md1 swap swap defaults 0 0  
/dev/md1 swap swap defaults 0 0  
 +
#atd ...
</pre>
</pre>
-
* mount /proc and /sys to new raid
+
* přimontuj /proc a /sys na nový raid
<pre>
<pre>
mount --bind /sys /mnt/sys
mount --bind /sys /mnt/sys
Řádka 190: Řádka 145:
</pre>
</pre>
-
* chroot into new raid system and rebuild initrd
+
* chroot na raid a kompilace initrd
<pre>
<pre>
chroot /mnt
chroot /mnt
-
# edit /etc/mkinitcpio.conf to include 'raid' in HOOKS and place it before 'autodetect'
+
# edituj /etc/mkinitcpio.conf - přidej 'raid' do proměnné HOOKS před 'autodetect'
 +
# možná budeš muset přidat i moduly filesystému, pokud máš něco jiného než ext2 nebo ext3. Také viz nápověda v souboru.
mkinitcpio -g /boot/kernel26.img
mkinitcpio -g /boot/kernel26.img
-
pacman -Rd udev
+
/etc/start_udev (případně odinstalace -Rd a instalace pacmanem)
-
pacman -S udev
+
 
exit
exit
</pre>
</pre>
-
* Install grub on new raid disk, change the numbers according to your setup.
+
* Instalace grub na nový disk. Čísla disků musí souhlasit, což je někdy problém. (hd0,0) je /boot partition prvního disku (starého) a (hd1,0) nového, již v raidu zapojeného. Logicky (hd1) značí MBR daného disku.
 +
Grub to čísluje tak, jak to bios nadetekoval. Většinou v pořadí PATA, SATA. Pokud na PATA není hardisk, tak to tam prostě není.
<pre>
<pre>
[root@svn /]#grub
[root@svn /]#grub
Řádka 219: Řádka 176:
[root@svn /]#
[root@svn /]#
</pre>
</pre>
 +
Důležité je, aby nehlásil chyby, a končil succeeded.
-
* reboot into new raid disk and not! into old disk, you may need to change bios settings.
+
* restartuj počítač. <b>NUTNÉ</b> je bootovat z nového disku. Budeš muset sáhnout do biosu.
<pre>
<pre>
/sbin/reboot
/sbin/reboot
</pre>
</pre>
-
* cross fingers ;)
+
* drž si palce, aneb cross fingers ;)
-
* If system booted fine, add the missing md devices to RAID.
+
* nabootuje-li počítač správně, MUSÍŠ přidat zbylé (ze starého) partition do RAIDu.
<pre>
<pre>
-
[root@svn ~]# mdadm /dev/md0 -a /dev/<old-disk-partitionA>
+
[root@svn ~]# mdadm /dev/md0 -a /dev/<old-disk-partitionA> (/dev/sda1)
-
mdadm: hot added /dev/<old-disk-partitionA>
+
mdadm: hot added /dev/<old-disk-partitionA>
[root@svn ~]# mdadm /dev/md1 -a /dev/<old-disk-partitionB>
[root@svn ~]# mdadm /dev/md1 -a /dev/<old-disk-partitionB>
-
mdadm: hot added /dev/<old-disk-partitionB>
+
mdadm: hot added /dev/<old-disk-partitionB>
[root@svn ~]# mdadm /dev/md2 -a /dev/<old-disk-partitionC>
[root@svn ~]# mdadm /dev/md2 -a /dev/<old-disk-partitionC>
-
mdadm: hot added /dev/<old-disk-partitionC>
+
mdadm: hot added /dev/<old-disk-partitionC>
...
...
[root@svn ~]
[root@svn ~]
</pre>
</pre>
 +
Hlavně to nespleť ...
-
* Check mdstat
+
* Ověř to ... cat /proc/mdstat
-
* Verify that your RAID is being built.
+
* A počkej si na zesynchronizování jednotlivých partition.
<pre>
<pre>
[root@svn ~]# cat /proc/mdstat  
[root@svn ~]# cat /proc/mdstat  
Řádka 256: Řádka 215:
</pre>
</pre>
-
* finish grub config
+
* dokonči konfiguraci grubu
<pre>
<pre>
----- snip -----
----- snip -----
Řádka 262: Řádka 221:
title  Arch Linux  [Disc0: /boot/vmlinuz26]
title  Arch Linux  [Disc0: /boot/vmlinuz26]
root  (hd0,0)
root  (hd0,0)
-
#kernel /vmlinuz26 root=/dev/discs/disc0/part3 ro
+
kernel /vmlinuz26 root=/dev/md<root partition - md2> md=<všechny md zařízení, KOMPLET> ro
-
kernel /vmlinuz26 root=/dev/md<where you assigned-/-number>  
+
#md=0,/dev/sdb1,/dev/sda1 md=1,/dev/sdb2,/dev/sda1 atd
-
md=<all your md devices,  
+
-
please refer mkinitcpio howto for correct syntax,
+
-
add the old disk partitions at this point> ro
+
# (1) Arch Linux
# (1) Arch Linux
title  Arch Linux  [Disc1: /boot/vmlinuz26]
title  Arch Linux  [Disc1: /boot/vmlinuz26]
root  (hd1,0)
root  (hd1,0)
-
#kernel /vmlinuz26 root=/dev/discs/disc1/part3 ro
+
#kernel - to samé, co předchozí blok
-
kernel /vmlinuz26 root=/dev/md<where you assigned-/-number>
+
-
md=<all your md devices,
+
-
please refer mkinitcpio howto for correct syntax,  
+
-
add the old disk partitions at this point> ro
+
----- snip -----
----- snip -----
</pre>
</pre>
-
* finish initrd
+
* dokončit initrd
<pre>
<pre>
-
edit /etc/mkinitcpio.conf
+
edituj /etc/mkinitcpio.conf
-
you can now place 'raid' hook behind autodetect and rebuild initrd
+
přesuň 'raid' hook za autodetect a překompiluj initrd
mkinitpcio -g /boot/kernel26.img
mkinitpcio -g /boot/kernel26.img
</pre>
</pre>
-
* Change your bios to normal boot order again.
+
* Vrať zpět BIOS, bootovat se může již normálně.
-
* You are done, enjoy your new RAID setup :)
+
 
 +
* Toť vše. Pokud se na nic nezapomene, jede to krásně.
 +
 
 +
 
 +
----
 +
 
 +
Backup the MBR which contains the boot code and partition table:
 +
 
 +
# dd if=/dev/sd''X'' of=/path/to/backup/mbr_backup bs=512 count=1
 +
 
 +
Only 446 bytes of the MBR contain boot code, the next 64 contain the partition table. If you do not want to overwrite your partition table when restoring, it is strongly advised to backup only the MBR boot code:
 +
 
 +
# dd if=/dev/sd''X'' of=/path/to/backup/bootcode_backup bs=446 count=1
 +
 
 +
 
 +
This command also restores the partition table, so be careful of overwriting a modified partition table with the old one. It '''will''' mess up your system.
 +
 
 +
# dd if=/path/to/backup/first-sectors of=/dev/sdX bs=512 count=1
 +
 
 +
A safer way is to restore only the MBR boot code use:
 +
 
 +
# dd if=/path/to/backup/mbr-boot-code of=/dev/sdX bs=446 count=1
 +
 
 +
[[Kategorie:Howto]][[Kategorie:System]]

Aktuální verze z 4. 4. 2014, 08:11

Určení: linux guru, a spol.

Testováno na ArchLinux 0.8 (beta2), jádro 2.6.20

Tento článek popisuje instalaci druhého do funkčního systému s jedním diskem (a jeho konverzi na RAID1 - mirroring).
Nezapomeň: zálohuj, zálohuj, zálohuj ... byl jsi varován.

  • Primární disk, poznamenej si rozdělení. Ukázka je z programu cfdisk.
  • POZNÁMKA: nic neměň... QUIT.
  • cfdisk /dev/<yourOLDdevice>
sda1       Boot, NC    Primary   Linux ext2                          41.13 
sda2                   Primary   Linux swap / Solaris               271.44
sda3                   Primary   Linux ext3                       82030.72
  • Sekundární disk, rozděl ho stejně.
  • cfdisk /dev/<yourNEWdevice>
sdb1       Boot        Primary   Linux raid autodetect               41.13 
sdb2                   Primary   Linux raid autodetect              271.44
sdb3                   Primary   Linux raid autodetect            82030.72
Rada --> Linux raid autodetect je typ: FD
  • vytvoř md zařízení
mknod /dev/md0 b 9 0
mknod /dev/md1 b 9 1
mknod /dev/md2 b 9 2
...
  • vytvoř raid pole
[root@svn ~]# mdadm --create /dev/md0 --level=1 --raid-devices=2 missing /dev/<yourNEWdevice-partitionA>
 mdadm: array /dev/md0 started.
[root@svn ~]# mdadm --create /dev/md1 --level 1 --raid-devices=2 missing /dev/<yourNEWdevice-partitionB>
 mdadm: array /dev/md1 started.
[root@svn ~]# mdadm --create /dev/md2 --level 1 --raid-devices=2 missing /dev/<yourNEWdevice-partitionC>
 mdadm: array /dev/md2 started.
...
Může se tě zeptat: 'Continue creating array? y' pokud je disk už naformátován.
[root@svn ~]#
  • Zkontroluj /proc/mdstat
  • Všechny pole budou degradovány. Přeci jenom jim vždy jedna partition chybí.
[root@svn ~]# cat /proc/mdstat 
Personalities : [linear] [raid0] [raid1] [raid5] [multipath] [raid6] [raid10] 
md2 : active raid1 sdb3[1]
      80108032 blocks [2/1] [_U]
      
md1 : active raid1 sdb2[1]
      264960 blocks [2/1] [_U]
      
md0 : active raid1 sdb1[1]
      40064 blocks [2/1] [_U]
      
unused devices: <none>
[root@svn ~]#
  • vytvoř souborový systém
  • je relativně fuk, jaký použiješ. Jenom na to musíš myslet a upravit na to mkinitcpio (viz dále).
  • POZNÁMKA: v příkladu je /boot ext2, / je ext3.
[root@svn ~]# 
mke2fs /dev/md0

* mkswap
[root@svn ~]# 
mkswap /dev/md1   

* mkfs.ext3 for /
[root@svn ~]# 
mkfs.ext3 -j /dev/md2
[root@svn ~]#
atakdále pro všechny raid partition.
  • Namontuj a zkopíruj data.
# mount new raid / (v příkladu md2)
[root@svn ~]# mount /dev/md<where you assigned-/-number> /mnt/

# mount new raid /boot (v příkladu md0)
[root@svn ~]# mkdir /mnt/boot
[root@svn ~]# mount /dev/md<where you assigned-/boot-number> /mnt/boot/

# pokračuj ... všechny partition na starém disku musí mít "obraz" v raid partition.

# copy / to new /raid/
[root@svn ~]# cd /mnt
[root@svn mnt]# tar -C / -clspf - <seznam všech adresářů root partition> | tar -xlspvf - 
(úprava, protože kopírování najednou [tečka] nějak nejede. Tj. /bin /dev /etc atd. (vše kromě sys, proc a samostatných oddílů)
V podstatě to lze udělat i midnight commanderem. Ale radši to nedoporučuji.

# copy /boot to new /raid/boot
cd /mnt/boot
[root@svn boot]# tar -C /boot -clspf - . | tar -xlspvf -
# všechny ostatní partition obdobně.
  • NOTE: KRITICKÝ KROK (tedy ne že by ostatní byly fuk)
  • edituj /mnt/boot/grub/menu.lst
  • bude to vypadat asi takto:
  • přidej "fallback 1" (což znamená, že pokud se nepovede nabootovat z prvního disku, zkusí druhý)
----- snip -----
default   0
color light-blue/black light-cyan/blue

## fallback disc1
fallback 1

# (0) Arch Linux
title  Arch Linux  [Disc0: /boot/vmlinuz26]
root   (hd0,0)
kernel /vmlinuz26 root=/dev/md<root partition - md2> md=<všechny md zařízení, ovšem POUZE nové partition> ro
#md=0,/dev/sdb1 md=1,/dev/sdb2 atd
initrd /kernel26.img

# (1) Arch Linux
title  Arch Linux  [Disc1: /boot/vmlinuz26]
root   (hd1,0)
#kernel - to samé, co předchozí blok
----- snip -----
  • uprav /mnt/etc/fstab - montovat se budou již MD zařízení
/dev/md2 / ext3 defaults 0 1
/dev/md0 /boot ext2 defaults 0 1
/dev/md1 swap swap defaults 0 0 
#atd ...
  • přimontuj /proc a /sys na nový raid
mount --bind /sys /mnt/sys
mound --bind /proc /mnt/proc
  • chroot na raid a kompilace initrd
chroot /mnt
# edituj /etc/mkinitcpio.conf - přidej 'raid' do proměnné HOOKS před 'autodetect'
# možná budeš muset přidat i moduly filesystému, pokud máš něco jiného než ext2 nebo ext3. Také viz nápověda v souboru.
mkinitcpio -g /boot/kernel26.img
/etc/start_udev (případně odinstalace -Rd a instalace pacmanem)

exit
  • Instalace grub na nový disk. Čísla disků musí souhlasit, což je někdy problém. (hd0,0) je /boot partition prvního disku (starého) a (hd1,0) nového, již v raidu zapojeného. Logicky (hd1) značí MBR daného disku.

Grub to čísluje tak, jak to bios nadetekoval. Většinou v pořadí PATA, SATA. Pokud na PATA není hardisk, tak to tam prostě není.

[root@svn /]#grub
grub> root (hd1,0)
 Filesystem type is ext2fs, partition type 0xfd

grub> setup (hd1)
 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Checking if "/boot/grub/e2fs_stage1_5" exists... yes
 Running "embed /boot/grub/e2fs_stage1_5 (hd1)"...  16 sectors are
embedded.
succeeded
 Running "install /boot/grub/stage1 (hd1) (hd1)1+16 p
(hd1,0)/boot/grub/stage2 /boot/grub/grub.conf"... succeeded
Done
grub>quit
[root@svn /]#

Důležité je, aby nehlásil chyby, a končil succeeded.

  • restartuj počítač. NUTNÉ je bootovat z nového disku. Budeš muset sáhnout do biosu.
/sbin/reboot
  • drž si palce, aneb cross fingers ;)
  • nabootuje-li počítač správně, MUSÍŠ přidat zbylé (ze starého) partition do RAIDu.
[root@svn ~]# mdadm /dev/md0 -a /dev/<old-disk-partitionA> (/dev/sda1)
 mdadm: hot added /dev/<old-disk-partitionA>
[root@svn ~]# mdadm /dev/md1 -a /dev/<old-disk-partitionB>
 mdadm: hot added /dev/<old-disk-partitionB>
[root@svn ~]# mdadm /dev/md2 -a /dev/<old-disk-partitionC>
 mdadm: hot added /dev/<old-disk-partitionC>
...
[root@svn ~]

Hlavně to nespleť ...

  • Ověř to ... cat /proc/mdstat
  • A počkej si na zesynchronizování jednotlivých partition.
[root@svn ~]# cat /proc/mdstat 
Personalities : [linear] [raid0] [raid1] [raid5] [multipath] [raid6] [raid10] 
md1 : active raid1 sda2[0] sdb2[1]
      264960 blocks [2/2] [UU]
      
md2 : active raid1 sda3[2] sdb3[1]
      80108032 blocks [2/1] [_U]
      [>....................]  recovery =  1.2% (1002176/80108032) finish=42.0min speed=31318K/sec
md0 : active raid1 sda1[0] sdb1[1]
      40064 blocks [2/2] [UU]
      
unused devices: <none>
[root@svn ~]#
  • dokonči konfiguraci grubu
----- snip -----
# (0) Arch Linux
title  Arch Linux  [Disc0: /boot/vmlinuz26]
root   (hd0,0)
kernel /vmlinuz26 root=/dev/md<root partition - md2> md=<všechny md zařízení, KOMPLET> ro
#md=0,/dev/sdb1,/dev/sda1 md=1,/dev/sdb2,/dev/sda1 atd

# (1) Arch Linux
title  Arch Linux  [Disc1: /boot/vmlinuz26]
root   (hd1,0)
#kernel - to samé, co předchozí blok
----- snip -----
  • dokončit initrd
edituj /etc/mkinitcpio.conf
přesuň 'raid' hook za autodetect a překompiluj initrd
mkinitpcio -g /boot/kernel26.img
  • Vrať zpět BIOS, bootovat se může již normálně.
  • Toť vše. Pokud se na nic nezapomene, jede to krásně.



Backup the MBR which contains the boot code and partition table:

# dd if=/dev/sdX of=/path/to/backup/mbr_backup bs=512 count=1

Only 446 bytes of the MBR contain boot code, the next 64 contain the partition table. If you do not want to overwrite your partition table when restoring, it is strongly advised to backup only the MBR boot code:

# dd if=/dev/sdX of=/path/to/backup/bootcode_backup bs=446 count=1


This command also restores the partition table, so be careful of overwriting a modified partition table with the old one. It will mess up your system.

# dd if=/path/to/backup/first-sectors of=/dev/sdX bs=512 count=1

A safer way is to restore only the MBR boot code use:

# dd if=/path/to/backup/mbr-boot-code of=/dev/sdX bs=446 count=1
Osobní nástroje