写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文!

本博客全网唯一合法URL:http://www.cnblogs.com/acm-icpcer/p/8448519.html

我在我写的博客

最全最详细:ubuntu16.04下linux内核编译以及设备驱动程序的编写(针对新手而写)

里面的“虚拟机扩容”这个部分有点问题,本来按照我所描述的步骤去操作是没什么问题的(因为后来我给家里的联想古董一体机安装了linux发现没有出问题),但是可能是第一次给虚拟机挂载硬盘的时候交换区swap没有设置好,导致linux内核不能感知到硬盘交换区的存在,本来不是什么大问题,因为linux默认在90s内如果没有感知到swap交换区就会执行默认引导程序启动操作系统,但是这就使得开机时间增加了90s。这还了得!+90s的续命机会怎么能放弃?于是本文就续命。。。不是,就解决该问题提出解决方案。

  首先我们可以在开机界面发现linux内核的报错语句:

a start job is running for dev-disk-by uuid <disk-partition-uuid>

  这就是万恶之源,linux就是在此处被延时了90s,但是这句话看得人半懂不懂,没关系,90s延时过去后下面还有一条不起眼的语句:

Denpendency failed for Swap

    之前就是因为没有看见这句最关键的警告所以才一直没有找到解决方法,看到这句话之后,恍然大悟,才知道是交换区出了问题。

  那么如何解决呢,自然只好到交换区里面去看看了,执行命令:

swapon --show

  如果你的交换区正常,那么就会是这样:

  不正常就是这样:

  也就是说,你执行了查看swap区命令,但是却找不到交换区,也就是说实际上你的操作系统根本没有交换区。这是很麻烦的事情,因为这样的话操作系统内存与虚拟内存的数据交换就是直接进行的,首先,这会拖慢系统吞吐量,因为虚拟内存在硬盘上,无论是ssd还是机械的温彻斯特硬盘,它们的速度都远不敌dram内存的速度快;其次,离开了交换区的缓冲效果,大量数据直接从内存写入硬盘,硬盘会受不了,造成一定的损伤。总之,长远来看,没有交换区这是一个很严重的问题。尤其对于大型服务器来说,这是致命伤,因为如果访问量过大或者服务器遭受了DDoS攻击的话,服务器硬盘很可能会直接烧坏。

  不过,既然知道了问题所在就好解决了。我们知道,操作系统通过PCB感知进程,通过TCB感知线程,通过JCB感知等待调度的作业,那么操作系统必定会通过一个东东来感知数据交换区,这个东东就是UUID号码。

  先执行以下命令查看现有的硬盘情况:

mount

  结果是:

  上面这是我修复后的结果,如果没有修复我们可以从执行的结果看出swap区并没有挂载。

  输入以下命令查看操作系统预备给交换区的UUID:

sudo blkid

  执行后的结果如下图:

  从第二条信息/dev/sda5可以看到swap区本应该拥有的UUID。

  查看一下我们挂载硬盘失误后实际产生的UUID:

sudo nano /etc/fstab

  执行后发现两个UUID不一致,才知道问题出在UUID上。

  知道了问题那就好办了,更改/etc/fstab文件中swap分区的UUID就可以了。即通过命令打开vim来修改:

sudo vim /etc/fstab

  切记在此一定要用sudo的权限去修改,因为/etc/fstab文件是系统文件,不使用管理员权限的话只能读而不能写。

  修改文件内的swap的UUID为刚刚使用命令sudo blkid查看的swap应持有的UUID即可,下图是修改成功的结果:

  重启操作系统,问题修复。续命+90s。

  

  

TZ@home

2018/2/14

Ubuntu启动时a start job is running for dev-disk-by延时解决的更多相关文章

  1. 如何让ubuntu启动时打印字符信息----字符启动

    一.概述 要想实现字符启动,需要修改grub.cfg(启动配置文件),将“静态启动”改为“字符启动”. 但是grub.cfg通常只作为只读文件,修改它时实际上修改的是其他的文件然后再通过update- ...

  2. Ubuntu启动时直接进入命令行模式

    直接粘命令吧 sudo vim /etc/init/lightdm.conf 注释掉下面的内容 start on ((filesystem and runlevel [!06] and started ...

  3. ubuntu 启动时提示 Failed to load session ubuntu

    启动时候提示 Failed to load session ubuntu 通过 CTRL + ALT + [F1~F6] 进入终端界面登陆进系统, 进去之后执行 sudo apt-get instal ...

  4. ubuntu 启动项创建器 选择不了CD镜像,IOS镜像的解决方法

    自己系统是ubuntu14.04 , 想使用 ubuntu自带的启动项创建器(usb-creator-gtk)做一个CDLinux的U盘启动项, 打开程序后发现U盘识别了, 在添加镜像的时候,发现怎么 ...

  5. 基于WSL2 的 Docker Desktop 启动时 Failed to set version to docker-desktop: exit code: -1的解决方法

    在Windows 10 的 2004 版本  中, 启用 使用Docker Desktop 时 发现  根本无法启动, 偶尔 或者频繁的出错: System.InvalidOperationExcep ...

  6. Eclipse启动时提示fail to create the Java Virtual Machine问题的解决

    今天偶然打开Eclipse.发现无法打开,出现例如以下提示: 后来经过上网查询.发现是eclipse.ini文件的问题,打开eclipse安装文件夹下的eclipse.ini文件: -startup ...

  7. Eclipse启动时提示fail to create the Java Virtual Machine问题的解决办法

    是eclipse.ini文件的问题,打开eclipse安装目录下的eclipse.ini文件: 将其中的256m改为128m,512m改为256m,1024m改为512m即可 修改后如下: -star ...

  8. Ubuntu无法进入图形化界面(报错/dev/sda1:clean的解决)

    进入命令行模式,执行下面的命令: rm -rf /etc/X11/xorg.conf cp /etc/X11/xorg.conf.failsafe /etc/X11/xorg.conf 重启电脑. 上 ...

  9. Ubuntu启动停止在checking battery state...

    Ubuntu在“checking battery state...”处停止了,出现这种现象的原因可能有很多种.笔者遇到的是其中的一种. 情景描述: 笔者此前将Ubuntu的图形启动方式修改为了字符界面 ...

随机推荐

  1. [k8s]kube-dns/dashboard排错历险记(含sa加载用法/集群搭建)

    kube-dns原理 参考: 组件架构看这个就够了 http://cizixs.com/2017/04/11/kubernetes-intro-kube-dns 设置细节看这个就够了 http://b ...

  2. FFmpeg: AVFormatContext 结构体分析

    AVFormatContext 结构体分析这个结构体描述了一个媒体文件或媒体流的构成和基本信息.这是FFMpeg中最为基本的一个结构,是其他所有结构的根,是一个多媒体文件或流的根本抽象.主要成员释义: ...

  3. 【Spark 深入学习 04】再说Spark底层运行机制

    本节内容 · spark底层执行机制 · 细说RDD构建过程 · Job Stage的划分算法 · Task最佳计算位置算法 一.spark底层执行机制 对于Spark底层的运行原理,找到了一副很好的 ...

  4. 【iCore4 双核心板_FPGA】例程十一:FSMC总线通信实验——独立地址模式

    实验原理: STM32F767上自带FMC控制器,本实验将通过FMC总线的地址独立模式实现STM32与FPGA 之间通信,FPGA内部建立RAM块,FPGA桥接STM32和RAM块,本实验通过FSMC ...

  5. RTMP之后,SRT与QUIC

    RTMP协议存在累计延迟与加密方面的问题,为适应互联网视频低延时,高质量的要求,以UDP为核心,具有创造性的SRT,QUIC等流媒体视频方式将成为新的选择 RTMP协议最初是由Macromedia为通 ...

  6. opencv之内存存储器——CvMemStorage与CvSeq

    1.CvMemStorage *storage=cvCreateMemStorage(block_size); 用来创建一个内存存储器,来统一管理各种动态对象的内存. 函数返回一个新创建的内存存储器指 ...

  7. phpstrom 激活

    最新(2017年5月)PhpStorm 2017.1.2 .WebStorm 2017.1.PyCharm  2016.3激活方式 打开网址 http://idea.lanyus.com/ 选择获取注 ...

  8. Java如何从文件中打印与给定模式匹配的所有字符串?

    在Java编程中,如何从文件中打印与给定模式匹配的所有字符串? 以下示例显示了如何使用Util.regex类的Patternname.matcher()方法从文件中打印与给定模式匹配的所有字符串. p ...

  9. (原)关于i++和++i的小程序测试

    今天看到一个程序,于是用vs运行了一下,结果出乎我的意料: 代码: ; +(i++))+(+(i++)); i=; +(++i))+(+(++i)); i=; printf("x=%d,y= ...

  10. Python 函数(参数组合)

    在Python中定义函数,可以用必选参数.默认参数.可变参数和关键字参数,这4种参数都可以一起使用,或者只用其中某些,但是请注意,参数定义的顺序必须是:必选参数.默认参数.可变参数和关键字参数 定义一 ...