FreeBSD QandA 1170
Q. Windows95 上で Partition-It (version 1.02) というソフトで Windows95
側の partition を変更したら、FreeBSD が起動できなくなりました。
A. Partition-It がハードディスク内のスライス番号を変更してしまったため
です。シングルユーザモードで起動し /etc/fstab の内容を修正して対処しま
しょう。 [管理番号 298] 参照。
手順 (FreeBSD のスライスが wd0s2* に変わった例)
1. インストールフロッピで起動し、ディスクラベルエディタで現在のスライス
(wd0s2a など) を確認します。単に Q でディスクラベルエディタを終了し
ます。
2. HDD から起動します。
3. "Enter full pathname of shell or RETURN for /bin/sh:" で止まったら、
RETURN を入力し、sh で作業します。/bin/csh でも作業可能ですが、標準で
は必要な path が設定されていないかもしれません。
4. 臨時に元の / パーティションを /mnt へマウントします。fsck で [y/n]
は `y'を入力します。
# fsck /dev/wd0a
# mount /dev/wd0a /mnt
5. 以下のようにして新しいデバイスファイルを追加します。デバイス名や引
き数などは十分確認してください。
# cd /mnt/dev
# sh MAKEDEV wd0s2a
または
# cd /mnt/dev
# mknod rwd0s2a c 3 0x00030000
# mknod rwd0s2b c 3 0x00030001
# mknod rwd0s2c c 3 0x00030002
# mknod rwd0s2d c 3 0x00030003
# mknod rwd0s2e c 3 0x00030004
# mknod rwd0s2f c 3 0x00030005
# mknod rwd0s2g c 3 0x00030006
# mknod wd0s2a b 0 0x00030000
# mknod wd0s2b b 0 0x00030001
# mknod wd0s2c b 0 0x00030002
# mknod wd0s2d b 0 0x00030003
# mknod wd0s2e b 0 0x00030004
# mknod wd0s2f b 0 0x00030005
# mknod wd0s2g b 0 0x00030006
注: wd0sMN の M、N が以下の対応になります (FreeBSD 2.2.[56] の場合)。
わかりにくいので従来の /dev/wd0s* を ls -l して、十分理解してから
mknod しましょう。
M
1 0x0002000*
2 0x0003000*
3 0x0004000*
4 0x0005000*
5 0x0006000*
N
a 0x000*0000
b 0x000*0001
c 0x000*0002
d 0x000*0003
e 0x000*0004
f 0x000*0005
g 0x000*0006
h 0x000*0007
6. 臨時のマウントをはずします。
# cd /
# umount /mnt
7. 現在のパーティションを必要なだけ一つずつ fsck /dev/wd0s2a などとし
ます。[y/n] は `y'を入力します。
8. たとえば以下のようにして各パーティションをマウントします。
# mount -u /dev/wd0s2a /
# mount /dev/wd0s2e /var
# mount /dev/wd0s2f /usr
マウントポイントなどを忘れている場合は、cat /etc/fstab で以前の設定を
参考にしましょう。
9. うまくマウントできたら、vi /etc/fstab で新しい設定に修正します。
10. 正常に boot できるまで復旧できたら、将来苦労しないためにも /dev 以
下で全ての wd0s* を MAKEDEV で作っておくとよいでしょう。
間違い・追加情報を見付けた場合は、
修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで
お知らせください。