March 2019

Arch Linux 更换到稳定版LTS内核

一:内核更换

1. 安装稳定内核版本和对应头文件

2. 卸载原先linux内核

3. 生成LTS版本的grub.cfg

这样在通过grub启动的时候就是用的稳定版内核了。

4. 重启

5. 检查当前Linux内核版本

如果看到有Linux 4.19.xx.xx-lts说明已经成功切换到lts内核

二:修复受影响软件

1. Vritualbox无法启动原先的虚拟机

因为版本不同,Virtualbox的版本也是不同的,对应lts内核,使用的是virtualbox-host-dkms,重装一下替换掉原来的版本即可:

另外启动虚拟机还需要加载一个必须的内核模块:vboxdrv

再重新加载一下vbox的各个相关模块:

一般这样就可以正常启动虚拟机了,如果还有问题,再从网上寻找吧。…

Continue reading...

Python文件命名的坑

注意千万别用模块名命名文件,不然分分中被自己坑死!!!

因为Python加载模块的时候先从当前路径寻找,没有再在从环境变量中的路径中寻找!!!…

Continue reading...

Arch Linux引导修复问题记录 — 系统无法启动解决办法

注意以下不是修复教程,而是进行修复的过程中遇到的问题总结,修复教程网上很多就没必要为此再写了。

一般情况要是更新内核后导致系统无法启动,用Live-CD U盘启动进去后挂载根分区和启动分区,arch-chroot到根分区,然后运行

进行重装一般都可以恢复,还不行可以试一下

其中yy和uu的含义分别为:

-yy: forces package list refresh even if it’s up-to-date.

-uu: Upgrades packages and also downgrades some if repository has older version.

以下假设作为启动和根的目录是两个独立分区,且启动分区挂载到根分区 /boot 下

一:重装Grub情形

用U盘启动后挂在根分区和启动分区,运行以下命令重装

如果遇到IO错误或者报错文件系统为只读,可以卸载启动分区后格式化该分区,运行以下命令:

安装成功后生成grub.cfg:

如果出现了警告:

[/crayon]

那是os-prober导致的,先卸载再重新执行grub-mkconfig便可:

系统启动成功后再装好os-prober重新生成grub.cfg,因为os-prober用于检测其它系统的存在以便添加启动项到grub.cfg里,当然,如果你没有双系统,那便不用管这个了。

grub.cfg成功生成后,退出重启到系统,

二:系统启动后挂载分区失败

先输入密码进入命令行模式,用

检测当前硬盘分区名称,对比/etc/fstab里的,如果名称对不上,说明问题出现在这里,那是因为在用U盘启动进行修复系统时,分区名称发生了变化,当时使用命令:

生成的fstab和正常启动系统时分配的分区名称不一致导致的。

手动修改/etc/fstab里的分区名称,使其与正常启动系统时的一致便可

如我的分区无法挂载时的fstab是这样的:

# /dev/nvme1n1p1 UUID=7259-031D

/dev/nvme1n1p1      /boot       vfat    rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso88
59-1,shortname=mixed,errors=remount-ro  0 2

其中的nvme1n1p1 其实应该为nvme0n1p1,用fdisk -l可以查看到,fstab跟实际设备名不一致导致无法挂载成功启动桌面。

当然如果直接用UUID来表示是不用这么麻烦改设备名或者说分区名的。

其他情况导致的分区无法挂载暂时没遇到。…

Continue reading...