SSブログ
エステ

USBメモリでRAIDに挑戦 ☆ もちろんLinuxで。 [LinuxでSoftware RAID]

さてさて。ふつーにUbuntuをUSBメモリにインストールできた
わけなのですが、

IMG_0314.jpg
こんなかんじですから、フロントのUSBポートが一つあいています ♪

で、あればもう一つUSBメモリをさしたくたくなっちゃいます。
それで、電源をONすると、こんな感じです↓

IMG_0383.jpg

すてきじゃないですか〜☆

同じ容量の4GBのUSBメモリです。当然??RAIDをくみたくなります♪

Ubuntuには標準でソフトウェアRAIDのコントロールツールmdadmが
入っていないので、apt-getします。


まずは
mountコマンドと、/devに追加されたファイルから、状況把握。

/dev/sdb → 新たに追加したUSBメモリ
/dev/sdc → UbuntuをインストールしたUSBメモリ

こんな感じで、構成します。

1.
RAID1を構成するために、まずはsdc→sdbへパーティション構成も
全く同じにして、全ファイルをコピーします。

2.
/dev/sdbだけで、/dev/mdを構成します。

3.
/dev/md1から起動します。

4.
/dev/md1に/dev/sdcを追加します。

以下、ほぼ記憶に頼って書いているので、おおいにはしょっています。
ご了承を(^^;)

まずは、/dev/sdcの構成の確認と、システムタイプの変更です。

root@fs:/home/nao# fdisk /dev/sdc

コマンド (m でヘルプ): p

ディスク /dev/sdc: 4016 MB, 4016046080 バイト
ヘッド 255, セクタ 63, シリンダ 488
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
Disk identifier: 0x90909090

デバイス ブート     始点        終点    ブロック   Id システム
/dev/sdc1   *           1         451     3622626   83  Linux
/dev/sdc2             452         488      297202+  82  Linux スワップ / Solaris


コマンド (m でヘルプ): t
領域番号 (1-4): 1
16進数コード (L コマンドでコードリスト表示): fd
領域のシステムタイプを 1 から fd (Linux raid 自動検出) に変更しました

コマンド (m でヘルプ): w
領域テーブルは交換されました!


次に、/dev/sdbも同じ構成にします。


root@fs:/home/nao# fdisk /dev/sdb

このディスクのシリンダ数は 3486 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
   (例. DOS FDISK, OS/2 FDISK)

コマンド (m でヘルプ): p

ディスク /dev/sdb: 4016 MB, 4016046080 バイト
ヘッド 90, セクタ 25, シリンダ 3486
Units = シリンダ数 of 2250 * 512 = 1152000 バイト
Disk identifier: 0x00000000

デバイス ブート     始点        終点    ブロック   Id システム
/dev/sdb1               4        3487     3917824    b  W95 FAT32


ヘッド、セクタ、シリンダ、Disk identifierが異なりますので、
上級者コマンドで変更します。


コマンド (m でヘルプ): x

上級者コマンド (m でヘルプ): m
コマンドの動作
   b   領域内のデータの先頭に移動する
   c   シリンダ数を変更する
   d   領域テーブル内の生データを表示する
   e   拡張領域をリスト表示する
   f   領域の順序を適正化する
   g   IRIX (SGI) 領域テーブルを作成する
   h   ヘッド数を変更する
   i   change the disk identifier
   m   このメニューを表示する
   p   領域テーブルを表示する
   q   変更を保存せずに終了する
   r   メインメニューに戻る
   s   セクタ数/トラックを変更する
   v   領域テーブルを照合する
   w   テーブルをディスクに書き込み、終了する

上級者コマンド (m でヘルプ): h
ヘッド数 (1-256, 初期値 90): 255

上級者コマンド (m でヘルプ): s
セクタ数 (1-63, 初期値 25): 63
警告: DOS 互換のためのセクタオフセットを設定します

上級者コマンド (m でヘルプ): c
シリンダ数 (1-1048576, 初期値 3486): 488

上級者コマンド (m でヘルプ): i
New disk identifier (current 0x00000000): 0x90909090
Disk identifier: 0x90909090

上級者コマンド (m でヘルプ): r

コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本領域 (1-4)
p
領域番号 (1-4): 1
領域 1 は定義済です。まずは削除を行なってください。

コマンド (m でヘルプ): d
選択した領域 1

コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本領域 (1-4)

領域番号 (1-4): 1
最初 シリンダ (1-488, 初期値 1): 1
Last シリンダ, +シリンダ数 or +size{K,M,G} (1-488, 初期値 488): 451

コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本領域 (1-4)
p
領域番号 (1-4): 2
最初 シリンダ (452-488, 初期値 452): 
初期値 452 を使います
Last シリンダ, +シリンダ数 or +size{K,M,G} (452-488, 初期値 488): 
初期値 488 を使います

コマンド (m でヘルプ): p

ディスク /dev/sdb: 4016 MB, 4016046080 バイト
ヘッド 255, セクタ 63, シリンダ 488
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
Disk identifier: 0x90909090

デバイス ブート     始点        終点    ブロック   Id システム
/dev/sdb1               1         451     3622626   83  Linux
/dev/sdb2             452         488      297202+  83  Linux

コマンド (m でヘルプ): t
領域番号 (1-4): 2
16進数コード (L コマンドでコードリスト表示): 82
領域のシステムタイプを 2 から 82 (Linux スワップ / Solaris) に変更しました

コマンド (m でヘルプ): p

ディスク /dev/sdb: 4016 MB, 4016046080 バイト
ヘッド 255, セクタ 63, シリンダ 488
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
Disk identifier: 0x90909090

デバイス ブート     始点        終点    ブロック   Id システム
/dev/sdb1               1         451     3622626   83  Linux
/dev/sdb2             452         488      297202+  82  Linux スワップ / Solaris

コマンド (m でヘルプ): t
領域番号 (1-4): 1
16進数コード (L コマンドでコードリスト表示): fd
領域のシステムタイプを 1 から fd (Linux raid 自動検出) に変更しました

コマンド (m でヘルプ): p

ディスク /dev/sdb: 4016 MB, 4016046080 バイト
ヘッド 255, セクタ 63, シリンダ 488
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
Disk identifier: 0x90909090

デバイス ブート     始点        終点    ブロック   Id システム
/dev/sdb1               1         451     3622626   fd  Linux raid 自動検出
/dev/sdb2             452         488      297202+  82  Linux スワップ / Solaris

コマンド (m でヘルプ): w
領域テーブルは交換されました!

ioctl() を呼び出して領域テーブルを再読込みします。

root@fs:/home/nao# mdadm --create --auto=md --level=1 --raid-devices=2 /dev/md1 /dev/sdb1 missing
root@fs:/home/nao# mkfs -t ext3 /dev/md1
root@fs:/home/nao# mkdir /mnt/root
root@fs:/home/nao# mount /dev/md1 /mnt/root
root@fs:/home/nao# rsync -aH --one-file-system / /mnt/root
root@fs:/home/nao# vi /boot/grub/menu.lst

"root=/dev/sdc1" → "root=/dev/md0"に変更。
UUIDを/dev/sdb1のUUIDに修正。
UUIDの調べ方は、

root@fs:/home/nao#/ lib/udev/vol_id -u /dev/sdb1

root@fs:/home/nao# update-grub
root@fs:/home/nao# viu /etc/fstab

"/dev/sdc1" → "/dev/md0"に変更。

最後に、ブートローダーをインストールします。

root@fs:/home/nao# grub

grub> device (hd0) /dev/sdb
grub> setup --stage2=/boot/grub/stage2 (hd0) (hd0,0)
grub> quit

そして、再起動です。。。
起動しません(;;)
/dev/md1がないと、おこられてしまします。

UbuntuのCDのレスキューモードでの起動にはmdadmが入っていないので、
Fedora11のDVDのレスキューモードで起動して、

/boot/grub/menu.lst 
/etc/mdadm/mdadm.conf

など、あらゆるパラメータをいじりましたが、起動しないので。
方向性を変えます。

最初から、RAID1でインストールすることにします。

つづく。







この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。