修复错误配置fstab文件导致系统无法正常启动<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
 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. 在重启时遇到问题

 

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = w ns = "urn:schemas-microsoft-com:office:word" />

图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 /)。如果没有此步操作,则文件系统处于只读状态,导致不能修改配置文件并保存,修复存在的问题。
    

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

  1. CentOS6修改/etc/fstab文件造成系统无法启动的问题

    CentOS6修改/etc/fstab文件造成系统无法启动,并无法修改fstab文件解决方式: 1.启动linux提示失败,输入root账户密码,进入 repair filesystem#,注意此时修 ...

  2. 【疑难杂症爆破委员会】UEFI Linux、Windows双系统,丢失Windows的efi文件导致找不到启动项(恢复Windows的efi文件)

    [疑难杂症爆破委员会] UEFI Linux.Windows双系统,丢失Windows的efi文件导致找不到启动项,导致无法进入Windows系统 状况说明 状况是这样的:我本来好好的装着Linux和 ...

  3. centos修改磁盘uuid_Centos更换损坏硬盘UUID改变导致系统不能正常启动处理

    Centos 更换损坏硬盘 UUID 改变导致系统不能正常启动处理 一. 适用场景 本文档的适用场景为,更换硬盘导致系统启动时因 UUID 不同,导致 挂载文件读取失败, 系统不能正常启动, 同时本文 ...

  4. Springboot集成knife4j,Failed to start bean ‘documentationPluginsBootstrapper‘;导致系统不能正常启动

    Springboot集成knife4j,Springboot更新到2.6启动报错Failed to start bean 'documentationPluginsBootstrapper'; nes ...

  5. 为何删除bootmgr文件后系统仍然能启动

    很多刚开始研究系统启动技术的人都会遇到这样的问题,明明已经修改了系统盘的bootmgr文件,为何在启动的时候,引导文件不起作用呢?就算把bootmgr文件删掉,仍然不影响系统原来的启动方式,这到底是什 ...

  6. linux中fstab文件_如何在Linux上写入fstab文件

    linux中fstab文件 zentilia/Shutterstock.comzentilia / Shutterstock.com Adding a new hard drive or solid- ...

  7. linux中fstab文件的作用,如何在Linux上写入fstab文件 | MOS86

    在Linux计算机上添加新的硬盘驱动器或固态驱动器? 您需要编辑fstab文件. 很多人觉得这个主意很吓人. 是的,至关重要的是您要正确,但掌握了正确的知识,这确实并不困难. 我们将引导您完成编辑fs ...

  8. /etc/fstab文件出错,无法进入Linux系统

    问题描述 今天复习Linux文件系统管理,在Linux系统上挂载了一块新硬盘之后,然后分区,格式化,一步步走下来,为了能够使该硬盘在系统启动时自动挂载,于是将之写入了/etc/fstab文件,然而在r ...

  9. linux 文件乱码_RedHatlinux系统虚机启动后/etc/fstab中的文件系统未能挂载上

    某一台linux虚机启动后,/etc/fstab中的文件系统不能挂载上,linux机器的操作系统版本为NeoShine Linux Server 3.0.6 操作系统版本 使用df -h查看磁盘的挂载 ...

最新文章

  1. SAP PP COR3不能看工单后续的备料TO单号?
  2. jquery设置属性值或移除属性
  3. 软件工程第二周阅读作业
  4. 【Echarts 3.x】填坑记
  5. 【推荐系统】协同过滤 零基础到入门
  6. 小米11和华为p40pro哪个好
  7. 每天一道LeetCode-----删除序列中指定元素,将满足要求的元素移动到前面
  8. 有关Struts2a的ction直接使用response异步问题
  9. 图像局部显著性—点特征(SiftGPU)
  10. video-js RTMP直播
  11. 代码重构技巧宝典,学透本篇就足够了!
  12. 如何在Windows 10上安装MySQL数据库服务器8.0.19
  13. 简练软考知识点整理-公邀竞单询其
  14. SendMessageTimeOut函数使用方法
  15. 程序员计算器 android6,程序员计算器
  16. 数据结构课程设计之学生宿舍信息管理系统
  17. C 通过四个点计算两条直线的交点
  18. c语言统计大小写字母 空格 和数字个数,C++统计中英文大小写字母、数字、空格及其他字符个数的方法...
  19. 字节跳动大数据中心17万服务器硬实力支撑今日头条等产品线(公号回复“字节跳动”下载PDF典型资料,欢迎转发、赞赏支持科普)
  20. Vue和SuperSlide做轮播效果

热门文章

  1. PHP取得json前面有乱码(去除文件头部BOM)
  2. Tomcat 与 Resin PK大战
  3. 数据结构 i_love(我喜欢)
  4. 查找表包含的页和页所在的表
  5. 查看EBS中BI Publisher的版本
  6. 模板模式(C++) 【转】
  7. DOTA系列 食尸鬼(小狗)攻略
  8. EOSIO 指南(创建测试帐户)
  9. Redis中RedisTemplate和Redisson管道的使用
  10. C 的异常捕捉实现