记 Win10 - Archlinux - Archlinux(Emergency) 三系统安装/配置注意事项
起因是正常使用的archlinux做滚动更新,结果貌似有一个盘块写坏了(?)。
手上没有U盘,进入不了linux,不好做fsck。于是直接就直接用win10了。
取消Fast Boot
当晚进入linux发现出现问题
Loading kernel...
error: invalid cluster 0
应该是win10把efi分区盘块搞坏了,只要把BIOS的Fast Boot取消掉即可防止此问题。
但是明显我盘块已经是坏掉了,用cdlive进去看了看,发现是vmlinux坏了。
这里稍微提一下grub引导linux的步骤(详情请参考/boot/grub/grub.cfg,或grub菜单中按c健):
装载必要的模块
设置root(即efi分区)
载入vmlinux
执行initrd
发现问题就好说了,livecd进入根目录重新安装linux即可
...
arch-chroot /mnt
pacman -S linux
至此问题解决。
win10+双linux系统安装
考虑到每次系统出问题时,手边没有u盘的尴尬,决定再装一个应急的linux系统。
磁盘空间有限,把swap分区让出来好了(主要是因为加了个内存条,大概是用不着对换了吧)。
swapoff /dev/sda5
mkfs.ext4 /dev/sda5
接下来就用刚才的livecd安装即可。
EFI分区过小
我的efi分区当时分得特别小,只有100M,同时还有其他系统的内容。所以安装新的vmlinux和initramfs空间绝对是不够的。
想办法删点东西。
/boot/Boot/Fonts
/boot/EFI/Microsoft/Boot/Fonts
initramfs-fallback.img
这些除了其中的中文字体(英文字体自带),我都不要了
安装引导的注意事项
安装引导时请注意:
- 安装os-prober,用于发现其他两个系统(即win10和正常archlinux)
- 正常生成grub.cfg
- 区分正常系统和Emergency系统的vmlinux和initrmfs,同时修改grub.cfg
pacman -S os-prober
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=emergency
grub-mkconfig -o /boot/grub/grub.cfg
# 首先区分vmlinux, initramfs
mv /boot/vmlinux /boot/vmlinux-emergency
mv /boot/initrmfs.img /boot/initramfs-emergency.img
# 其次修改grub.cfg
# 把emergency对应的内容改为vmlinux-emergency, initramfs-emergency.img
vim /boot/grub/grub.cfg
至此完活。
肯定有人问为什么不共享vmlinux和initramfs呢?
我考虑到正常和应急系统的内核版本很可能是不一样的,事实上我在共享的情况下尝试启动正常系统失败。
[Failed] Failed to mount /boot
# 看看boot.mount
systemctl status boot.mount
# 发现报错信息:
# mount: unknown filesystem type 'vfat'
首先想到grub的载入fat模块是否存在问题,但是启动脚本中明显写着isnmod fat
其次就是linux自己的模块载入了
modprobe vfat
# 报错:/lib/modules/5.1.15-arch1-1-ARCH不存在
笑话,我正常系统内核版本是5.1.14,紧急版本应该是5.1.15,此处出现这个问题就是vmlinux和initramfs共享造成的。
于是区分是必然的。
记 Win10 - Archlinux - Archlinux(Emergency) 三系统安装/配置注意事项的更多相关文章
- 将archlinux 2013-06-01版,安装配置为个人工作站
本文安装所使用的镜像为:archlinux-2013.06.01-dual.iso.首先请看看我安装完成之后的效果.图一,是第一个虚拟桌面及右键菜单图: 图二,是第二个虚拟桌面效果图.后几个虚拟桌面图 ...
- AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(三):配置ActiveXForm运行环境
一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...
- CentOS 6.5系统安装配置图解教程
说明: 截止目前CentOS 6.x最新版本为CentOS 6.5,下面介绍CentOS 6.5的具体安装配置过程 服务器相关设置如下: 操作系统:CentOS 6.5 64位 IP地址:192.16 ...
- CentOS 7.0系统安装配置图解教程
转自:http://www.osyunwei.com/archives/7829.html 操作系统:CentOS 7.0 64位 IP地址:192.168.21.128 网关:192.168.21. ...
- Ubuntu系统安装配置Pintos和Bochs
Ubuntu系统安装配置 Pintos 和 Bochs 安装过程 首先是UEFI启动模式下Win8.1安装Ubuntu14.04双系统,由于篇幅过长,就不在这里详写.可见博主的另一篇博客http:// ...
- CentOS 7.3.1611系统安装配置图解教程
操作系统:CentOS 7.3.1611 IP地址:192.168.21.130 网关:192.168.21.2 DNS:8.8.8.8 8.8.4.4 备注: CentOS 7.x系列只有64位系统 ...
- 华为S5700配置端口镜像和华三S5120配置802.1X认证记录
一.说明 事情的起因是我们部门有个华为的S5700交换机,想配置端口镜像抓包但让助理买的串口线很久都还没到:而昨天测试部的同事说他们那有台华三的S5120想要配802.1X认证,但只有华为交换机的文档 ...
- CentOS 7系统安装配置图解教程
操作系统:CentOS 7.3 备注: CentOS 7.x系列只有64位系统,没有32位.生产服务器建议安装CentOS-7-x86_64-Minimal-1611.iso版本 一.安装CentOS ...
- Python在Win10系统的安装和使用配置
Python是一种计算机程序设计语言.你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编程的JavaScript语言等等. 下载 ...
随机推荐
- 订阅发布模式eventEmiter
// 订阅发布模式 class EventEmitter { constructor() { this._events = {}; } on(name, callback) { if (this._e ...
- linux内核中的subsys_initcall是干什么的?
注意:使用的内核源码版本为5.1.3 1. subsys_initcall长什么样子? 它其实是个宏定义,定义如下: #define subsys_initcall(fn) __define_ ...
- JPA,Hibernate,Spring Data JPA之间的关系
什么么是JPA? 全称Java Persistence API(JAVA对象持久化API),可以通过注解或者XML描述[对象-关系表]之间的映射关系,并将实体对象持久化到数据库中. 为我们提供了: 1 ...
- Scala语法01 - 基础语法
- Java日志体系(五)logback
1.1 简介 师出同门,与log4j一样,logback也是由Ceki Gülcü开发的开源日志组件,可以说是log4j的改进版:在现如今的项目中,logback的出现次数越来越多,是目前主流首选的日 ...
- curl配置host
//要配置的虚拟域名$host = array( 'Host: demo-local.com' );$ch = curl_init();//要配置的ip 例如本机localhostcurl_setop ...
- Laravel的Nginx重写规则--让路由支持末尾加斜线
默认laravel路由末尾不能加/,如果加了斜线会报404 要想支持url末尾的斜线需要在public/index.php加入如下代码: $_SERVER['REQUEST_URI'] = trim( ...
- c/c++编码规范(2)--作用域
2. 作用域 静止使用class类型的静态或全局变量. 6. 命名约定 6.1. 函数名,变量名,文件名要有描述性,少用缩写. 6.2. 文件命名 6.2.1. 文件名要全部用小写.可使用“_”或&q ...
- 一、Node.js安装及环境配置之Windows篇
一.安装环境 1.本机系统:Windows 10 Pro(64位)2.Node.js:v6.9.2LTS(64位) 二.安装Node.js步骤 1.下载对应你系统的Node.js版本:https:// ...
- Linux中权限控制ACL命令
很多小伙伴觉得,Linux的权限管理命令不就是chown和chmod命令吗,什么时候有了ACL了? 什么是ACLACL是访问控制列表(Access Control List)的缩写,主要的目的是在提供 ...