系统启动不了

 


   
  1. mounting root from ufs:/dev/ad0s1a  
  2. /etc/rc.conf: 16:Syntax error:Unterminated quoted string  
  3. Enter full pathname of shell or RETURN for /bin/sh:  

出现这个提示后就不继续启动了.然后我按ENTER后出现 #

解决方法:

 


   
  1. 输入enter  
  2. 输入fsck -y  
  3. 然后reboot   

附录:fsck的使用

fsck程序

当系统意外掉电或者类似的原因导致硬盘发生错误的时候,系统再次重启就会调用fs ck程序对硬盘进行检查。通常这个检查过程是自动的,但是如果检查中发现的错误太多 ,或者出现了无法自动解决的问题,那么系统将提示你输入超级用户口令并且启动一个 单用户shell,让你手工运行fsck解决问题。

另外一种需要手工运行fsck的情况是系统启动了足够多的次数,系统希望你进行例行 的硬盘检查。这时系统在引导过程中提示你输入超级用户口令进入系统维护,或者直接 按下^D组合键继续正常的引导。

无论哪一种情况,在你决定进行fsck检测之后,你都会进入一个单用户shell。当然, 也存在另外的情况:纯粹出于好奇心,你想对某个硬盘进行检查。

在讨论fsck之前,你必须记住,原则上你不应该在一个已经连接的文件系统上使用fs ck,相反,你应该把它拆卸下来再做检查。当你试图fsck一个已经连接的文件系统的时 候,你会得到这样的提示:

 


   
  1. $fsck /dev/hda5  
  2.  
  3. Parallelizing fsck version 1.15 (18-Jul-1999)  
  4.  
  5. e2fsck 1.15, 18-Jul-1999 for EXT2 FS 0.5b, 95/08/09  
  6.  
  7. /dev/hda5 is mounted.  
  8.  
  9. WARNING!!! Running e2fsck on a mounted filesystem may cause  
  10.  
  11. SEVERE filesystem damage.  
  12.  
  13. Do you really want to continue (y/n)?  

如果你知道DOS的chkdsk命令在windows 下面执行会有什么结果的话,你就会理解为什 么这里应该回答no。fsck一个已经连接的文件系统也许会把它彻底摧毁,或者至少导致 一定程度的破坏。当然,有时你可能认为自己已经别无选择,比如/分区发现了问题。不 过即使在这种情况下,你需要做的也应该是把硬盘拆卸下来,安装到另外的机器上作为 一个附加文件系统进行检测。

所以你应该首先把这个文件系统拆卸下来,然后再运行fsck:

 


   
  1. $fsck /dev/hda5  
  2.  
  3. Parallelizing fsck version 1.15 (18-Jul-1999)  
  4.  
  5. e2fsck 1.15, 18-Jul-1999 for EXT2 FS 0.5b, 95/08/09  
  6.  
  7. /dev/hda5: clean, 44157/1474560 files, 1994621/2945911 blocks  

现在这个文件系统上没有发现逻辑错误。

fsck的语法是fsck –t [文件系统类型] [设备名字]。文件系统类型通常并不需要明 确标出。不过,要知道,尽管我们现在是手工执行fsck,不过如果它发现了错误,你对 它的提示差不多只能选择“y”,除非你是一个UNIX文件系统专家。一般情况下,系统的 启动脚本是以fsck –a [设备名]让fsck自动执行,如果它发现了诸如两个文件项交叉, 目录项错误等等比较危险的错误,它就会退出,然后系统提示你手工执行fsck。但是你 能看出来,对于这样性质的错误,你又能帮助fsck什么呢?你能做的就是机械地选择ye s并且让fsck盲目地执行下去。

输入Root密码登录后采用:fsck -t ext3 -r /usr/local 修复

fsck的命令的几个使用方法

指令:fsck

使用权限 : 超级使用者

使用方式 : fsck [-sACVRP] [-t fstype] [–] [fsck-options] filesys […]

说明 : 检查与修复 Linux 档案系统,可以同时检查一个或多个 Linux 档案系统

参数 :

filesys : device 名称(eg./dev/sda1),mount 点 (eg. / 或 /usr)

-t : 给定档案系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数

-s : 依序一个一个地执行 fsck 的指令来检查

-A : 对/etc/fstab 中所有列出来的 partition 做检查

-C : 显示完整的检查进度

-d : 列印 e2fsck 的 debug 结果

-p : 同时有 -A 条件时,同时有多个 fsck 的检查一起执行

-R : 同时有 -A 条件时,省略 / 不检查

-V : 详细显示模式

-a : 如果检查有错则自动修复

-r : 如果检查有错则由使用者回答是否修复

例子 :

检查 msdos 档案系统的 /dev/hda5 是否正常,如果有异常便自动修复 :fsck -t msdos -a /dev/hda5

注意 :

此指令可与 /etc/fstab 相互参考操作来加以了解。

From:http://www.oklink.net/dnsj/czxt/linux/linuxadmin/node47.html

用fsck检查文件系统完整性 文件系统很复杂,因此易于发生错误。可以用fsck命令检查文件系统是否正确和有效。它可以根据指令修复找到的小错误,并将未修复错误报告用户。幸运的是,文件系统的代码非常有效,所以根本极少出现问题,并且问题通常原因是电源失败、硬件失败、或操作错误,例如没有正常关闭系统。

大多数系统设置为启动时自动运行fsck,因此任何错误将在系统使用前被检测到(并根据希望修正)。使用有错误的文件系统可能使问题变得更坏:如果数据结构有问题,使用这个文件系统可能使之更糟,导致更多的数据丢失。当然,在大的文件系统上运行fsck会花一定的时间,如果系统正常关闭,几乎从不发生错误,因此有一些方法可以不进行检查。如果文件/etc/fastboot存在,就不检查。另外,如果ext2文件系统在超级快中有一个特定的标记告知该文件系统在上次mount后没有正常unmount. 如果标记指出unmount正常完成(假设正常unmount指出没问题),e2fsck(fsck的ext2文件系统版) 就不检查系统。/etc/fastboot是否影响系统依赖于你的启动手稿,但ext2标记则在你使用e2fsck时发生作用–基于一个e2fsck选项(参阅e2fsck手册页)

自动检查只对启动时自动mount的文件系统发生作用。使用fsck手工检查其他文件系统,比如软盘。

如果fsck发现为修复的问题,你需要深入了解文件系统的一般工作原理和有问题的文件系统的细节,或好的备份。最后一个办法容易(虽然冗长)安排,如果你自己不知道,有时可以通过朋友、Linux新闻组、电子邮件列表或其他支持源安排。我很想告诉你更多,但我对这的学习和实践也并不多。Theodore T’so的debugfs程序应该有用。

fsck只能运行于未mount的文件系统,不要用于已mount的文件系统(除了启动时的只读根文件系统)。这是因为它存取原始磁盘,在操作系统不知道的情况下修改文件系统。 There will be trouble, if the operating system is confused.