現在のドライブの状況 †
[root@duron root]# df -h
Filesystem サイズ 使用 残り 使用% マウント位置
/dev/hda7 2.5G 345M 2.0G 15% /
/dev/hda1 99M 20M 74M 22% /boot
/dev/hda3 15G 13G 1.1G 93% /home
none 185M 0 185M 0% /dev/shm
/dev/hda2 1.2G 33M 1.1G 3% /tmp
/dev/hda5 5.8G 1.3G 4.3G 22% /usr
/dev/hda6 4.0G 811M 3.0G 22% /var
新しいドライブをcdのケーブルを使って接続し起動。ハード的に認識されている。
ideのセカンダリにつないであるので、hdcとして認識された。ジャンパは触っていない。
[root@duron root]# cd /proc/ide
[root@duron ide]# ls -l
合計 2
- r--r--r-- 1 root root 0 10月 9 14:41 drivers
lrwxrwxrwx 1 root root 8 10月 9 14:41 hda -> ide0/hda
lrwxrwxrwx 1 root root 8 10月 9 14:41 hdc -> ide1/hdc
dr-xr-xr-x 3 root root 0 10月 9 14:41 ide0
dr-xr-xr-x 3 root root 0 10月 9 14:41 ide1
- r--r--r-- 1 root root 0 10月 9 14:41 via
[root@duron ide]# cat hda/model
Maxtor 2F030L0
[root@duron ide]# cat hda/capacity
60058656
[root@duron ide]# cat hdc/model
HDT722516DLAT80
[root@duron ide]# cat hdc/capacity
321672960
fdisk でパーテーションを作る †
http://www.a-yu.com/opt/fdisk.html
今使っているディスクを確認してみる
[root@duron ide]# fdisk /dev/hda
このディスクのシリンダ数は 3738 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
(例. DOS FDISK, OS/2 FDISK)
コマンド (m でヘルプ): p
Disk /dev/hda: 30.7 GB, 30750031872 bytes
255 heads, 63 sectors/track, 3738 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス ブート 始点 終点 ブロック ID システム
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 3583 3738 1253070 83 Linux
/dev/hda3 14 1925 15358140 83 Linux
/dev/hda4 1926 3582 13309852+ f Win95 拡張領域 (LBA)
/dev/hda5 1926 2690 6144831 83 Linux
/dev/hda6 2691 3212 4192933+ 83 Linux
/dev/hda7 3213 3531 2562336 83 Linux
/dev/hda8 3532 3582 409626 82 Linux スワップ
領域テーブル項目がディスクの順序と一致しません
増設したディスクを確認
[root@duron ide]# fdisk /dev/hdc
デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも
含んでいません
新たに DOS ディスクラベルを作成します。あなたが書き込みを決定するまで、変更は
メモリ内だけに残します。その後はもちろん以前の内容は修復不可能になります。
このディスクのシリンダ数は 20023 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
(例. DOS FDISK, OS/2 FDISK)
警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって
正常になります
コマンド (m でヘルプ): p
Disk /dev/hdc: 164.6 GB, 164696555520 bytes
255 heads, 63 sectors/track, 20023 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス ブート 始点 終点 ブロック ID システム
コマンド (m でヘルプ):
パーテーションの容量を考える †
root,var,usr,tmp,swap,bootなんかはドライブ自体が大きくなったから樋って増やす必要もないだろう。
1. boot:100M
2.usr:5G
3.+root:3G
5.var:10G
6.tmp:2G
7.swap:600M
8.home:残り
fdisk で領域を確保後、boot とswap の設定を行う。wで終了後再度fdis後チェックしたのが下。
[root@duron ide]# fdisk /dev/hdc
このディスクのシリンダ数は 20023 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
(例. DOS FDISK, OS/2 FDISK)
コマンド (m でヘルプ): p
Disk /dev/hdc: 164.6 GB, 164696555520 bytes
255 heads, 63 sectors/track, 20023 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス ブート 始点 終点 ブロック ID システム
/dev/hdc1 * 1 13 104391 83 Linux
/dev/hdc2 14 622 4891792+ 83 Linux
/dev/hdc3 623 988 2939895 83 Linux
/dev/hdc4 989 19000 144681390 5 拡張領域
/dev/hdc5 989 2205 9775521 83 Linux
/dev/hdc6 2206 2449 1959898+ 83 Linux
/dev/hdc7 2450 2523 594373+ 82 Linux スワップ
/dev/hdc8 2524 19000 132351471 83 Linux
ファイルシステムを作成 †
インストーラーを使ってパーテーションを作成した場合には自動的にフォーマットを行うので必要はないが、fdiskで作ったような場合はファイルシステムの作成およびフォーマットを行う必要がある。
mkfs.ext3 -c /dev/hdc1 (-c はドライブの全セクタチェックを行うというオプション。時間がかかるが、新品のドライブはやっておいた方が、トラブルが起こったときに後悔のネタが一つ少なくなる)
mkfs というコマンドもあるが、こちらはオプションで明示しないとext2ファイルシステムになる。2でも3でも大差は無いが、ジャーナルをとっている分、何かあったときに回復が早くなるかもしれない。ジャーナルをとっているからと言って、安全性は大差は無い。らしい。)
[root@duron root]# mkfs.ext3 -c /dev/hdc6
mke2fs 1.34 (25-Jul-2003)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
245280 inodes, 489974 blocks
24498 blocks (5.00%) reserved for the super user
First data block=0
15 block groups
32768 blocks per group, 32768 fragments per group
16352 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Checking for bad blocks (read-only test): done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 28 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
これは、パーテション毎に行う必要がある。ただし、スワップだけは特別で、別のコマンドを使用する。
[root@duron root]# mkswap -c /dev/hdc7
Setting up swapspace version 1, size = 608632 kB
ドライブをマウントする †
マウントポイントとなるディレクトリを作り、そこへのデバイスのパーテーションを割り当てる。
[root@duron root]# mkdir /backup_root <ーーディレクトリ作成
[root@duron root]# mount /dev/hdc1 /backup_root <ーマウント
[root@duron root]# df -h <ー確認
Filesystem サイズ 使用 残り 使用% マウント位置
/dev/hda7 2.5G 345M 2.0G 15% /
/dev/hda1 99M 20M 74M 22% /boot
/dev/hda3 15G 13G 1.1G 93% /home
none 185M 0 185M 0% /dev/shm
/dev/hda2 1.2G 33M 1.1G 3% /tmp
/dev/hda5 5.8G 1.3G 4.3G 22% /usr
/dev/hda6 4.0G 811M 3.0G 22% /var
/dev/hdc1 99M 4.1M 90M 5% /backup_root<ーOSのファイルシステムとして使用可能になった。
残りのパーテーション用の領域を同じように割り当てていく。
[root@duron root]# df -h
Filesystem サイズ 使用 残り 使用% マウント位置
/dev/hda7 2.5G 345M 2.0G 15% /
/dev/hda1 99M 20M 74M 22% /boot
/dev/hda3 15G 13G 1.1G 93% /home
none 185M 0 185M 0% /dev/shm
/dev/hda2 1.2G 33M 1.1G 3% /tmp
/dev/hda5 5.8G 1.3G 4.3G 22% /usr
/dev/hda6 4.0G 811M 3.0G 22% /var
/dev/hdc1 99M 4.1M 90M 5% /backup_boot
/dev/hdc3 2.8G 20K 2.7G 1% /backup_root
/dev/hdc2 4.6G 33M 4.4G 1% /backup_usr
/dev/hdc5 9.2G 33M 8.7G 1% /backup_var
/dev/hdc8 125G 33M 118G 1% /backup_home
バックアップの実行 †
パーテーションの数だけ実行
[root@duron root]# dump -0 -f - /|(cd /backup_root;restore -xy -f -)
http://www.oiden.net/Flets/bangai04/dump_restore.html
確認してみる
使用は同じだが、homeの利用率が93%から11%になっているのが嬉しい。
[root@duron root]# df -h
Filesystem サイズ 使用 残り 使用% マウント位置
/dev/hda7 2.5G 345M 2.0G 15% /
/dev/hda1 99M 20M 74M 22% /boot
/dev/hda3 15G 13G 1.1G 93% /home
none 185M 0 185M 0% /dev/shm
/dev/hda2 1.2G 33M 1.1G 3% /tmp
/dev/hda5 5.8G 1.3G 4.3G 22% /usr
/dev/hda6 4.0G 812M 3.0G 22% /var
/dev/hdc1 99M 20M 74M 22% /backup_boot
/dev/hdc3 2.8G 313M 2.4G 12% /backup_root
/dev/hdc2 4.6G 1.3G 3.2G 28% /backup_usr
/dev/hdc5 9.2G 811M 8.0G 10% /backup_var
/dev/hdc8 125G 13G 106G 11% /backup_home
[root@duron root]#
起動できるように †
grubのFDを作成
1枚目
[root@duron i386-redhat]# dd if=/usr/share/grub/i386-redhat/stage1 of=/dev/fd0 count=1
読み込んだブロック数は 1+0
書き込んだブロック数は 1+0
2枚目
[root@duron i386-redhat]# dd if=/usr/share/grub/i386-redhat/stage2 of=/dev/fd0 seek=1
読み込んだブロック数は 203+1
書き込んだブロック数は 203+1
パッケージによっては、i356-pcの場合あり。該当ディレクトリで確認。(これではまった)
http://www.itmedia.co.jp/help/tips/linux/l0522.html
http://www.oiden.net/Flets/bangai04/
起動 †
grub の fD を入れてもプロンプトが表示されない。
HDのMBRが設定されていないためと思い、現行システムから起動し、grubを実行。増設ドライブのトップのパーテーションにgrubをセットアップしてみる。
grub > root (hd1,0)<- 2番目のドライブの一番目のパーテーションをさしている。
grub > setup (hd1,0)
現行ドライブを外して、起動してみたら見慣れたGRUBの起動が面が出るようになった。しかし、その後いきなりkarnel panicで止まってしまう。
fstab とラベル †
現行のドライブのパーテーションの設定がイレギュラーなので、パーテーションのマッピングがうまく行かないのではないかと思われる。
そこで、fstabの設定を見直すがよくわからない。
物理的なデバイスをOS上で使うためのマウントポイントを結び付けるものなはずだが、/dev/hda1 といった表記がされていない。その変わりに、LABELと書かれている。
現在のシステムのパーテーションはインストール時にfedoraのインストーラーで設定したもので、ちょっとイレギュラーな感じはしていた。で、hda1といった番号とfstabに記述された順序が異なっているのにどうやって対応づけているのか分からなかったが、LABELでやっているらしいと思い調べた。
すると、fedoraはfstabでラベルを使うということが判明。調べると、e2labelというコマンドがあることが判明。
[root@duron root]# e2label /dev/hdb3 /
[root@duron root]# e2label /dev/hdb1 /boot
[root@duron root]# e2label /dev/hdb2 /usr
[root@duron root]# e2label /dev/hdb3 /root
[root@duron root]# e2label /dev/hdb5 /var
[root@duron root]# e2label /dev/hdb6 /tmp
[root@duron root]# e2label /dev/hdb8 /home
面倒でなければ、fstabの中身でLABELを使わずに
/dev/hda1 /boot ext3 defaults 1 1
/dev/hda2 swap swap defaults 0 0
という書き方でマウントポイントを設定してもいいのかも知れない。ただし、kernel panicが起きているのがfstab以前のような気がする(fstabは/root下に実ファイルがあるが、/rootが見付からないというメッセージが出力された直後に止まってしまうため)。
元のhddからコピーしたfstabのうち、swapだけ書き換えたもの(swapはラベル付けできないので、デバイスで記述する必要がある)。
LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
LABEL=/home /home ext3 defaults 1 2
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
LABEL=/tmp /tmp ext3 defaults 1 2
LABEL=/usr /usr ext3 defaults 1 2
LABEL=/var /var ext3 defaults 1 2
/dev/hda7 swap swap defaults 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0