[トップ][編集履歴][一覧][最近の更新][->English]

Debian_etch:RAID-1:Shrink

走ってるlinuxの / パーティションを小さくする。まあ、RAIDならでは。

  • 実は、これはディスクが2台あって、まだ、RAIDを構成していないうちにやってしまったらよかったのだが、LVMをする必要に気がついたのが、後になってだった。

簡単な手順は:

  • disk2-root を、単体のパーティションとして、/ をコピーして、この上にリブートする。
  • raid-root を小さいものとして作りなおし、disk2-rootにある / をコピーして立ち上げる。
  • disk2-root を RAID raid-root に参加させる。

全部で5度、リブートが入ります。

  • 二回は、変更したパーティションテーブルをシステムに反映させるため。どうも、RAIDがパーティションテーブルとか押さえてるのか?不明。
  • 二回はシステムのルート・ファイルシステムを切替えるため。
  • 一回は最後にブート動作を確認するため。

もう少し、細かくした手順は:

  • disk2-root を、単体のパーティションとして、/ をコピーして、この上にリブートする。
    • disk2-root を、raid-root から切り離して、小さいlinuxパーティションを作る。
    • disk2-root に、/ をコピー。
    • disk2-root にある .../etc/fstab は、disk2-rootを/にマウントするようにする。
    • disk2-root を /にマウントするメニューを #2 に追加して、リブート。(grub-reboot 2)
  • raid-root を小さいものとして作りなおし、disk2-rootにある / をコピーして立ち上げる。
    • disk1-root を raid-root から切り離して、raid-root を抹消。
    • disk1-root を、小さいraidパーティションとして作る。
    • disk1-root で、raid-root を作る。disk2-rootと同じサイズ。
    • RAIDテーブルを再作成
    • raid-root に、 / を、コピー。
    • raid-rootにある .../etc/fstab は、disk2-rootを/にマウントするようにする。
    • grub/menu.lst の一つ目は、disk2-rootを/にするやつ。(ブート実証済なので
    • 普通に、raid-root を / にするリブート。(grub-reboot 1)
  • disk2-root を RAID raid-root に参加させる。
    • disk2-root のパーティション分類を、RAIDパーティションに変える。
    • disk2-root を、raid-root に追加。
    • RAIDテーブルを再作成
    • grub/menu.lst の一つ目の disk2-rootを / にするやつは、消す。

対応

  • disk2-root:hdc6
  • disk1-root:hda6
  • raid-root:md1

Using LVM-backed VBDs - Xen User Manual



hdc6を単体のパーティションとして、/ をコピーして、この上にリブートする。

hdc6 を md1 から切り離して、小さいlinuxパーティションを作る。

  • hdc6をmd1から切り離す。
    sudo mdadm --manage /dev/md1 --fail /dev/hdc6
    sudo mdadm --manage /dev/md1 --remove /dev/hdc6
    
  • 記録:
    setu@osho6:~$ sudo mdadm --manage /dev/md1 --fail /dev/hdc6
    mdadm: set /dev/hdc6 faulty in /dev/md1
    setu@osho6:~$ sudo mdadm --manage /dev/md1 --remove /dev/hdc6
    mdadm: hot removed /dev/hdc6
    setu@osho6:~$
    
  • 確認:
    • $ cat /proc/mdstat
      setu@osho6:~$ cat /proc/mdstat
      Personalities : [raid1]
      md2 : active raid1 hda5[0] hdc5[1]
            409536 blocks [2/2] [UU]
      
      md1 : active raid1 hda6[0]
            7879808 blocks [2/1] [U_]
      
      md0 : active raid1 hda1[0] hdc1[1]
            96256 blocks [2/2] [UU]
      
      unused devices: <none>
      setu@osho6:~$
      
    • md1 が、hda6だけで動いているのが分かる。
  • 現状を、RAID設定ファイルに反映:
    sudo cp /etc/mdadm/mdadm.conf_orig /etc/mdadm/mdadm.conf
    sudo -s
    
    mdadm --examine --scan >> /etc/mdadm/mdadm.conf
    exit
    
    cat /etc/mdadm/mdadm.conf
  • 記録:
    setu@osho6:~$ sudo cp /etc/mdadm/mdadm.conf_orig /etc/mdadm/mdadm.conf
    setu@osho6:~$ sudo -s
    root@osho6:~# mdadm --examine --scan >> /etc/mdadm/mdadm.conf
    root@osho6:~# exit
    exit
    setu@osho6:~$ cat /etc/mdadm/mdadm.conf
    # mdadm.conf
    #
    # Please refer to mdadm.conf(5) for information about this file.
    #
    
    # by default, scan all partitions (/proc/partitions) for MD superblocks.
    # alternatively, specify devices to scan, using wildcards if desired.
    DEVICE partitions
    
    # auto-create devices with Debian standard permissions
    CREATE owner=root group=disk mode=0660 auto=yes
    
    # automatically tag new arrays as belonging to the local system
    HOMEHOST <system>
    
    # instruct the monitoring daemon where to send mail alerts
    MAILADDR root
    
    # definitions of existing MD arrays
    
    # This file was auto-generated on Fri, 25 Jan 2008 19:35:08 +0530
    # by mkconf $Id: mkconf 261 2006-11-09 13:32:35Z madduck $
    ARRAY /dev/md0 level=raid1 num-devices=2 UUID=64a00772:dbd460c2:035d119f:483c4a6d
    ARRAY /dev/md2 level=raid1 num-devices=2 UUID=4bbc0ce5:43f37e58:035d119f:483c4a6d
    ARRAY /dev/md1 level=raid1 num-devices=2 UUID=e9ea189d:feb3d721:035d119f:483c4a6d
    setu@osho6:~$
    

ramdiskを作ることになってる

setu@osho6:~$ sudo update-initramfs -u -k `uname -r`
update-initramfs: Generating /boot/initrd.img-2.6.18-4-686
  • パーティションを小さくする。
    • テスト機は、2GBのみ。
  • sudo fdisk /dev/hdc
    setu@osho6:~$ sudo fdisk /dev/hdc
    
    The number of cylinders for this disk is set to 17753.
    There is nothing wrong with that, but this is larger than 1024,
    and could in certain setups cause problems with:
    1) software that runs at boot time (e.g., old versions of LILO)
    2) booting and partitioning software from other OSs
       (e.g., DOS FDISK, OS/2 FDISK)
    
    Command (m for help): d
    Partition number (1-6): 6
    
    Command (m for help): n
    Command action
       l   logical (5 or over)
       p   primary partition (1-4)
    l
    First cylinder (1072-17753, default 1072):
    Using default value 1072
    Last cylinder or +size or +sizeM or +sizeK (1072-17753, default 17753): +2G
    
    Command (m for help): p
    
    Disk /dev/hdc: 8589 MB, 8589934592 bytes
    15 heads, 63 sectors/track, 17753 cylinders
    Units = cylinders of 945 * 512 = 483840 bytes
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/hdc1   *           1         204       96358+  fd  Linux raid autodetect
    /dev/hdc2             205       17753     8291902+   5  Extended
    /dev/hdc5             205        1071      409626   fd  Linux raid autodetect
    /dev/hdc6            1072        5206     1953756   83  Linux
    
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    
    WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
    The kernel still uses the old table.
    The new table will be used at the next reboot.
    Syncing disks.
    setu@osho6:~$
    
    

パーティションテーブルを最新にするのに、ブートしなおす必要がある。

 sudo reboot

RAIDがパーティションテーブルを押さえてるのかな?

setu@osho6:~$ sudo fdisk -l /dev/hdc

Disk /dev/hdc: 8589 MB, 8589934592 bytes
15 heads, 63 sectors/track, 17753 cylinders
Units = cylinders of 945 * 512 = 483840 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hdc1   *           1         204       96358+  fd  Linux raid autodetect
/dev/hdc2             205       17753     8291902+   5  Extended
/dev/hdc5             205        1071      409626   fd  Linux raid autodetect
/dev/hdc6            1072        5206     1953756   83  Linux
setu@osho6:~$

hdc6を フォーマット

  • sudo mkfs.ext3 /dev/hdc6
    setu@osho6:~$ sudo mkfs.ext3 /dev/hdc6
    mke2fs 1.40-WIP (14-Nov-2006)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    244320 inodes, 488439 blocks
    24421 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=503316480
    15 block groups
    32768 blocks per group, 32768 fragments per group
    16288 inodes per group
    Superblock backups stored on blocks:
            32768, 98304, 163840, 229376, 294912
    
    Writing inode tables: done
    Creating journal (8192 blocks): done
    Writing superblocks and filesystem accounting information: done
    
    This filesystem will be automatically checked every 34 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.
    setu@osho6:~$
    

hdc6 に、/ をコピー。

以下のコマンドを実行:

sudo mkdir /mnt/hdc6
sudo mount /dev/hdc6 /mnt/hdc6
  • サイズを確認:
    setu@osho6:~$ df /mnt/hdc6
    Filesystem           1K-blocks      Used Available Use% Mounted on
    /dev/hdc6              1923048     35688   1789676   2% /mnt/hdc6
    setu@osho6:~$
    
  • データをコピー
    sudo cp -dpRx / /mnt/hdc6
    

記録:

setu@osho6:~$ sudo mkdir /mnt/hdc6
setu@osho6:~$ sudo mount /dev/hdc6 /mnt/hdc6
setu@osho6:~$ df /mnt/hdc6
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hdc6              1923048     35688   1789676   2% /mnt/hdc6
setu@osho6:~$ sudo cp -dpRx / /mnt/hdc6

hdc6にある .../etc/fstab は、hdc6を/にマウントするようにする。

  • sudo vi /mnt/hdc6/etc/fstab
    • /dev/md1 --> /dev/hdc6
      # /etc/fstab: static file system information.
      #
      # <file system> <mount point>   <type>  <options>       <dump>  <pass>
      proc            /proc           proc    defaults        0       0
      /dev/hdc6       /               ext3    defaults,errors=remount-ro 0       1
      /dev/md0        /boot           ext3    defaults        0       2
      /dev/md2        none            swap    sw              0       0
      /dev/hdd        /media/cdrom0   udf,iso9660 user,noauto     0       0
      /dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0
      

hdc6 を /にマウントするメニューを #2 に追加して、リブート。(grub-reboot 2)

  • sudo vi /boot/grub/menu.lst
    • 三つめ(#2)に以下を挿入:
      • savedefaultは、全部コメントアウトが正しい。grub-rebootで、指定しなかったら 0 でブート。
        title           Debian GNU/Linux, kernel 2.6.18-4-686 RAID hda root=/dev/hdc6
        root            (hd0,0)
        kernel          /vmlinuz-2.6.18-4-686 root=/dev/hdc6 ro
        initrd          /initrd.img-2.6.18-4-686
        # savedefault
        
        
    • 変更後:
      ## ## End Default Options ##
      
      title           Debian GNU/Linux, kernel 2.6.18-4-686 RAID hda
      root            (hd0,0)
      kernel          /vmlinuz-2.6.18-4-686 root=/dev/md1 ro
      initrd          /initrd.img-2.6.18-4-686
      savedefault
      
      title           Debian GNU/Linux, kernel 2.6.18-4-686 RAID hdc
      root            (hd1,0)
      kernel          /vmlinuz-2.6.18-4-686 root=/dev/md1 ro
      initrd          /initrd.img-2.6.18-4-686
      savedefault
      
      title           Debian GNU/Linux, kernel 2.6.18-4-686 RAID hda root=/dev/hdc6
      root            (hd0,0)
      kernel          /vmlinuz-2.6.18-4-686 root=/dev/hdc6 ro
      initrd          /initrd.img-2.6.18-4-686
      # savedefault
      
      
  • 間違いなく、デフォルトが 0 であることを、指定しておく。 $ sudo grub-set-default 0
  • 2 でリブート $ sudo grub-reboot 2
    setu@osho6:~$ sudo grub-reboot 2
    Searching for GRUB installation directory ... found: /boot/grub
    Probing devices to guess BIOS drives. This may take a long time.
    
    
        GNU GRUB  version 0.97  (640K lower / 3072K upper memory)
    
           [ Minimal BASH-like line editing is supported.   For
             the   first   word,  TAB  lists  possible  command
             completions.  Anywhere else TAB lists the possible
             completions of a device/filename. ]
    grub> savedefault --once --default=2
    grub> quit
    
    Do you want to reboot now? [y/N] y
    
    The system is going down for reboot NOW!.net (pts/0) (Mon Jan 28 07:34:03 200
    setu@osho6:~$
    

必要なら、ファイヤーウォールを立ち上げる:

  • うちは、Webminから立ち上げてる。

/ が hdc6 になってるのを確認。

setu@osho6:~$ df /
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hdc6              1923048    343984   1481380  19% /

次回のデフォルトのリブートを、これになるようにする。

grub/menu.lst の一つ目は、hdc6を/にするやつ。(ブート実証済なので

 sudo vi /boot/grub/menu.lst
  • 現状:
    ## ## End Default Options ##
    
    title           Debian GNU/Linux, kernel 2.6.18-4-686 RAID hda
    root            (hd0,0)
    kernel          /vmlinuz-2.6.18-4-686 root=/dev/md1 ro
    initrd          /initrd.img-2.6.18-4-686
    savedefault
    
    title           Debian GNU/Linux, kernel 2.6.18-4-686 RAID hdc
    root            (hd1,0)
    kernel          /vmlinuz-2.6.18-4-686 root=/dev/md1 ro
    initrd          /initrd.img-2.6.18-4-686
    savedefault
    
    title           Debian GNU/Linux, kernel 2.6.18-4-686 RAID hda root=/dev/hdc6
    root            (hd0,0)
    kernel          /vmlinuz-2.6.18-4-686 root=/dev/hdc6 ro
    initrd          /initrd.img-2.6.18-4-686
    savedefault
    
  • 三つめのエントリを、トップにする。
  • 変更後:
    ## ## End Default Options ##
    
    title           Debian GNU/Linux, kernel 2.6.18-4-686 RAID hda root=/dev/hdc6
    root            (hd0,0)
    kernel          /vmlinuz-2.6.18-4-686 root=/dev/hdc6 ro
    initrd          /initrd.img-2.6.18-4-686
    savedefault
    
    title           Debian GNU/Linux, kernel 2.6.18-4-686 RAID hda
    root            (hd0,0)
    kernel          /vmlinuz-2.6.18-4-686 root=/dev/md1 ro
    initrd          /initrd.img-2.6.18-4-686
    savedefault
    
    title           Debian GNU/Linux, kernel 2.6.18-4-686 RAID hdc
    root            (hd1,0)
    kernel          /vmlinuz-2.6.18-4-686 root=/dev/md1 ro
    initrd          /initrd.img-2.6.18-4-686
    savedefault
    
  • 間違いなく、grubが、0 から立ち上がるようにセット sudo grub-set-default 0
    setu@osho6:~$ sudo grub-set-default 0
    Searching for GRUB installation directory ... found: /boot/grub
    setu@osho6:~$ cat /boot/grub/default
    0
    #
    #
    #
    #
    #
    #
    #
    #
    #
    #
    # WARNING: If you want to edit this file directly, do not remove any line
    # from this file, including this warning. Using `grub-set-default\' is
    # strongly recommended.
    setu@osho6:~$
    

md1を小さいものとして作りなおし、hdc6にある / をコピーして立ち上げる。

hda6 を md1 から切り離して、md1 を抹消。

  • md1から、残ってる hda6を切り離す。
    sudo mdadm --manage /dev/md1 --fail /dev/hda6
    sudo mdadm --manage /dev/md1 --remove /dev/hda6
    
    • 記録:
      mdadm: set /dev/hda6 faulty in /dev/md1
      setu@osho6:~$ sudo mdadm --manage /dev/md1 --remove /dev/hda6
      mdadm: hot remove failed for /dev/hda6: Device or resource busy
      #### これはうまくいかなかった。必要はないかも ####
      
  • md1を、抹消。
    • sudo mdadm --misc --stop /dev/md1
      setu@osho6:~$ sudo mdadm --misc --stop /dev/md1
      mdadm: stopped /dev/md1
      
  • 確認:
    • $ sudo mdadm --detail /dev/md1
    • $ cat /proc/mdstat
      setu@osho6:~$ sudo mdadm --detail /dev/md1
      mdadm: md device /dev/md1 does not appear to be active.
      setu@osho6:~$ cat /proc/mdstat
      Personalities : [raid1]
      md2 : active raid1 hda5[0] hdc5[1]
            409536 blocks [2/2] [UU]
      
      md0 : active raid1 hda1[0] hdc1[1]
            96256 blocks [2/2] [UU]
      
      unused devices: <none>
      setu@osho6:~$
      
  • RAIDテーブルに現状を反映。(仮りに何かの表紙にリブートしたときの準備)。
    sudo cp /etc/mdadm/mdadm.conf_orig /etc/mdadm/mdadm.conf 
    sudo -s
    
    mdadm --examine --scan >> /etc/mdadm/mdadm.conf
    exit
    
    cat /etc/mdadm/mdadm.conf
    setu@osho6:~$ cat /etc/mdadm/mdadm.conf
    # mdadm.conf
    #
    # Please refer to mdadm.conf(5) for information about this file.
    #
    
    # by default, scan all partitions (/proc/partitions) for MD superblocks.
    # alternatively, specify devices to scan, using wildcards if desired.
    DEVICE partitions
    
    # auto-create devices with Debian standard permissions
    CREATE owner=root group=disk mode=0660 auto=yes
    
    # automatically tag new arrays as belonging to the local system
    HOMEHOST <system>
    
    # instruct the monitoring daemon where to send mail alerts
    MAILADDR root
    
    # definitions of existing MD arrays
    
    # This file was auto-generated on Fri, 25 Jan 2008 19:35:08 +0530
    # by mkconf $Id: mkconf 261 2006-11-09 13:32:35Z madduck $
    ARRAY /dev/md1 level=raid1 num-devices=2 UUID=e9ea189d:feb3d721:035d119f:483c4a6d
    ARRAY /dev/md0 level=raid1 num-devices=2 UUID=64a00772:dbd460c2:035d119f:483c4a6d
    ARRAY /dev/md2 level=raid1 num-devices=2 UUID=4bbc0ce5:43f37e58:035d119f:483c4a6d
    setu@osho6:~$
    

RAIDの構成を変えたらramdiskを作ることになってる。

setu@osho6:~$ sudo update-initramfs -u -k `uname -r`
update-initramfs: Generating /boot/initrd.img-2.6.18-4-686

hda6 を、小さいraidパーティションとして作る。

現状:

setu@osho6:~$ sudo fdisk -l

Disk /dev/hda: 8589 MB, 8589934592 bytes
15 heads, 63 sectors/track, 17753 cylinders
Units = cylinders of 945 * 512 = 483840 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1         204       96358+  fd  Linux raid autodetect
/dev/hda2             205       17753     8291902+   5  Extended
/dev/hda5             205        1071      409626   fd  Linux raid autodetect
/dev/hda6            1072       17753     7882213+  fd  Linux raid autodetect

Disk /dev/hdc: 8589 MB, 8589934592 bytes
15 heads, 63 sectors/track, 17753 cylinders
Units = cylinders of 945 * 512 = 483840 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hdc1   *           1         204       96358+  fd  Linux raid autodetect
/dev/hdc2             205       17753     8291902+   5  Extended
/dev/hdc5             205        1071      409626   fd  Linux raid autodetect
/dev/hdc6            1072        5206     1953756   83  Linux

Disk /dev/md0: 98 MB, 98566144 bytes
2 heads, 4 sectors/track, 24064 cylinders
Units = cylinders of 8 * 512 = 4096 bytes

Disk /dev/md0 doesn't contain a valid partition table

Disk /dev/md2: 419 MB, 419364864 bytes
2 heads, 4 sectors/track, 102384 cylinders
Units = cylinders of 8 * 512 = 4096 bytes

Disk /dev/md2 doesn't contain a valid partition table
setu@osho6:~$
  • sudo fdisk /dev/hda
    • hdc6と同じサイズで。
      • hdc6の、最初と終わりのクラスター番号を覚えておいて、同じようにする。
        /dev/hdc6            1072        5206     1953756   83  Linux
        
      • 記録:
        setu@osho6:~$ sudo fdisk /dev/hda
        
        The number of cylinders for this disk is set to 17753.
        There is nothing wrong with that, but this is larger than 1024,
        and could in certain setups cause problems with:
        1) software that runs at boot time (e.g., old versions of LILO)
        2) booting and partitioning software from other OSs
           (e.g., DOS FDISK, OS/2 FDISK)
        
        Command (m for help): p
        
        Disk /dev/hda: 8589 MB, 8589934592 bytes
        15 heads, 63 sectors/track, 17753 cylinders
        Units = cylinders of 945 * 512 = 483840 bytes
        
           Device Boot      Start         End      Blocks   Id  System
        /dev/hda1   *           1         204       96358+  fd  Linux raid autodetect
        /dev/hda2             205       17753     8291902+   5  Extended
        /dev/hda5             205        1071      409626   fd  Linux raid autodetect
        /dev/hda6            1072       17753     7882213+  fd  Linux raid autodetect
        
        Command (m for help): d
        Partition number (1-6): 6
        
        Command (m for help): n
        Command action
           l   logical (5 or over)
           p   primary partition (1-4)
        l
        First cylinder (1072-17753, default 1072):
        Using default value 1072
        Last cylinder or +size or +sizeM or +sizeK (1072-17753, default 17753): 5206
        
        Command (m for help): p
        
        Disk /dev/hda: 8589 MB, 8589934592 bytes
        15 heads, 63 sectors/track, 17753 cylinders
        Units = cylinders of 945 * 512 = 483840 bytes
        
           Device Boot      Start         End      Blocks   Id  System
        /dev/hda1   *           1         204       96358+  fd  Linux raid autodetect
        /dev/hda2             205       17753     8291902+   5  Extended
        /dev/hda5             205        1071      409626   fd  Linux raid autodetect
        /dev/hda6            1072        5206     1953756   83  Linux
        
        Command (m for help): t
        Partition number (1-6): 6
        Hex code (type L to list codes): fd
        Changed system type of partition 6 to fd (Linux raid autodetect)
        
        Command (m for help): p
        
        Disk /dev/hda: 8589 MB, 8589934592 bytes
        15 heads, 63 sectors/track, 17753 cylinders
        Units = cylinders of 945 * 512 = 483840 bytes
        
           Device Boot      Start         End      Blocks   Id  System
        /dev/hda1   *           1         204       96358+  fd  Linux raid autodetect
        /dev/hda2             205       17753     8291902+   5  Extended
        /dev/hda5             205        1071      409626   fd  Linux raid autodetect
        /dev/hda6            1072        5206     1953756   fd  Linux raid autodetect
        
        Command (m for help): w
        The partition table has been altered!
        
        Calling ioctl() to re-read partition table.
        
        WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
        The kernel still uses the old table.
        The new table will be used at the next reboot.
        Syncing disks.
        setu@osho6:~$
        

パーティションをテーブルを新しくするのに、リブート。

  • ### The new table will be used at the next reboot. sudo grub-reboot 0

hda6 で、md1 を作る。

  • md1を作成
    • パーティションをクリアー。仮りに前回のRAIDの設定があっても記録が消える。
      sudo mdadm --zero-superblock /dev/hda6
      
    • 記録:
      setu@osho6:~$ sudo mdadm --zero-superblock /dev/hda6
      mdadm: Unrecognised md component device - /dev/hda6
      setu@osho6:~$
      
  • RAIDを構成する
    • 以下のコマンドで各パーティションをRAID-1に構成する。
      sudo mdadm --create /dev/md1 --level=1 --raid-disks=2 /dev/hda6 missing
      
      • missing の部分には、後で、/dev/hda? が入る。
    • 記録:
      setu@osho6:~$ sudo mdadm --create /dev/md1 --level=1 --raid-disks=2 /dev/hda6 missing
      mdadm: /dev/hda6 appears to contain an ext2fs file system
          size=7879808K  mtime=Mon Jan 28 07:53:03 2008
      Continue creating array? y
      mdadm: array /dev/md1 started.
      setu@osho6:~$
      
  • 状態を見る;
    • $ sudo cat /proc/mdstat
      setu@osho6:~$ sudo mdadm --create /dev/md1 --level=1 --raid-disks=2 /dev/hda6 missing
      mdadm: /dev/hda6 appears to contain an ext2fs file system
          size=7879808K  mtime=Mon Jan 28 07:53:03 2008
      Continue creating array? y
      mdadm: array /dev/md1 started.
      setu@osho6:~$ sudo cat /proc/mdstat
      Personalities : [raid1]
      md2 : active raid1 hda5[0] hdc5[1]
            409536 blocks [2/2] [UU]
      
      md1 : active raid1 hda6[0]
            7882112 blocks [2/1] [U_]
      
      md0 : active raid1 hda1[0] hdc1[1]
            96256 blocks [2/2] [UU]
      
      unused devices: <none>
      setu@osho6:~$
      
  • RAIDパーティションを初期化:
    • sudo mkfs.ext3 /dev/md1
    • 記録:
      setu@osho6:~$ sudo mkfs.ext3 /dev/md1
      mke2fs 1.40-WIP (14-Nov-2006)
      Filesystem label=
      OS type: Linux
      Block size=4096 (log=2)
      Fragment size=4096 (log=2)
      985760 inodes, 1970528 blocks
      98526 blocks (5.00%) reserved for the super user
      First data block=0
      Maximum filesystem blocks=2021654528
      61 block groups
      32768 blocks per group, 32768 fragments per group
      16160 inodes per group
      Superblock backups stored on blocks:
              32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
      
      Writing inode tables: done
      Creating journal (32768 blocks): done
      Writing superblocks and filesystem accounting information: done
      
      This filesystem will be automatically checked every 27 mounts or
      180 days, whichever comes first.  Use tune2fs -c or -i to override.
      setu@osho6:~$
      

RAIDテーブルを再作成

  • オリジナルの設定ファイルを保存する。 $ sudo cp /etc/mdadm/mdadm.conf_orig /etc/mdadm/mdadm.conf $ sudo -s # mdadm --examine --scan >> /etc/mdadm/mdadm.conf # exit $ cat /etc/mdadm/mdadm.conf
    setu@osho6:~$ cat /etc/mdadm/mdadm.conf
    # mdadm.conf
    #
    # Please refer to mdadm.conf(5) for information about this file.
    #
    
    # by default, scan all partitions (/proc/partitions) for MD superblocks.
    # alternatively, specify devices to scan, using wildcards if desired.
    DEVICE partitions
    
    # auto-create devices with Debian standard permissions
    CREATE owner=root group=disk mode=0660 auto=yes
    
    # automatically tag new arrays as belonging to the local system
    HOMEHOST <system>
    
    # instruct the monitoring daemon where to send mail alerts
    MAILADDR root
    
    # definitions of existing MD arrays
    
    # This file was auto-generated on Fri, 25 Jan 2008 19:35:08 +0530
    # by mkconf $Id: mkconf 261 2006-11-09 13:32:35Z madduck $
    ARRAY /dev/md1 level=raid1 num-devices=2 UUID=f2b80bf5:8e1736a3:035d119f:483c4a6d
    ARRAY /dev/md0 level=raid1 num-devices=2 UUID=64a00772:dbd460c2:035d119f:483c4a6d
    ARRAY /dev/md2 level=raid1 num-devices=2 UUID=4bbc0ce5:43f37e58:035d119f:483c4a6d
    setu@osho6:~$
    
    

ramdiskを作ることになってる

setu@osho6:~$ sudo update-initramfs -u -k `uname -r`
update-initramfs: Generating /boot/initrd.img-2.6.18-4-686

hdc6 を、md1 にコピー。

sudo mkdir /mnt/md1
sudo mount /dev/md1 /mnt/md1
df /dev/md1
sudo cp -dpRx / /mnt/md1
setu@osho6:~$ sudo mkdir /mnt/md1
setu@osho6:~$ sudo mount /dev/md1 /mnt/md1
setu@osho6:~$ df /dev/md1
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/md1               1922956     68276   1757000   4% /mnt/md1
setu@osho6:~$
setu@osho6:~$ sudo cp -dpRx / /mnt/md1
setu@osho6:~$

md1にある .../etc/fstab は、hdc6を/にマウントするようにする。

 sudo vi /mnt/md1/etc/fstab
  • 現状
    # /etc/fstab: static file system information.
    #
    # <file system> <mount point>   <type>  <options>       <dump>  <pass>
    proc            /proc           proc    defaults        0       0
    /dev/hdc6       /               ext3    defaults,errors=remount-ro 0       1
    /dev/md0        /boot           ext3    defaults        0       2
    /dev/md2        none            swap    sw              0       0
    /dev/hdd        /media/cdrom0   udf,iso9660 user,noauto     0       0
    /dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0
    
  • hdc6 --> md1
  • 変更後:
    # /etc/fstab: static file system information.
    #
    # <file system> <mount point>   <type>  <options>       <dump>  <pass>
    proc            /proc           proc    defaults        0       0
    /dev/md1        /               ext3    defaults,errors=remount-ro 0       1
    /dev/md0        /boot           ext3    defaults        0       2
    /dev/md2        none            swap    sw              0       0
    /dev/hdd        /media/cdrom0   udf,iso9660 user,noauto     0       0
    /dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0
    

md1 を / にするリブート。(grub-reboot 1)

 sudo grub-reboot 1

リブート後の確認。md1 が、/ に乗ってる。

setu@osho6:~$ df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/md1               3845112    383788   3266000  11% /
tmpfs                    31024         0     31024   0% /lib/init/rw
udev                     10240        72     10168   1% /dev
tmpfs                    31024         0     31024   0% /dev/shm
/dev/md0                 93207     17143     71252  20% /boot
setu@osho6:~$ cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 hda5[0] hdc5[1]
      409536 blocks [2/2] [UU]

md0 : active raid1 hda1[0] hdc1[1]
      96256 blocks [2/2] [UU]

md1 : active raid1 hda6[0]
      3906496 blocks [2/1] [U_]

unused devices: <none>
setu@osho6:~$

hdc6をRAID md1 に参加させる。

grub/menu.lst の一つ目の hdc6を / にするやつは、消す。

  • sudo vi /boot/grub/menu.lst
    ## should update-grub adjust the value of the default booted system
    ## can be true or false
    # updatedefaultentry=false
    
    ## ## End Default Options ##
    
    title           Debian GNU/Linux, kernel 2.6.18-4-686 RAID hda
    root            (hd0,0)
    kernel          /vmlinuz-2.6.18-4-686 root=/dev/md1 ro
    initrd          /initrd.img-2.6.18-4-686
    savedefault
    
    title           Debian GNU/Linux, kernel 2.6.18-4-686 RAID hdc
    root            (hd1,0)
    kernel          /vmlinuz-2.6.18-4-686 root=/dev/md1 ro
    initrd          /initrd.img-2.6.18-4-686
    savedefault
    
    title           Debian GNU/Linux, kernel 2.6.18-4-686 (single-user mode)
    root            (hd0,0)
    kernel          /vmlinuz-2.6.18-4-686 root=/dev/md1 ro single
    initrd          /initrd.img-2.6.18-4-686
    #savedefault
    
    ### END DEBIAN AUTOMAGIC KERNELS LIST
    
  • デフォルトが 0 であることを、しつこく指定。 $ sudo grub-set-default 0

hdc6 のパーティション分類を、RAIDパーティションに変える。

setu@osho6:~$ sudo fdisk /dev/hdc
Password:

The number of cylinders for this disk is set to 17753.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/hdc: 8589 MB, 8589934592 bytes
15 heads, 63 sectors/track, 17753 cylinders
Units = cylinders of 945 * 512 = 483840 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hdc1   *           1         204       96358+  fd  Linux raid autodetect
/dev/hdc2             205       17753     8291902+   5  Extended
/dev/hdc5             205        1071      409626   fd  Linux raid autodetect
/dev/hdc6            1072        9339     3906598+  83  Linux

Command (m for help): t
Partition number (1-6): 6
Hex code (type L to list codes): fd
Changed system type of partition 6 to fd (Linux raid autodetect)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
setu@osho6:~$

rebootして、パーティションテーブルを反映。!!!!!!

 sudo reboot

hdc6 を、md1 に追加。

setu@osho6:~$ sudo mdadm --add /dev/md1 /dev/hdc6
mdadm: added /dev/hdc6
setu@osho6:~$
setu@osho6:~$ cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 hda5[0] hdc5[1]
      409536 blocks [2/2] [UU]

md0 : active raid1 hda1[0] hdc1[1]
      96256 blocks [2/2] [UU]

md1 : active raid1 hdc6[2] hda6[0]
      3906496 blocks [2/1] [U_]
      [=>...................]  recovery =  5.4% (214272/3906496) finish=6.6min speed=9316K/sec

unused devices: <none>
setu@osho6:~$

  • 同期が終わるのを待つ:
    • watch cat /proc/mdstat

終わるまで、次のステップには行かない。

RAIDテーブルを再作成

sudo cp /etc/mdadm/mdadm.conf_orig /etc/mdadm/mdadm.conf
sudo -s
mdadm --examine --scan >> /etc/mdadm/mdadm.conf
exit
sudo cat /etc/mdadm/mdadm.conf

ramdiskも作る

sudo update-initramfs -u -k `uname -r`
  • 記録
    setu@osho6:~$ sudo cp /etc/mdadm/mdadm.conf_orig /etc/mdadm/mdadm.conf
    setu@osho6:~$ sudo -s
    root@osho6:~# mdadm --examine --scan >> /etc/mdadm/mdadm.conf
    root@osho6:~# exit
    exit
    setu@osho6:~$ sudo cat /etc/mdadm/mdadm.conf
    # mdadm.conf
    #
    # Please refer to mdadm.conf(5) for information about this file.
    #
    
    # by default, scan all partitions (/proc/partitions) for MD superblocks.
    # alternatively, specify devices to scan, using wildcards if desired.
    DEVICE partitions
    
    # auto-create devices with Debian standard permissions
    CREATE owner=root group=disk mode=0660 auto=yes
    
    # automatically tag new arrays as belonging to the local system
    HOMEHOST <system>
    
    # instruct the monitoring daemon where to send mail alerts
    MAILADDR root
    
    # definitions of existing MD arrays
    
    # This file was auto-generated on Fri, 25 Jan 2008 19:35:08 +0530
    # by mkconf $Id: mkconf 261 2006-11-09 13:32:35Z madduck $
    ARRAY /dev/md0 level=raid1 num-devices=2 UUID=64a00772:dbd460c2:035d119f:483c4a6d
    ARRAY /dev/md2 level=raid1 num-devices=2 UUID=4bbc0ce5:43f37e58:035d119f:483c4a6d
    ARRAY /dev/md1 level=raid1 num-devices=2 UUID=e5b1b5a8:bd5ac86f:035d119f:483c4a6d
    setu@osho6:~$ sudo update-initramfs -u -k `uname -r`
    update-initramfs: Generating /boot/initrd.img-2.6.18-4-686
    setu@osho6:~$
    

これでなかった。

ブート確認。

 sudo reboot
setu@osho6:~$ df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/md1               1922956    344064   1481212  19% /
tmpfs                    31024         0     31024   0% /lib/init/rw
udev                     10240        72     10168   1% /dev
tmpfs                    31024         0     31024   0% /dev/shm
/dev/md0                 93207     17147     71248  20% /boot
setu@osho6:~$ cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 hda6[0] hdc6[1]
      1953664 blocks [2/2] [UU]

md2 : active raid1 hda5[0] hdc5[1]
      409536 blocks [2/2] [UU]

md0 : active raid1 hda1[0] hdc1[1]
      96256 blocks [2/2] [UU]

unused devices: <none>
setu@osho6:~$ sudo fdisk -l

Disk /dev/hda: 8589 MB, 8589934592 bytes
15 heads, 63 sectors/track, 17753 cylinders
Units = cylinders of 945 * 512 = 483840 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1         204       96358+  fd  Linux raid autodetect
/dev/hda2             205       17753     8291902+   5  Extended
/dev/hda5             205        1071      409626   fd  Linux raid autodetect
/dev/hda6            1072        5206     1953756   fd  Linux raid autodetect

Disk /dev/hdc: 8589 MB, 8589934592 bytes
15 heads, 63 sectors/track, 17753 cylinders
Units = cylinders of 945 * 512 = 483840 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hdc1   *           1         204       96358+  fd  Linux raid autodetect
/dev/hdc2             205       17753     8291902+   5  Extended
/dev/hdc5             205        1071      409626   fd  Linux raid autodetect
/dev/hdc6            1072        5206     1953756   fd  Linux raid autodetect

Disk /dev/md0: 98 MB, 98566144 bytes
2 heads, 4 sectors/track, 24064 cylinders
Units = cylinders of 8 * 512 = 4096 bytes

Disk /dev/md0 doesn't contain a valid partition table

Disk /dev/md2: 419 MB, 419364864 bytes
2 heads, 4 sectors/track, 102384 cylinders
Units = cylinders of 8 * 512 = 4096 bytes

Disk /dev/md2 doesn't contain a valid partition table

Disk /dev/md1: 2000 MB, 2000551936 bytes
2 heads, 4 sectors/track, 488416 cylinders
Units = cylinders of 8 * 512 = 4096 bytes

Disk /dev/md1 doesn't contain a valid partition table
setu@osho6:~$


sudo sfdisk -d /dev/hda | sudo sfdisk /dev/hdc
sudo mdadm --zero-superblock /dev/hdc1
sudo mdadm --zero-superblock /dev/hdc6
sudo mdadm --zero-superblock /dev/hdc5
sudo mdadm --add /dev/md0 /dev/hdc1
sudo mdadm --add /dev/md1 /dev/hdc6
sudo mdadm --add /dev/md2 /dev/hdc5
sudo grub
--
root (hd1,0)
setup (hd1)
quit 
----
sudo sfdisk -d /dev/hdc | sudo sfdisk /dev/hda
sudo mdadm --zero-superblock /dev/hda1
sudo mdadm --zero-superblock /dev/hda6
sudo mdadm --zero-superblock /dev/hda5
sudo mdadm --add /dev/md0 /dev/hda1
sudo mdadm --add /dev/md1 /dev/hda6
sudo mdadm --add /dev/md2 /dev/hda5
watch cat /proc/mdstat
sudo grub
------
root (hd0,0)
setup (hd0)
quit