手元には、IDE の分岐ケーブルがあるし、
FUJITSU M1636TAU という 1.2GB の HDD が2つあるので、
これを用いて /mnt をミラーリングすることにする。
以下の作業では、 JF の The Software-RAID HOWTOを参考にした
hdb のパーティションを切り、フォーマット、 動いている(汗)hda のハックキットをコピーする
[root@hackkit /root]# fdisk /dev/hdb このディスクのシリンダ数は 2491 に設定されています。 間違いではないのですが、1024 を超えているため、以下の場合 に問題を生じうる事を確認しましょう: 1) ブート時に実行するソフトウェア (例. バージョンが古い LILO) 2) 別の OS のブートやパーティション作成ソフト (例. DOS FDISK, OS/2 FDISK) コマンド (m でヘルプ): p ディスク /dev/hdb: ヘッド 16, セクタ 63, シリンダ 2491 ユニット = シリンダ数 of 1008 * 512 バイト デバイス ブート 始点 終点 ブロック ID システム コマンド (m でヘルプ): n コマンドアクション e 拡張 p 基本領域 (1-4) p 領域番号 (1-4): 1 最初 シリンダ (1-2491, 初期値 1): 初期値 1 を使います 終点 シリンダ または +サイズ または +サイズM または +サイズK (1-2491, 初期値 2491): +600M コマンド (m でヘルプ): n コマンドアクション e 拡張 p 基本領域 (1-4) p 領域番号 (1-4): 2 最初 シリンダ (1221-2491, 初期値 1221): 初期値 1221 を使います 終点 シリンダ または +サイズ または +サイズM または +サイズK (1221-2491, 初期値 2491): +128M コマンド (m でヘルプ): n コマンドアクション e 拡張 p 基本領域 (1-4) p 領域番号 (1-4): 3 最初 シリンダ (1482-2491, 初期値 1482): 初期値 1482 を使います 終点 シリンダ または +サイズ または +サイズM または +サイズK (1482-2491, 初期値 2491): 初期値 2491 を使います コマンド (m でヘルプ): p ディスク /dev/hdb: ヘッド 16, セクタ 63, シリンダ 2491 ユニット = シリンダ数 of 1008 * 512 バイト デバイス ブート 始点 終点 ブロック ID システム /dev/hdb1 1 1220 614848+ 83 Linux /dev/hdb2 1221 1481 131544 83 Linux /dev/hdb3 1482 2491 509040 83 Linux コマンド (m でヘルプ): t 領域番号 (1-4): 2 16進数コード (L コマンドでコードリスト表示): 82 領域のシステムタイプを 2 から 82 (Linux スワップ) に変更しました コマンド (m でヘルプ): p ディスク /dev/hdb: ヘッド 16, セクタ 63, シリンダ 2491 ユニット = シリンダ数 of 1008 * 512 バイト デバイス ブート 始点 終点 ブロック ID システム /dev/hdb1 1 1220 614848+ 83 Linux /dev/hdb2 1221 1481 131544 82 Linux スワップ /dev/hdb3 1482 2491 509040 83 Linux コマンド (m でヘルプ): w 領域テーブルは交換されました! ioctl() を呼び出して領域テーブルを再読込みします。 ディスクを同期させます。 [root@hackkit /root]#
[root@hackkit /root]# mkfs -j /dev/hdb1 mke2fs 1.29 (24-Sep-2002) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 76960 inodes, 153712 blocks 7685 blocks (5.00%) reserved for the super user First data block=0 5 block groups 32768 blocks per group, 32768 fragments per group 15392 inodes per group Superblock backups stored on blocks: 32768, 98304 Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 37 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [root@hackkit /root]# mkfs -j /dev/hdb3 mke2fs 1.29 (24-Sep-2002) Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) 127512 inodes, 509040 blocks 25452 blocks (5.00%) reserved for the super user First data block=1 63 block groups 8192 blocks per group, 8192 fragments per group 2024 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 23 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [root@hackkit /root]# mkswap /dev/hdb2 Setting up swapspace version 1, size = 131540K [root@hackkit /root]#
[root@hackkit /root]# mkdir /tmp/root [root@hackkit /root]# mount /dev/hdb1 /tmp/root [root@hackkit /root]# mkdir /tmp/root/mnt [root@hackkit /root]# mount /dev/hdb3 /tmp/root/mnt
[root@hackkit /root]# cd / [root@hackkit /]# ls bin boot dev etc home initrd lib lost+found mnt opt proc root sbin tmp usr var www [root@hackkit /]# tar cf - bin boot dev etc home initrd lib nt opt root sbin usr var www |(cd /tmp/root; tar xvf -) [root@hackkit /]# mkdir /tmp/root/proc [root@hackkit /]# mkdir /tmp/root/tmp [root@hackkit /]# chmod 1777 /tmp/root/tmp
1つ目のディスクとまったく同じようにパーティションを切り、 フォーマットする。
(略)
* * Multi-device support (RAID and LVM) * Multiple devices driver support (RAID and LVM) (CONFIG_MD) [N/y/?] y RAID support (CONFIG_BLK_DEV_MD) [N/y/m/?] m Linear (append) mode (CONFIG_MD_LINEAR) [N/m/?] n RAID-0 (striping) mode (CONFIG_MD_RAID0) [N/m/?] n RAID-1 (mirroring) mode (CONFIG_MD_RAID1) [N/m/?] m RAID-4/RAID-5 mode (CONFIG_MD_RAID5) [N/m/?] n Multipath I/O support (CONFIG_MD_MULTIPATH) [N/m/?] n Logical volume manager (LVM) support (CONFIG_BLK_DEV_LVM) [N/y/m/?]とする。
make dep
make modules
make modules_install
実行
[root@hackkit /root]# depmod -a [root@hackkit /root]# insmod md Using /lib/modules/2.4.17_kuro-box/kernel/drivers/md/md.o [root@hackkit /root]# insmod raid1 Using /lib/modules/2.4.17_kuro-box/kernel/drivers/md/raid1.o [root@hackkit /root]# lsmod Module Size Used by Not tainted raid1 16372 0 (unused) md 53740 0 [raid1]
[root@hackkit /root]# apt-get install raidtools パッケージリストを読みこんでいます... 完了 依存情報ツリーを作成しています... 完了 以下のパッケージが新たにインストールされます: raidtools 0 個のアップグレードパッケージ, 1 個の新規パッケージ, 0 個の削除/リプレースパッケージ, 1 個の保留パッケージがあります。 取得パッケージ: 230kB のアーカイブを取得します。インストール後は 495kB が使用されます。 取得:1 http://www.t.ring.gr.jp 2.6/ppc/plus raidtools 1.00.2-1.3vl3 [230kB] 取得完了: 230kB を 0s (235kB/秒) RPM コマンドを実行しています (-U)... raidtools ################################################## [root@hackkit /root]#
[root@hackkit /root]# cat /etc/raidtab raiddev /dev/md0 raid-level 1 nr-raid-disks 2 nr-spare-disks 0 chunk-size 4 persistent-superblock 1 device /dev/sda3 raid-disk 0 device /dev/sdb3 raid-disk 1 [root@hackkit /root]#
[root@hackkit /root]# umount /mnt
[root@hackkit /root]# mkraid /dev/md0 handling MD device /dev/md0 analyzing super-block disk 0: /dev/hda3, 509040kB, raid superblock at 508928kB /dev/hda3 appears to contain an ext2 filesystem -- use -f to override mkraid: aborted. (In addition to the above messages, see the syslog and /proc/mdstat as well for potential clues.) [root@hackkit /root]#といわれたので、-R オプションを付加して再実行
[root@hackkit /root]# mkraid -R /dev/md0 DESTROYING the contents of /dev/md0 in 5 seconds, Ctrl-C if unsure! handling MD device /dev/md0 analyzing super-blomd: md0: raid array is not clean -- starting background reconstruction ck disk 0: /dev/hda3, 509040kB, raid superblock at 508928kB disk 1: /dev/hdb3, 506016kB, raid superblock at 505920kB raid1: raid set md0 not clean; reconstructing mirrors [root@hackkit /root]#あれ?何で、サイズが違うの?まあいいか。
[root@hackkit /root]# cat /proc/mdstat Personalities : [raid1] read_ahead 1024 sectors md0 : active raid1 hdb3[1] hda3[0] 505920 blocks [2/2] [UU] [======>..............] resync = 34.7% (176824/505920) finish=2.2min speed=2462K/sec unused devices:同期している様子が見える。[root@hackkit /root]#
[root@hackkit /root]# cat /proc/mdstat Personalities : [raid1] read_ahead 1024 sectors md0 : active raid1 hdb3[1] hda3[0] 505920 blocks [2/2] [UU] [================>....] resync = 82.0% (415936/505920) finish=0.6min speed=2299K/sec unused devices:やってる、やってる[root@hackkit /root]#
[root@hackkit /root]# cat /proc/mdstat Personalities : [raid1] read_ahead 1024 sectors md0 : active raid1 hdb3[1] hda3[0] 505920 blocks [2/2] [UU] unused devices:完了
[root@hackkit /root]# mkfs -j /dev/md0 mke2fs 1.29 (24-Sep-2002) Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) 126480 inodes, 505920 blocks 25296 blocks (5.00%) reserved for the super user First data block=1 62 block groups 8192 blocks per group, 8192 fragments per group 2040 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 36 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
/dev/hda3 /mnt ext3 defaults,noatime 0 0を
/dev/md0 /mnt ext3 defaults,noatime 0 0に書き換え、
[root@hackkit /root]# mount /mnt [root@hackkit /root]# df ファイルシステム 1k-ブロック 使用中 空き 使用% マウント場所 /dev/hda1 605164 399532 174892 70% / /dev/md0 492947 8239 459256 2% /mntOK
← | ハックの記録 | → ramdisk.image のシュリンク(2) |