文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>修复错误配置fstab文件导致系统无法正常启动

修复错误配置fstab文件导致系统无法正常启动

时间:2010-05-06  来源:xhq6632

 修复错误配置fstab文件导致系统无法正常启动

1. 问题再现
1.1. 操作环境说明
    操作系统:CentOS5.2
    硬盘分区情况:   
[root@localhost ~]# fdisk /dev/sda

The number of cylinders for this disk is set to 1305.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         522     4192933+  83  Linux
/dev/sda2             523         783     2096482+  83  Linux
/dev/sda3             784         914     1052257+  82  Linux swap / Solaris

Command (m for help): v
6288172 unallocated sectors
    fstab文件:
[root@localhost ~]# more /etc/fstab
LABEL=/                 /                       ext3    defaults        1 1
LABEL=/tmp              /tmp                    ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
LABEL=SWAP-sda3         swap                    swap    defaults        0 0
   
1.2. 创建新的分区,并配置fstab文件
1.2.1. 创建分区
    在/dev/sda上创建新的主分区sda4
[root@localhost ~]# fdisk /dev/sda

The number of cylinders for this disk is set to 1305.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         522     4192933+  83  Linux
/dev/sda2             523         783     2096482+  83  Linux
/dev/sda3             784         914     1052257+  82  Linux swap / Solaris

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Selected partition 4
First cylinder (915-1305, default 915):
Using default value 915
Last cylinder or +size or +sizeM or +sizeK (915-1305, default 1305):
Using default value 1305

Command (m for help): p

Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         522     4192933+  83  Linux
/dev/sda2             523         783     2096482+  83  Linux
/dev/sda3             784         914     1052257+  82  Linux swap / Solaris
/dev/sda4             915        1305     3140707+  83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
    创建文件系统,将Label设置为other
[root@localhost ~]# mke2fs -j -L other /dev/sda4
mke2fs 1.39 (29-May-2006)
Filesystem label=other
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
393216 inodes, 785176 blocks
39258 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=805306368
24 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912

Writing inode tables: done                           
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 20 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

[root@localhost ~]# e2label /dev/sda4
other
    Mount /dev/sda4到 /others
[root@localhost /]# mkdir /others
[root@localhost /]# mount /dev/sda4 /others
[root@localhost /]# mount
/dev/sda1 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda2 on /tmp type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sda4 on /others type ext3 (rw)
[root@localhost /]# cd /others
[root@localhost others]# ls -l
total 16
drwx------ 2 root root 16384 Nov 21 19:35 lost+found
[root@localhost others]#
    修改fstab文件
[root@localhost /]# vi /etc/fstab
LABEL=/                 /                       ext3    defaults        1 1
LABEL=/tmp              /tmp                    ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
LABEL=SWAP-sda3         swap                    swap    defaults        0 0
LABEL=/other            /others                 ext3    defaults        1 2
    请注意:这里用到是LABEL而不是设备名(/dev/sda4),但是这里把卷标写错,应该是other,前面没有 /。
    并且没有运行mount -a命令来验证配置是否正确。
    接着就直接重启系统了(init 6)。
[root@localhost /]# init 6
   
1.3. 问题的出现
1.3.1. 在重启时遇到问题


图1.1
    系统发现fstab中的LABEL=/other卷标不存在。

2. 故障的解决过程
2.1. 进入运行级别1
    输入root用户密码,进入运行级别1   

图2.1
    此时试图修改/etc/fstab文件

图2.2
    此时发现文件系统是只读的
    重新mount /

图2.3
    再次修改fstab文件   

图2.4
    修改完成,重启系统(init 6)。
    系统可以正常启动,问题解决了。

图2.5

3. 问题总结
    以上问题的出现是由于错误配置了/etc/fstab文件,在系统重启时,无法识别卷标(/other),从而导致无法正常启动。如果在修改/etc/fstab文件后,运行mount -a命令验证一下配置是否正确,则可以避免此类问题。
    问题的修复方法不仅适用于以上所描述的问题,同样可以处理由于错误修改配置导致系统无法启动的其他问题。
    问题的解决过程中,重新mount /是比较关键的一步(mount -n -o remount,rw /)。如果没有此步操作,则文件系统处于只读状态,导致不能修改配置文件并保存,修复存在的问题。
相关阅读 更多 +
排行榜 更多 +
我是班长去广告版下载

我是班长去广告版下载

模拟经营 下载
什么鸭小游戏安卓版下载

什么鸭小游戏安卓版下载

策略塔防 下载
极光影院官方最新版本2025下载

极光影院官方最新版本2025下载

趣味娱乐 下载