zoukankan      html  css  js  c++  java
  • GNU Linux启动时文件系统mountall挂载出错问题的处理

    /*********************************************************************
     * Author  : Samson
     * Date    : 12/05/2014
     * Test platform:
     *              3.13.0-24-generic
     *              GNU bash, 4.3.11(1)-release
     * *******************************************************************/
    ---------------------
    作者:风去沙来
    来源:CSDN
    原文:https://blog.csdn.net/yygydjkthh/article/details/41748285
    版权声明:本文为博主原创文章,转载请附上博文链接!

    查看uuid的方法:

    UUID(Universal Unique Identifier):通用唯一标识;

    在GNU Linux系统进行挂载的时候,mountall服务会进行文件系统的挂载,通常是读取/etc/fstab文件中的挂载配置进行挂载,内容类似如下:
    ufo@ufo:~$ cat /etc/fstab
    # /etc/fstab: static file system information.
    #
    # Use 'blkid' to print the universally unique identifier for a
    # device; this may be used with UUID= as a more robust way to name devices
    # that works even if disks are added and removed. See fstab(5).
    #
    # <file system> <mount point>   <type>  <options>       <dump>  <pass>
    # / was on /dev/sda6 during installation
    UUID=54e52c07-3dce-4cc9-b106-6079aad2536d /               ext4    errors=remount-ro 0       1
    # swap was on /dev/sda5 during installation
    UUID=0893466f-30b4-494e-b234-ce3da8ee8ca9 none            swap    sw              0       0

    如上的/dev/sda6这个块设备的UUID对应的即为UUID=后的值,要将此块设备挂载到/目录上,文件系统为ext4。更多具体的各个项的意义可参考此篇文章:
    http://blog.csdn.net/xuleilx/article/details/7889460

    ufo@ufo:~$ blkid -o list
    device     fs_type label    mount point    UUID
    -------------------------------------------------------------------------------
    /dev/sda1  ntfs    系统保留 (not mounted) E45A22425A22123A
    /dev/sda2  ntfs             (not mounted)  D09826319826168E
    /dev/sda5  swap             <swap>         0893466f-30b4-494e-b234-ce3da8ee8ca9
    /dev/sda6  ext4             /              54e52c07-3dce-4cc9-b106-6079aad2536d
    ufo@ufo:~$ ls -l /dev/disk/by-uuid/
    总用量 0
    lrwxrwxrwx 1 root root 10 12月  3 20:07 0893466f-30b4-494e-b234-ce3da8ee8ca9 -> ../../sda5
    lrwxrwxrwx 1 root root 10 12月  3 20:07 54e52c07-3dce-4cc9-b106-6079aad2536d -> ../../sda6
    lrwxrwxrwx 1 root root 10 12月  3 20:07 D09826319826168E -> ../../sda2
    lrwxrwxrwx 1 root root 10 12月  3 20:07 E45A22425A22123A -> ../../sda1

    当在不正常操作的情况下,系统在启动时会出现挂载文件系统出错的提示,有可能出现的错误大致分为以下几种:
    (1)、Continue to wait, or Press S to skip mounting or M for manual recovery
    (2)、Press F to attempt to fix the errors, I to ignore, S to skip mounting, or M for manual recovery
    (3)、Press I to ignore, S to skip mounting, or M for manual recovery
    (4)、Press S to skip mounting or M for manual recovery
    (5)、Checking disk drives for errors. This may take several minutes.

    针对如上出现的问题,一般情况下若不是/目录的挂载块设备挂载不了(再说了,根目录的挂载在使用grub进行启动时就已经使用了其对应的uuid进行了挂载,和/etc/fstab也没有什么关系),其它的例如:
    把/opt目录给挂载一个块设备这样的操作,直接跳过或忽略是可以进入系统的,只是在此例子中opt目录使用的空间是使用的和/目录一个块设备的空间,在空间上并没有以块设备的分离而分开。

    那么问题来了,如何修复和处理这样的情况呢?
    (1)、进行手动修复时,可以使用以上查看UUID的命令查看设备的UUID是否和/etc/fstab中的UUID一致。不一致的话,将/etc/fstab的值改为和查看到的块的UUID的值;
    (2)、使用fsck命令进行分区的修复;可参考此篇文章:
    http://blog.csdn.net/yusiguyuan/article/details/18302439

    PS:

    在LinuxMint中,和此相关的包为:

    mountall(主要是在系统启动时进行文件系统的挂载及进行回写plymouth的回调函数)   plymouth(在此问题中主要是负责将开机过程中的mount错误在闪屏中时进行显示交互及处理)

    另在使用的过程中,发现修改系统时间后重启电脑会出现(3)、Press I to ignore, S to skip mounting, or M for manual recovery报错。这个应该是由于在启动时使用fsck扫描时由于超级块中的时间相关太多而造成的此问题的出现,直接忽略即可。关于超级块可参看:http://blog.csdn.net/yygydjkthh/article/details/39031839

  • 相关阅读:
    18个Java开源CMS系统一览
    冒泡排序
    数据挖掘十大经典算法
    开源Java CMS建站程序推荐
    Oracle
    Oracle Procedure returning Ref Cursor in Entity Framework 4
    Field_II
    SharePoint Video Library
    ORACLE 导入dmp文件
    System.Diagnostics.Process.Start()。它的作用是调用外部的命令
  • 原文地址:https://www.cnblogs.com/yizhipanghu/p/10118967.html
Copyright © 2011-2022 走看看