其实本文所有的内容在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. Ubuntu Android Studio 无法通过起动器开启

    问题: 1.可以通过终端开启 2.通过Android-Studio建立的Application无法启动, 提示 No JDK found. Please validate either STUDIO_ ...

  2. 在SQL Server 2008 中使用SQL脚本创建登录用户并授权

    到处都使用超级用户sa显然是不安全的,因此有创建用户并让其只能访问某个数据库的必要.当然可以使用SQL Server自带的图形界面向导,但是太难用用了!有时候代码比较直接,比如这里: --使用已经创建 ...

  3. Java语言导学笔记 Chapter 9 IO

    java.io 9.1.1 字符流 Reader为读取器(reader)提供API和部分实现,读取器是读取16位字符的流: Writer为写出器(writer)提供API和部分实现,写出器是写16位字 ...

  4. VC/MFC使用OLE操作 EXCEL

    1.VC插入sheet页到指定位置 插入sheet的函数用 sheets.Add(Before, After,Count,Type) 四个参数含义如下: 四个const   VARIANT:      ...

  5. Struts2中ModelDriven的使用

    它是Struts2种独有的一种接收用户输入的机制,想在项目中使用模型驱动 (ModelDriven)需要让Action实现com.opensymphony.xwork2.ModelDriven 接口, ...

  6. IE的事件与w3c事件的区别

    14. offsetWidth, scrollLeft, scrollHeight?     scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 scrollHeig ...

  7. 3D空间坐标系转换复习

    模型坐标系:ModelSpace     即模型本身为中心  模型本身自己 世界坐标系:WorldSpace    世界坐标系   整个世界 视角坐标系: ViewSpace       眼睛看到的范 ...

  8. c 函数传入数组。

    php 里面 直接 count($arr); 一个函数搞定, c里面想判断下数组的个数却非常困难. 想到php是C写的,那看看他的函数怎么写的不就行了... 哦,天啊,,事实比我想的要复杂的多... ...

  9. SQL Server 日志截断

    截断事务日志是逻辑操作,只是把日志的一部分标记为‘不再需要’所以可以重用这个空间,截断不是物理操作,不会减少磁盘上文件的大小, 要减小物理大小必定要进行收缩. ----------- 有时就算是备份都 ...

  10. HTML 5 drag and drop 简介

    Html 5 drag and drop 简介 HTML5提供了专门拖拽和拖放的API draggable属性 启用拖拽 draggable属性是否可被拖拽, 可选值: true, false, au ...