FreeBSD QandA 1170

FreeBSD QandA

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 まで お知らせください。