写在前
这篇废话较多,可以直接看问题描述和解决方案。
情景
事情是这个样子地,我笔记本之前有两个系统,win10和(墙裂推荐的)deepin,deepin是平时的主力系统,但是因为特殊用途,我又装上了尘封已久的kali构成了win10+deepin+kali的三系统。一路轻车熟路,不过也遇到了一些小问题。
- 制作好启动盘后进入安装,不能找到CDrom,然后呢,live模式可以进去。好吧,我就重新刻录了一下u盘,选择以dd模式写入,这样就好了
推荐一个u盘刻录软件,** rufus **,用了都说好!
- kali输入密码后不能进入桌面,这个简单。解决办法写在另一篇写了。
在我觉的一切都完成的时候,我又回到了我的deepin里,开机怎么这么慢,我的nvme协议固态,平时开机都刷刷刷。然后我重启,还是这样,不过在开机动画界面我按了下f1234,具体是几忘了,出现了这样的bug信息
mdadm: no arrays found in config file or automatically
mdadm: no arrays found in config file or automatically
mdadm: no arrays found in config file or automatically
平均1.27832s(时间是我目测的)蹦出来一个,一共蹦了8、9次吧,然后才开始正常的开机流程。
问题描述(重点)
开机速度慢,出现
mdadm: no arrays found in config file or automatically
mdadm: no arrays found in config file or automatically
mdadm: no arrays found in config file or automatically
解决方案(重点):
步骤一. 进入终端删除mdadm.conf
sudo rm /etc/mdadm/mdadm.conf
生成新的mdadm.conf
update-initramfs -u
到这里,如果你重启,你会发现不会报错了,但是开机速度仍然很慢。接下来才是重中之重。
步骤二. 解决swap分区挂在失败
1.确定swap位置
sudo fdisk -l
查看一下你的swap分区是哪个。
比如我的信息
Device Start End Sectors Size Type
/dev/nvme0n1p1 34 32767 32734 16M Microsoft reserved
/dev/nvme0n1p2 32768 100694015 100661248 48G Microsoft basic data
/dev/nvme0n1p3 100696064 226525183 125829120 60G Microsoft basic data
/dev/nvme0n1p4 226525184 500115455 273590272 130.5G Microsoft basic data
Disk /dev/nvme1n1: 238.5 GiB, 256060514304 bytes, 500118192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: CF3BAE5C-6566-4D86-80B7-30262929B38B
Device Start End Sectors Size Type
/dev/nvme1n1p1 2048 534527 532480 260M EFI System
/dev/nvme1n1p2 534528 567295 32768 16M Microsoft reserved
/dev/nvme1n1p3 567296 210282495 209715200 100G Microsoft basic data
/dev/nvme1n1p4 210282496 414183423 203900928 97.2G Microsoft basic data
/dev/nvme1n1p5 414183424 481292287 67108864 32G Microsoft basic data
/dev/nvme1n1p6 481292288 498067455 16775168 8G Microsoft basic data
/dev/nvme1n1p7 498069504 500117503 2048000 1000M Windows recovery environment
我一共两个硬盘,在/dev/nvme1n1p6上是我8g的swap分区,所以我要指定这个分区是我当前系统的swap分区。
2. 查找swap分区的uuid号
sudo blkid
部分返回信息
/dev/nvme1n1p3: LABEL="Windows" UUID="66A87982A8795213" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="579b50a0-2778-4b91-a9ef-dce2e628dd7e"
/dev/nvme1n1p4: LABEL="LENOVO" UUID="FA902B06902AC949" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="3a1cfad4-42b6-4680-9d26-7b857ad7ea48"
/dev/nvme1n1p5: UUID="29ad1483-22c4-4b90-be69-b16015d40000" TYPE="ext4" PARTLABEL="Basic data partition" PARTUUID="f931d038-acf2-49ef-87e9-79ed3fba962a"
/dev/nvme1n1p6: UUID="96a58d25-9a03-47a8-a69c-920edabecf10" TYPE="swap" PARTLABEL="Basic data partition" PARTUUID="55e412eb-8b76-4ad2-815c-6152b5f0c9e2"
/dev/nvme1n1p7: LABEL="WINRE_DRV" UUID="44D47B86D47B78CE" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="6ef36707-1092-4d8a-95aa-a2fde1708eba"
/dev/nvme0n1: PTUUID="257acb0b-d699-40d7-b91f-555848c975cd" PTTYPE="gpt"
/dev/nvme0n1p1: PARTLABEL="Microsoft reserved partition" PARTUUID="5a332c56-6433-4a69-a637-dd59a9342b03"
/dev/nvme1n1: PTUUID="cf3bae5c-6566-4d86-80b7-30262929b38b" PTTYPE="gpt"
/dev/nvme1n1p2: PARTLABEL="Microsoft reserved partition" PARTUUID="bafae506-166a-4931-b846-64b934fee36b"
可以看到我的swap分区(/dev/nvme1n1p6)的uuid号是96a58d25-9a03-47a8-a69c-920edabecf10
- 最后一步是指定这个是你的swap
/etc/fstab是开机时磁盘挂在的设置文件,在这里可以看到开机时挂在的各个分区
sudo vi /etc/fstab
把swap的uuid填写在这。
# /dev/nvme1n1p6 LABEL=Basic040data040partition
#/dev/nvme1n1p6 none swap defaults,pri=-2 0 0 这里直接用/dev/nvme1n1p6代替uuid也可以,但是如果你分了新的分区,这个就变了。建议还是用uuid
UUID=96a58d25-9a03-47a8-a69c-920edabecf10 none swap defaults,pri=-2 0 0
重启,完成。
解决思路:
- 查看到开机的报错信息,第一时间百度查了一下,问题不少,解决方案很少。终于找到一个大佬,根据步骤一解决,虽然没有mdadm报错了,没有解决我开机速度变慢的事实。开机速度仍然很慢。仿佛在等待什么东西。
- 进入系统后,发现少了系统少了睡眠功能。linux系统的睡眠功能和swap分区有直接的关系。所以我用free命令查看了下内存,发现swap分区是0。
- 到这里问题很明显了,在我安装kali时让他们共用swap我就觉得有一些冒险。
- 我用fdisk -l 查看了我swap分区的分区号,使用swapon 命令将这个分区挂在上。再用free命令查看,果然swap分区正常了,系统的睡眠功能又出现了(我胡汉三又回来了!)
- 把fstab文件挂在swap分区的uuid换成了/dev/nvme1xxxp6,重启,果然解决了问题。用blkid查询下uuid,果然是uuid变了。改了fstab里swap分区的uuid,问题至此解决。
原因分析:
产生这个问题的主要原因是我安装kali时,指定的swap分区就是deepin系统的swap分区。两个linux公用一个swap分区,后安装的kali把这个分区的uuid号给改了,这就导致deepin系统里swap的分区的uuid号仍然是原来的,开机的时候就一直无法挂载swap分区。直到重试多次后才继续开机。