壊れたfstabを修正する最良の方法はどれですか?私はいくつかのライブLinuxディストリビューションでそれを行うことができると思います。最初にパーティションを検索し、一時的に作成された/ temprootにマウントします。認識したパーティションを1つずつ手動で新しく作成した/ temprootにマウントします。非常に重要なのは、各パーティションとスワップパーティションの正しいファイルシステムを利用することです。その後、コマンドchrootを使用して、元のルートを修正します。誰かがより良い方法を知っていますか?どんな提案も歓迎しますか?
ライブCDを起動したら、最初に提案どおりにパーティションを特定する必要があります。
Partedを使用すると、いくつかの手がかりが得られます。
# parted /dev/sdc P
Number Start End Size Type File system Flags
1 1049kB 2155MB 2154MB primary linux-swap(v1)
4 2155MB 212GB 209GB extended
5 2156MB 3230MB 1074MB logical ext3
6 3231MB 5378MB 2147MB logical
7 5379MB 48.3GB 42.9GB logical ext4
2 212GB 319GB 107GB primary ext4
3 319GB 320GB 1080MB primary ext3 boot
ここで、sdc1
がスワップであることがわかります-これは簡単です。
sdc
3ではブートフラグが有効になっているため、ブートパーティションである可能性が高いことに注意してください(フラグはブート可能パーティションとしてマークしますが、必ずしも/ bootパーティションである必要はありません)。ブートパーティションは、多くを含む必要がないため、一般的に小さいです。この場合、他の可能性のある候補/dev/sdc5
は実際のブーツです
それをマウントすると、
$ mount /dev/sdc5 /mnt
$ grep root /mnt/grub/grub.cfg
set root='(hd2,5)'
linux /vmlinuz-2.6.32-5-xen-AMD64 root=UUID=5d41ba76-8261-41cd-b147-1f034833f0a1 ro quiet
Grub.cfg(またはmenu.lst)がデバイス名を使用している場合は、どちらがルートであるかがわかります。ただし、この場合はUUIDを使用しているため、デバイスを識別する必要があります。
ls -l /dev/disk/by-uuid/5d41ba76-8261-41cd-b147-1f034833f0a1
lrwxrwxrwx 1 root root 10 Jan 18 08:45 /dev/disk/by-uuid/5d41ba76-8261-41cd-b147-1f034833f0a1 -> ../../sdc7
これで、ルートパーティションが/dev/sdc7
であることがわかりました。
提案されているように他のパーティションを順番にマウントすると、残りのパーティションを特定するのに役立ちます。環境にchrootする必要はありません。fstabを直接編集するだけです。
mount /dev/sdc7 /mnt
vi /mnt/etc/fstab
そして、エントリを再作成します。
/ etc/mtabファイルは、パーティションがマウントされるときに作成されることに注意してください。 fstabが壊れてから起動できなかった場合、これはそのままである可能性があるため、/etc/mtab
を調べて、そこからマウント情報を回復できる可能性があります。通常、mtabにある行を直接fstabにコピーできます。