zoukankan      html  css  js  c++  java
  • 记一次在U盘上安装Manjaro

    前情提要

    由于在我的笔记本上WIndwos和别的系统水火不容(启动到Windows,GRUB的引导项就会被删除),于是我把2020-04-01装的Windows格掉,装了Arch。但Windows在某些时候又是刚需,我手头正好有个SanDisk CZ880。于是我在CZ880上部署了WTG,还挺流畅的,插在USB2.0的口上也能很好地运行。

    前天,我试着在CZ880剩下的1GB的分区里安装Manjaro,可能是配置有问题,没启动起来,还顺便把Windows的引导一块弄没了(没错,是我格式化的),不慌,还有备用的MBR引导。昨天,我又试着在880的MBR引导扇区里安装wee63,操作有误,把MBR引导也弄挂了。既然挂了那我就想办法修复吧,但在微PE下,系统分区和EFI分区由于玄学原因只能同时挂载一个,试着修复MBR引导,又提示BCD配置有误,我干脆直接备份好数据之后格了盘。

    正文

    128GB的U盘我平时根本用不到,我又打起了在880上安装“随身”操作系统的打算,这次我选择了Manjaro。为什么不是Debian,Ubuntu,抑或是Arch呢?因为我感觉大版本更新很麻烦,Arch的滚动更新就很对我胃口。而Arch更新得实在是太勤了,快到了令人担心的地步,所以我选择了更新速度稍慢的Manjaro。

    开始操作

    我的“野心”很大,我想让Manjaro同时兼容UEFI启动和legecy启动。我不喜欢MBR分区表,因为“引导扇区”“扩展分区”等概念着实是令人头疼。但又没法往GPT分区表里写MBR的引导扇区数据,也就是说在legecy模式下无法启动。这时候我在Archwiki里看到了这样一段内容。

    BIOS/GPT配置中,必须使用 BIOS 启动分区。GRUB将core.img嵌入到这个分区。

    安装 GRUB 前,在一个没有文件系统的磁盘上,创建一个1兆字节(使用 fdisk 或 gdisk 和参数+1M)的分区,将分区类型设置为 GUID 21686148-6449-6E6F-744E-656564454649。

    这个分区可以处于磁盘的前 2TB 空间中的任意位置,但需要在安装 GRUB 之前创建好。分区建立好后,按下面的命令安装启动管理器。

    第一个分区之前的空间也可以用作 BIOS 启动分区,但是这会违反 GPT 对齐规范。因为这个分区不会经常访问,所以性能的影响很小,只不过有些分区工具会发出警告。可以在 fdisk 或 gdisk 中创建一个从 34 扇区开始,一直到 2047扇区的分区,然后按照上述方式设置类型。为了让其它分区对齐,可以最后再创建此分区。

    照我的理解,是可以用一个1MB大小的分区代替MBR的引导扇区,来达到引导系统的目的。fdisk我还是不会操作,于是我使用了cfdisk来代替。

    设备 起点 末尾 扇区 大小 类型
    /dev/sda1 2048 616447 614400 300M Microsoft 基本数据
    /dev/sda2 616448 618495 2048 1M BIOS 启动
    /dev/sda3 618496 67727359 67108864 32G Linux 文件系统
    /dev/sda4 67727360 6115967 8388608 4G Linux swap
    /dev/sda5 76115968 250085342 173969375 83G Microsoft 基本数据

    Markdown的表格真难排,以上是我目前的分区表。

    分区

    ls一下/dev,看看自己要分区的设备叫什么,在这里我要操作的设备(CZ880)的目录为/dev/sda,于是我输入命令sudo cfdisk /dev/sda,cfdisk的界面随即显示了出来。在创建分区的时候创建一个300MB左右的分区,将分区类型改为“EFI”;再创建一个1MB大小的分区,在“类型”里将分区类型改为“BIOS启动”即可。选择“写入”,输入“yes”,再选择“退出”,分区步骤就算结束了。

    安装系统

    略。

    安装引导器(GRUB2)

    接下来我先安装UEFI引导,我们需要执行这样一条命令。

    sudo grub-install --target=x86_64-efi --removable --efi-directory=<你的EFI分区目录> --boot-directory=<你所安装完成的新系统的boot目录>

    接着安装legecy引导,还是一条命令,不要担心架构的问题,照样能引导。

    sudo grub-install --target=i386-pc /dev/<你所要安装到的块设备的名称,我安装的时候为sda1>

    以上两条命令请根据自己的实际情况修改。

    稳妥起见,chroot到安装目录的根目录,执行这样一条命令以生成GRUB配置文件。

    grub-mkconfig -o /boot/grub/grub.cfg

    这样操作完之后,应该就没有什么问题了,重启试试看吧。

    我的使用情况

    我先尝试使用legecy方式启动,除了GRUB加载时间较长,引导菜单操作起来怪怪的之外没有什么问题。我又试着通过UEFI方式引导,也成功地启动了,大成功。我尚未测试在另一台设备上引导这个系统,可能会有问题。

    后记

    写得比较乱,作参考用的。这里还是推荐遇到什么问题就翻翻Archwiki,大多数问题你都能得到解答(类似于systemd怎么用)。

  • 相关阅读:
    洛谷 P2421 [NOI2002]荒岛野人
    POJ 2115 C Looooops
    POJ 3292 Semi-prime H-numbers
    [网络流24题]负载平衡问题(费用流)
    [网络流24题]骑士共存问题
    POJ 3281 Dining
    洛谷 1306斐波那契公约数
    ELK+Filebeat 安装配置入门
    一个JS内存泄露实例分析
    Node.js 事件循环
  • 原文地址:https://www.cnblogs.com/xuyiyang/p/12860224.html
Copyright © 2011-2022 走看看