起因是正常使用的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

这些除了其中的中文字体(英文字体自带),我都不要了

安装引导的注意事项

安装引导时请注意

  1. 安装os-prober,用于发现其他两个系统(即win10和正常archlinux)
  2. 正常生成grub.cfg
  3. 区分正常系统和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) 三系统安装/配置注意事项的更多相关文章

  1. 将archlinux 2013-06-01版,安装配置为个人工作站

    本文安装所使用的镜像为:archlinux-2013.06.01-dual.iso.首先请看看我安装完成之后的效果.图一,是第一个虚拟桌面及右键菜单图: 图二,是第二个虚拟桌面效果图.后几个虚拟桌面图 ...

  2. AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(三):配置ActiveXForm运行环境

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

  3. CentOS 6.5系统安装配置图解教程

    说明: 截止目前CentOS 6.x最新版本为CentOS 6.5,下面介绍CentOS 6.5的具体安装配置过程 服务器相关设置如下: 操作系统:CentOS 6.5 64位 IP地址:192.16 ...

  4. CentOS 7.0系统安装配置图解教程

    转自:http://www.osyunwei.com/archives/7829.html 操作系统:CentOS 7.0 64位 IP地址:192.168.21.128 网关:192.168.21. ...

  5. Ubuntu系统安装配置Pintos和Bochs

    Ubuntu系统安装配置 Pintos 和 Bochs 安装过程 首先是UEFI启动模式下Win8.1安装Ubuntu14.04双系统,由于篇幅过长,就不在这里详写.可见博主的另一篇博客http:// ...

  6. 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位系统 ...

  7. 华为S5700配置端口镜像和华三S5120配置802.1X认证记录

    一.说明 事情的起因是我们部门有个华为的S5700交换机,想配置端口镜像抓包但让助理买的串口线很久都还没到:而昨天测试部的同事说他们那有台华三的S5120想要配802.1X认证,但只有华为交换机的文档 ...

  8. CentOS 7系统安装配置图解教程

    操作系统:CentOS 7.3 备注: CentOS 7.x系列只有64位系统,没有32位.生产服务器建议安装CentOS-7-x86_64-Minimal-1611.iso版本 一.安装CentOS ...

  9. Python在Win10系统的安装和使用配置

    Python是一种计算机程序设计语言.你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编程的JavaScript语言等等. 下载 ...

随机推荐

  1. 阿里云Ubuntu 16 FTP安装配置注意事项

    1. 开放端口设置 阿里云控制台添加"安全组规则". 1) 21: FTP端口; 2) 15000~15100: 对应vsftpd.conf 自定义配置. (重要!) pasv_e ...

  2. go代理设置

    在Go 1.13中,我们可以通过GOPROXY来控制代理,以及通过GOPRIVATE控制私有库不走代理. 设置GOPROXY代理: go env -w GOPROXY=https://goproxy. ...

  3. 几句简单的python代码完成周公解梦功能

    <周公解梦>是靠人的梦来卜吉凶的一本于民间流传的解梦书籍,共有七类梦境的解述.这是非常传统的中国文化体系的一部分,但是如何用代码来获取并搜索周公解梦的数据呢?一般情况下,要通过爬虫获取数据 ...

  4. c/c++编码规范(1)--头文件

    最近工作稍微轻松一点,就再学习了一下编码规范.遂记些笔记,以便查阅. 这次学习的是Google 开源项目风格指南中文版,地址是:http://zh-google-styleguide.readthed ...

  5. ajax将数组或list集合传到后台 的 【坑】

    代码如下 function deleteChecked() { var orderNosList = new Array(); var rows = $("#dataGrid"). ...

  6. 转:微服务框架之微软Service Fabric

    常见的微服务架构用到的软件&组件: docker(成熟应用) spring boot % spring cloud(技术趋势) Service Fabric(属于后起之秀 背后是微软云的驱动) ...

  7. 【Web】如何注释?

    HTML 形式:<!-- 注释内容 --> 实例: <!-- <p>这是第一段</p> --> CSS 形式:/* 注释内容 */ 实例: /* 选中i ...

  8. C语言递归之翻转二叉树

    题目描述 翻转一棵二叉树. 示例 输入: / \ / \ / \ 输出: / \ / \ / \ 题目要求 /** * Definition for a binary tree node. * str ...

  9. 【miscellaneous】VLC组播与接收

    搭建组播服务器  第一步:运行程序后选择"媒体--串流": 第二步:通过"添加"选择需要播放的文件(以wmv文件为例),单击"串流": 第三 ...

  10. C学习笔记-运算符

    一些基本概念 数据对象:泛指数据在内存的存储区域 左值:表示可以被更改的数据对象 右值:能赋给左值的量 算数运算符 运算符 描述 实例 + 把两个操作数相加 a + b - 从第一个操作数中减去第二个 ...