我正在使用Ubuntu 10.04,我意外地从fstab文件中删除所有条目,同时做一个备份(是的,我知道;))。
我想知道是否有一种方法来重build与当前的安装选项,因为我没有重新启动服务器,因为删除。 如果没有这样的程序,有没有人可以帮我重build呢。
使用这个 ,我已经find了命令来显示当前的设置,但我不知道该怎么做。
$ 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 =“Expansion Drive”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 none / sys / kernel / debug debugfs rw 0 0 none / sys / kernel / security securityfs rw 0 0 none / dev devtmpfs rw,mode = 0755 0 0 none / 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,noexec,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
你可以从mtab复制以/dev/sd**开头的行,并将它们粘贴到一个新的文本文件中,并用UUID或LABEL改变/dev/sd** 。 例如从你的configuration:
使用
UUID="3fc55e0f-a9b3-4229-9e76-ca95b4825a40" / ext4 rw,errors=remount-ro 0 0
代替
/dev/sda1 / ext4 rw,errors=remount-ro 0 0
上面的代码行也可以,但UUID是新的标准,如果你的grubconfiguration了UUID,它可能不能理解哪个分区是什么。
如果分区有Label,则可以使用LABEL来代替UUID ,例如:
LABEL="Files_Server_Int" /media/Files_Server ext4 rw 0 0
IMO将你的mtab复制到一个新文件中,并删除以"none"开头的行,并用blkid输出equivelants改变/dev/sd**部分。 如果存在UUID ,请使用UUID而不是/dev/sd** 。 如果LABEL存在,则使用LABEL而不是UUID 。
不要删除"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。
mtab(它是dynamic生成的)的“内容”与fstab格式是100%兼容的。
首先,将当前的文件复制到某个地方SAFE,现在:
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和挂载手册页,而重新启动:)
您可以尝试按以下格式写入文件:
# <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