web-dev-qa-db-ja.com

現在の構成でfstabファイルを修復する方法

私はUbuntu 10.04を使用していますが、バックアップ中に誤ってすべてのエントリをfstabファイルから削除しました(そうです、私は知っています;))。

削除後にサーバーを再起動しなかったため、現在のマウントオプションで再構築する方法があるかどうかを知りたいです。そのようなプログラムがない場合、誰かが私にそれを再構築するのを手伝ってくれるでしょうか?.

this を使用して、現在の設定を表示するコマンドを見つけましたが、それをどうするかわかりません。

 $ Sudo blkid 
/dev/sda1:UUID = "3fc55e0f-a9b3-4229-9e76-ca95b4825a40" TYPE = "ext4" 
/dev/sda5:UUID = "718e611d -b8a3-4f02-a0cc-b3025d8db54d "TYPE =" swap "
/dev/sdb1:LABEL =" Files_Server_Int "UUID =" 02fc2eda-d9fb-47fb-9e60-5fe3073e5b55 "TYPE =" ext4 "
/dev/sdc1:UUID = "41e60bc2-2c9c-4104-9649-6b513919df4a" TYPE = "ext4" 
/dev/sdd1:LABEL = "拡張ドライブ" UUID = "782042B920427E5E" TYPE = "ntfs "
 
 
 $ cat /etc/mtab
/dev/sda1/ext4 rw、errors = remount-ro 0 0 
 proc/proc proc rw、noexec、nosuid、nodev 0 0 
 none/sys sysfs rw、noexec、nosuid、nodev 0 0 
 none/sys/fs/Fuse/connections fusectl rw 0 0 
なし/ sys/kernel/debug debugfs rw 0 0 
なし/ sys/kernel/security securityfs rw 0 0 
なし/ dev devtmpfs rw、mode = 0755 0 0 
なし/ dev/pts devpts rw、noexec、nosuid、gid = 5、mode = 0620 0 0 
 none/dev/shm tmpfs rw、nosuid、nodev 0 0 
 none/var/run tmpfs rw 、nosuid、mode = 0755 0 0 
 none/var/lock tmpfs rw、no exec、nosuid、nodev 0 0 
 none/lib/init/rw tmpfs rw、nosuid、mode = 0755 0 0 
 none/var/lib/ureadahead/debugfs debugfs rw、relatime 0 0 
/dev/sdc1/home ext4 rw 0 0 
/dev/sdb1/media/Files_Server ext4 rw 0 0 
 binfmt_misc/proc/sys/fs/binfmt_misc binfmt_misc rw、noexec、 nosuid、nodev 0 0 
/dev/sdd1/media/Expansion\040Drive fuseblk rw、nosuid、nodev、allow_other、blksize = 4096、default_permissions 0 0 
 gvfs-Fuse-daemon/home/yvoyer /.gvfs Fuse.gvfs-Fuse-daemon rw、nosuid、nodev、user = yvoyer 0 0 
/dev/sdd1/media/Backup500 fuseblk rw、nosuid、nodev、sync、allow_other、blksize = 4096、default_permissions 0 0 
/dev/sr0/media/DIR-615 iso9660 ro、nosuid、nodev、uhelper = udisks、uid = 1000、gid = 1000、iocharset = utf8、mode = 0400、dmode = 0500 0 0 
 gvfs-Fuse-daemon /home/cdrapeau/.gvfs Fuse.gvfs-Fuse-daemon rw、nosuid、nodev、user = cdrapeau 0 0 
 
8
yvoyer

/dev/sd**で始まる行をmtabからコピーして新しいテキストファイルに貼り付け、/dev/sd**UUIDまたはLABELで変更できます。例えばあなたの設定から:

使用する

UUID="3fc55e0f-a9b3-4229-9e76-ca95b4825a40" / ext4 rw,errors=remount-ro 0 0

代わりに

/dev/sda1 / ext4 rw,errors=remount-ro 0 0

上記の行も機能しますが、[〜#〜] uuid [〜#〜]は新しい標準であり、GUIDがUUIDで構成されている場合、どのパーティションが何であるかを理解できない場合があります。

パーティションにラベルがある場合は、LABELの代わりにUUIDを使用できます。次に例を示します。

LABEL="Files_Server_Int" /media/Files_Server ext4 rw 0 0

IMOはmtabを新しいファイルにコピーし、"none"で始まる行を削除し、/dev/sd**の部分をblkid出力等価物で変更します。 [〜#〜] uuid [〜#〜]が存在する場合は、/dev/sd**ではなくUUIDを使用します。 [〜#〜] label [〜#〜]が存在する場合、[〜#〜] uuid [〜#〜]の代わりにLABELを使用します。

"none"行以外は削除しないでください。ファイルを保存し、ファイル名をfstabに変更して、/etcにコピーします。

最後にスワップ用の行を追加します(これを忘れると、システムは起動しますが、スワップ領域はゼロになります)。例えばあなたの場合、blkidはこの行を出力することに注意してください:

/dev/sda5: UUID="718e611d-b8a3-4f02-a0cc-b3025d8db54d" TYPE="swap" 

したがって、fstabに次の行が必要です。

UUID=718e611d-b8a3-4f02-a0cc-b3025d8db54d none  swap sw   0   0

これは、fstabの復元に役立つ場合があります。

7
Sencer H.

Mtab(動的に生成される)の「コンテンツ」は、fstabフォーマットと100%互換性があります。

まず、この現在のファイルを安全な場所に今すぐコピーします。

cp /etc/mtab ~/mtab_working

次に、それを新しいfstabにコピーし、起動に必要でないすべてのものを削除します。あなたは残ります:

/dev/sda1 / ext4 rw,errors=remount-ro 0 0
proc /proc proc rw,noexec,nosuid,nodev 0 0
none /dev/pts devpts rw,noexec,nosuid,gid=5,mode=0620 0 0
none /dev/shm tmpfs rw,nosuid,nodev 0 0
/dev/sdc1 /home ext4 rw 0 0

そして、必要なものがすべて揃うまで、(再起動したシステムが起動している間に)データを追加し直します。

リブート中にfstabを読み、manページをマウントする時間があります:)

4
adaptr

次の形式でファイルを書き込むことができます。

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
/dev/sda8       /               ext4    errors=remount-ro 0       1
/dev/sda6       /boot           ext4    defaults        0       2
# swap was on /dev/sda7 during installation
UUID=718e611d-b8a3-4f02-a0cc-b3025d8db54d none            swap    sw              0       0

この例では、/と/ bootの2つのパーティションしかありません。

1
Khaled