其实本文所有的内容在Archwiki上都可以找到,并且更新更全面(只是比较零散),我所做的只是对安装流程做一个小小的总结,每一步我都会稍微解释一下,但不会说的特别详细,毕竟这只是一篇安装引导文,而不是Wiki。

首先显然是下载最新的archlinux安装镜像:

1,用浏览器打开archlinux源,比如mirrors.163.com,mirrors.ustc.edu.cn(这里以163为例):(url)http://mirrors.163.com/archlinux/

可以看到,有个iso目录,这就是安装镜像所在的地址了。打开后里边是这个样子的:

其中latest目录下,是包含官方最新的archlive镜像,而archboot目录下,则是另一个版本的archboot镜像(以前的archlinux官方镜像,包含一个类似FreeBSD的图形化安装脚本哦,感兴趣的童鞋可以试试,感觉还是比较好用哦)。不多说了,还是进latest下载安装镜像(直接扔地址:)http://mirrors.163.com/archlinux/iso/latest/archlinux-2016.01.01-dual.iso(建还是自己进去下哦,说不定你看到本文时,2016年2月甚至2017年的镜像已经出了,建议下载最新的)

600多兆,时间比较漫长,我就先八一下怎么做安装USB,要是你用linux系统,直接dd进U盘就行了(命令我不多说了我觉得linux用户应该都会,不会的google baidu一下也会了,另一个方法就是男人(man)一下dd(搞基?),咱还是策反windows下的众linux小白为主)。

考虑到网上众基们用ultra iso做启动盘的比较多,我就顺应民意用一下这个软件:

用ultra iso打开刚才下载好的镜像文件,选择启动->写入硬盘镜像

并在接下来的窗口选择RAW写入:

等一会儿,就写完了(要是启动失败,请移步互联网,找更靠谱的方法,(因为这不是重点))

假设在座各位已经搞定了启动方法,下边就是安装了(我用的vbox虚拟机)

嗯,现在的电脑都支持x86_64(amd64),只要电脑不太差,选这个就OK了,内存小,可以选i686可以省内存哦(上下箭头选择,回车继续,不用我教吧)。

嗯嗯,看到一个命令行界面输一个lsblk看看有没认到硬盘:

那个sda就是硬盘了。分区cfdisk /dev/sda,在接下来的界面选dos(也可能没这个界面)

然后new一个分区(这里我是把所有空间都给我们的btrfs分区了,各位看官按需分区,按需分区嗯)并加上boot标志(以防有些sb主板只认有boot标志的硬盘):

然后选“Write”写入,选“Quit”退出。注意上边那个Start,一定要是2048或以上(比如4096 8192……),否则btrfs无法作为启动分区,什么你的是64?那……换个别的工具分区吧……

再lsblk,我们看到了sda1,分区搞定。

下一步就是格式化了,好激动,千万不要格式化错了分区哦(看官:你妹的在虚拟机下激动个P,就一个分区……)

mkfs.btrfs /dev/sdaX

看到这个提示,说明格式化成功了。接下来,建立子卷:

我建立了rootfs子卷作为archlinux的/,建立了homefs作为/home,接下来就是挂载:

解释一下:先cd ..跳出/mnt目录然后umount(卸载)掉sda1(不cd出去会umount失败),然后把rootfs子卷挂载到/mnt,然后建立/mnt/home目录,挂载homefs到/mnt/home,最后用mount命令查看一下挂载是不是成功了。

至于挂载参数,我作为例子,只用了一个compress=lzo,也就是用lzo模式压缩卷,lzo是一种先进的压缩实时算法,能减少磁盘占用,提升硬盘性能哦,当然如果系统装在SD卡等特别慢的设备上,我推荐zlib算法,牺牲部分CPU性能换硬盘速度,因为zlib压缩率高,比如把原来100M的文件压缩成了50M,读写显然就只用原来一半的时间,很好理解。

其他挂载参数,抄一下wiki上的:

依照你是SSD还是HDD,各取所需了吧。另外,稍微提一下,btrfs现在不支持各个子卷用不同的参数挂载,所以只有第一个子卷挂载时需要上边的罗哩罗嗦的一堆参数,比如上边我挂载home时,就只加了个subvol参数,指定子卷,其他会默认跟rootfs的一样。

挂载好了,下一步就是安装了,先编辑一下

把你最快的源放在最前边,比如我是用的163为例子:

然后就是安装基本系统:

我安装了base btrfs-progs grub三项,要是需要wifi-menu连无线,还需要架上wpa_actiond dialog,嗯,安装个很快,几分钟就装完了。

好了,下一步生成fstab与grub启动项:

嗯,命令我都用红框框出来啦,一定按顺序,别敲错了。

第一步用genfstab –U /mnt来查看生成的fstab项,如果没问题,第二步就是用>>符号把这些写到/mnt下的/etc/fstab(为什么是mnt下的呢?)。

然后用chroot后用grub-mkconfig生成grub菜单。并导入grub.cfg

最后一步,安装grub到mbr:

嗯,注意最后一行,有No error reported,就说明安装成功了。

接下来重启就OK了

先exit退出chroot环境,然后sync一下(不做其实也无所谓),然后reboot

启动成功,用root登录,密码为空

嗯,现在系统768M,好大

Archlinux在Btrfs分区上的安装(bios篇)的更多相关文章

  1. Windows 10+Ubuntu 16.04在MBR分区上安装双系统(转)

    以下内容转自这篇博客: http://www.cnblogs.com/Duane/p/5424218.html http://www.cnblogs.com/Duane/p/6776302.html( ...

  2. ArchLinux安装(BIOS)

    ArchLinux安装(BIOS) 说在前头:在经历过无数次的失败尝试过后总结出的可用的安装过程(比官方的简单一点) 官方安装指导 一.连接网络 1.连接 # wifi-menu 2.检查是否联通 ( ...

  3. GPT分区基础知识及如何在GPT分区上安装WIN7

    大硬盘和WIN8系统,让我们从传统的BIOS+MBR模式升级到UEFI+GPT模式,现在购买的主流电脑,都是预装WIN8系统,为了更好的支持2TB硬盘,更快速的启动win8,预装系统都采取了GPT分区 ...

  4. 安装ArchLinux的参考分区方案

    其实就是从Archwiki上搬运过来的 = =. 分区方案 虽然有一些关于分区方案的通用建议,但没有严格的准则.有许多影响分区方案的因素,例如对灵活性的期望,访问速度,安全性以及可用磁盘空间的硬性限制 ...

  5. 安装win8/win10提示无法在驱动器0分区上安装windows解决方法

    在通过U盘或光盘安装win8/win8.1/win10系统时,不少用户遇到无法安装的问题,提示“无法在驱动器0的分区1上安装windows”,格式化分区1也不能解决,进而提示Windows无法安装到这 ...

  6. 如何在GPT分区上安装WIN7

    大硬盘和WIN8系统,让我们从传统的BIOS+MBR模式升级到UEFI+GPT模式,现在购买的主流电脑,都是预装WIN8系统,为了更好的支持2TB硬盘,更快速的启动win8,预装系统都采取了GPT分区 ...

  7. Windows 10+Ubuntu 16.04在MBR分区上安装双系统之后启动菜单的System Setup选项提示:can't find command "fwsetup"

    背景: 硬盘分区方式:MBR 硬盘容量256,Windows 100,Ubuntu 156,其中主分区安装的是Windows,Ubuntu安装在逻辑分区上,文件系统为Ext4,整个Ubuntu就挂载在 ...

  8. Windows 10+Ubuntu 16.04在MBR分区上安装双系统之后没有Windows 10的启动菜单解决方法

    背景: 硬盘分区方式:MBR 硬盘容量256,Windows 100,Ubuntu 156,其中主分区安装的是Windows,Ubuntu安装在逻辑分区上,文件系统为Ext4,整个Ubuntu就挂载在 ...

  9. mac+win10:UEFI分区方式下安装windows 10

    小编,最近通过在远景论坛上寻找教程--安装双系统(win10+mac os).经过一天努力,成功安装win10.为此,特地分享给各位正在需求教程的朋友,我在UEFI分区方式下安装windows 10的 ...

随机推荐

  1. Serializable接口的背后

    序列化是什么? 序列化就是将一个对象的状态(各个属性量)保存起来,然后在适当的时候再获得.序列化分为两大部分:序列化和反序列化. 序列化是这个过程的第一部分,将数据分解成字节流,以便存储在文件中或在网 ...

  2. (转)C#DataTable学习心得

    一.DataSet.DataTable.DataRow.DataColumn 1] 在DataSet中添加DataTable DataSet.Tables.Add(DataTable) 实例: Dat ...

  3. BZOJ 1087 互不侵犯king

    Description 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子. Input 只有一行,包 ...

  4. c++常用IDE

    vs2013. CodeLite (c/c++/PHP) codeBlocks Qt Creator Xcode

  5. Linux学习之head命令

    head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾. 1.命令格式: hea ...

  6. MySQL批量修改数据库的字符集

    #走过,试过的路 UPDATE information_schema.`SCHEMATA` SET DEFAULT_COLLATION_NAME='utf8_general_ci' WHERE DEF ...

  7. CGI version1.1-第一章 介绍 (译)

    CGI version1.1-第一章 介绍 1.简介 1.1 用途 CGI 是为 HTTP服务器 与 CGI脚本 在 响应客户端请求分配职责, 客户请求由url,方法与关于传输协议的附属信息, CGI ...

  8. [置顶] ubuntu12.04下编译opencv程序

    ubuntu12.04下编译opencv程序 1.在ubuntu下安装好 opencv后(建议使用apt-get install 来安装) 2.使用程序FaceExaple.c来进行测试程序 #inc ...

  9. ubuntu下lamp环境配置及将window代码迁移至linux系统

    因为最近要用需要去实现项目中的一个功能,比较好的做法就是在http://i.cnblogs.com/EditPosts.aspx?opt=1linux中实现.所以最近就将自己的代码全部迁移到linux ...

  10. Android 获取屏幕分辨率

    原文:Android 获取屏幕分辨率 得到一个屏幕尺寸的三种方法如下:        // 通过WindowManager获取        DisplayMetrics dm = new Displ ...