分类: LINUX
2010-09-19 12:43:06
我们将以问题开始说明: 案例: 由于n年前的误操作,导致系统启动的时候,提示如下错误: Couldn't find matching filesystem:LABEL=/iloveyao *** An error occurred during the filesystem check. ***Dropping you to a shell; the system will reboot ***When you leave the shell 故障分析: linux系统在启动的时候,为了加载相关的文件系统,会去检查配置文件 /etc/fstab ,然后按照其内容将相关分区mount以供我们使用。在系统启动后,我们还可以cat /etc/mtab 查看那些文件系统已经mount。也就是说 /etc/mtab 他和 /etc/fstab 的不同点在于:一个是确实已经mount的(包括操作系统建立的虚拟文件等)、一个是准备mount(但不一定都是mount成功的)。 其中,如果 /etc/fstab 配置错误,或者对文件系统进行了相关操作,但是没有更新 /etc/fstab ,就会导致相应问题出现。 根据上面的提示,我们可以判断, 由于系统没有发现label名称为 /liloveyao 的分区,从而导致系统无法正常启动。而且我们也可以推断出,这个出错的配置在 /etc/fstab 文件中的大概内容如下(如果是默认安装的linux9): LABEL=/iloveyao 文件名 ext3 defaults 1 2 这里简要解释上面一下: 第一列:代表我们要加载分区的label名称,除了使用label名称,我们也可以直接使用分区的设备名称,如 /dev/sda3 或者 /dev/sda6。需要注意label的名称要加“/”,否则,启动时会报错。 第二列:代表该分区加载到哪个 目录文件,例如为 /iloveyao ,当然目录名称可以任取,但是关键是要确实存在这个目录名称。 第3列:代表文件系统 第4列:代表启动的时候加载分区 第5、6:linux对齐检查备份使用的,除了 / 分区,其他正常分区多为 1 2 那么,系统为什么没有label名称为 /liloveyao 的分区呢? 最大的可能就是: a、分区存在,但是分区上次启动前,被改了 label 名称 b、分区移走了,当然 label 也就没有了 附:有一种情况,就是 label名称为 /iloveyao 的分区存在,但在 加载的目录文件不存在,这个时候,系统提示是不一样的。 解决方法: a、针对a的情况,重新修改该分区的label名称即可,例如该分区设备名称为 /dev/sda6 ,那么修改方法有: e2label /dev/sda6 /iloveyao 还有:mkfs.ext3 -L /iloveyao /dev/sda6 之后重新启动。 b、针对b的情况,需要修改 /etc/fstab 文件,将关于 /iloveyao 的那行删除,然后重启。 ***这里引申出一个问题,就是不知道各分区的 label名称是什么,怕修改错了,把正常的分区的label也改了,解决方法是使用下面的命令进行修改前的检查: fdisk -l 然后: e2label /dev/sda1 (或者为 /dev/hda1 ,下同 ) e2label /dev/sda2 e2label /dev/sda3 e2label /dev/sda5 e2label /dev/sda6 …… 然后:cat /etc/fstab 或者 df 发现配置正常的分区,就不要去改了。 《《《《《《《《《《《《《《《《 我爱瑶分隔河》》》》》》》》》》》》》》》》》》》 ***上面的分享结束了,下面小弟也有个问题要请教大家:是关于mkfs的问题 第1组命令:2个命令输出稍有不同 mkfs.ext3 -T news /dev/sda5 (指定该分区文件系统的块大小为4096) mkfs.ext3 -b 4096 /dev/sda5 第2组命令:完全等价 mkfs.ext3 -i 4096 /dev/sda5 (指定每个inode的字节数为4096) mkfs.ext3 /dev/sda5 上面各命令的输出结果在下面。我很想知道这2组命令处理的分区在 系统性能、文件存放、inodes数量上面有些什么区别? 什么情况下需要使用第一组的命令重新创建分区? 谢谢! <------------------------------------我爱瑶分隔线-----------------------------------> # mkfs.ext3 -T news /dev/sda5 mke2fs 1.32 (09-Nov-2002) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 124544 inodes, 124495 blocks 6224 blocks (5.00%) reserved for the super user First data block=0 4 block groups 32768 blocks per group, 32768 fragments per group 31136 inodes per group Superblock backups stored on blocks: 32768, 98304 Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 23 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. <------------------------------------我爱瑶分隔线-----------------------------------> # mkfs.ext3 -b 4096 /dev/sda5 mke2fs 1.32 (09-Nov-2002) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 124544 inodes, 124495 blocks 6224 blocks (5.00%) reserved for the super user First data block=0 4 block groups 32768 blocks per group, 32768 fragments per group 31136 inodes per group Superblock backups stored on blocks: 32768, 98304 Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 23 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. <------------------------------------我爱瑶分隔线-----------------------------------> # mkfs.ext3 -i 4096 /dev/sda5 mke2fs 1.32 (09-Nov-2002) Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) 124928 inodes, 497983 blocks 24899 blocks (5.00%) reserved for the super user First data block=1 61 block groups 8192 blocks per group, 8192 fragments per group 2048 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409 mkfs.ext3: Attempt to write block from filesystem resulted in short write while zeroing block 497976 at end of filesystem Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 37 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. <------------------------------------我爱瑶分隔线-----------------------------------> [root@lisp root]# mkfs.ext3 /dev/sda5 mke2fs 1.32 (09-Nov-2002) Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) 124928 inodes, 497983 blocks 24899 blocks (5.00%) reserved for the super user First data block=1 61 block groups 8192 blocks per group, 8192 fragments per group 2048 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409 mkfs.ext3: Attempt to write block from filesystem resulted in short write while zeroing block 497976 at end of filesystem Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 26 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. |
chinaunix网友2010-09-21 08:14:42
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com