zoukankan      html  css  js  c++  java
  • linux中/etc/fstab文件删除或修改了,导致系统无法启动

      在linux中,/etc/fstab文件是磁盘挂载的问题,若该文件不小心给修改了,或者被删除了,那么就会导致系统无法重启。因为/etc/fstab文件是记录磁盘挂载的信息,若该文件出现了问题,那么对应的主目录(/)和(/boot)以及swap的磁盘将无法挂载,所以这个文件对于linux系统来说是相当重要的。

      我犯的错误是:我在对hadoop集群进行文件配置的时候,在一台主机上对/etc/fstab文件进行修改,修改好了之后,准备分发给其他主机,我开始以为fstab文件的内容是一样的,于是我就该文件分发给其他主机上,并且覆盖了其他主机原来的fstab,完了之后,我就重启其他主机,发现其他主机无法挂载硬盘,导致系统无法重启。于是就想到,每个主机里面的fstab文件内容是不一样的。因此我将犯了致命的错误。于是我就得想办法恢复这些主机上的fstab文件。网上google了一下。发现还是有办法解决的。

    在这里得说明一下,幸好我有一台主机是完好无损的,这样子我可以参照这个完好无损的主机来修改其他主机的fstab文件。修改的方法如下:

    1、网上搜了一下,大部分说是要进入BIOS后进行linux resuce模式。但我在这里介绍一下简单的方式:那就是重新制作/etc/fstab文件。制作的方法就是里哟个完好无损主机的fstab文件。因此将完好无损主机上的fstab文件分发给所有的主机。

    2、既然要重新制作fstab文件,那么需要对fstab文件的内容进行了解,我的fstab的问价内容如下:该文件可以分为三个部分。

      

    #
    # /etc/fstab
    # Created by anaconda on Tue Jun 30 23:29:58 2015
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    
    #第一部分(这是关键部分)
    UUID=16fef5b5-a9cc-4d6f-8d3f-0081546ffb04 /                       ext4    defaults        1 1
    UUID=6f352ae4-e53a-4e32-8129-369c6ba24e9a /boot                   ext4    defaults        1 2
    UUID=adf600ad-ab03-482f-ae6f-fb80e973da1e swap                    swap    defaults        0 0
    
    
    #第二部分
    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
    
    
    #第三部分
    //192.168.2.246/Share /mnt/share cifs  default,auto,username=administrator,password=Passw0rd!
    
    /dev/sdb1  /mnt/hdb ext4 defaults 0 0
    /dev/sdc1  /mnt/hdc ext4 defaults 0 0
    /dev/sdd1  /mnt/hdd ext4 defaults 0 0
    /dev/sde1  /mnt/hde ext4 defaults 0 0 
    /dev/sdf1  /mnt/hdf ext4 defaults 0 0
    

      其中,第一部分最为关键,因为第一部分就是涉及到系统文件磁盘的挂在的问题,这就是我们需要修改的地方;第二部分和第三部分所有主机都一样。

    3、针对第一部分,我们首先可以通过命令:fdisk -l 查看系统中对应的是哪个磁盘挂载  / 、/boot 以及swap这三个目录。

      3.1、我通过执行 fdisk -l 命令后可以看到如下内容:

      

      通过上图我们可以明确看到 swap对应的是磁盘/dev/sda3,那么/dev/sda1和/dev/sda2与/和 /boot对应关系我们不清楚。于是我通过查看完好无损的主机上的对应关系,发现/dev/sda2对应的是 /   ;/dev/sda1对应的是/boot。

    4、接下来我们需要知道的是/etc/fstab文件中UUID表示的是什么意思?通过网上搜索,答案如下:

      如果你有多块硬盘,硬盘在电脑中的顺序变化的时候,硬盘相同的名称可能代表着不同的硬盘分区,如果你是从 USB 设备启动,与其他 USB 设备的插入顺序也会导致分区识别的困难。

      这个时候 UUID 就派上用场了,UUID 全称是 Universally Unique Identifier,也就是说,每个分区有一个唯一的 UUID 值,这样就不会发生分区识别混乱的问题了。

    5、如何查看UUID呢?(红色的表示的是UUID)

      通过浏览 /dev/disk/by-uuid/ 下的设备文件信息。执行如下命令:

      # ls -l /dev/disk/by-uuid/

      ------

      lrwxrwxrwx 1 root root 10 10-13 09:14 0909-090B -> ../../sdb5

      lrwxrwxrwx 1 root root 10 10-13 09:13 7c627a81-7a6b-4806-987b-b5a8a0a93645 -> ../../sda4

      .....

     6、那么接下来就是可以修改其他主机的fstab文件了:

      6.1、重启之后会需要你输入密码进入root权限下的界面

      6.2、此时文件系统是只读模式,若需要修改/etc/fstab文件,则需要执行:mount -o remount rw /   命令。

      6.3、此时就可以修改/etc/fstab文件了。执行: vi  /etc/fstab

      6.4、修改没一个主机的UUID的值即可。

      6.5、reboot重启,ok了。

  • 相关阅读:
    为图片指定区域添加链接
    数值取值范围问题
    【leetcode】柱状图中最大的矩形(第二遍)
    【leetcode 33】搜索旋转排序数组(第二遍)
    【Educational Codeforces Round 81 (Rated for Div. 2) C】Obtain The String
    【Educational Codeforces Round 81 (Rated for Div. 2) B】Infinite Prefixes
    【Educational Codeforces Round 81 (Rated for Div. 2) A】Display The Number
    【Codeforces 716B】Complete the Word
    一个简陋的留言板
    HTML,CSS,JavaScript,AJAX,JSP,Servlet,JDBC,Structs,Spring,Hibernate,Xml等概念
  • 原文地址:https://www.cnblogs.com/ljy2013/p/4668423.html
Copyright © 2011-2022 走看看