其实本文所有的内容在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. MySQL的group_concat与Oracle的wm_concat使用区别

    Oracle的wm_concat在拼接时,如果字段内容为空结果为空,null类型相加不受影响. MySQL的group_concat拼接时,如果不设置Separator,字段内容为空时不会得到空的结果 ...

  2. SqlServer导库语句

    GO /****** 对象: StoredProcedure [dbo].[sp_ExportDatabase] 脚本日期: 07/18/2013 12:37:26 ******/ SET ANSI_ ...

  3. iOS计算文本高度

    NSDictionary *attribute = @{NSFontAttributeName: UIFont(14)}; CGRect labelRect = [string boundingRec ...

  4. Java多线程-新特征-锁

    Java中读写锁有个接口java.util.concurrent.locks.ReadWriteLock,也有具体的实现ReentrantReadWriteLock,详细的API可以查看JavaAPI ...

  5. linux查看端口占用

    今天发现服务器上Tomcat 8080端口起不来,老提示端口已经被占用. 使用命令: ps -aux | grep tomcat 发现并没有8080端口的Tomcat进程. 使用命令:netstat ...

  6. Android Intent实现页面跳转

      Intent可以来协助完成Android各个组件之间的通信   1:startActivity(intent);     //直接启动                /*              ...

  7. 如何实现select组件的选择输入过滤作用

    实现select组件的选择输入过滤作用的js代码如下: /** *其中//******之间的部分显示的是在没有选择输入过滤功能的代码上加入的功能代码 ** / (function ( $ ) { $. ...

  8. Pthon MySQLdb 的安装

    说明: 要用python 去连接MySQL我们需要一个驱动程序这个程序就是MySQL-python,所以我们首先就是要下一个对应版本的MySQL-python (注意这个驱动程序只有32位版本的,所以 ...

  9. oracle 查询表的大小,表空间的使用情况,默认表空间

    oracle 查询表的大小,表空间的使用情况,默认表空间 oracle 查询表的大小,表空间的使用情况,默认表空间 --查看某张表占用磁盘空间大小 ( 表名大写 ) Select Segment_Na ...

  10. Oracle EBS-SQL (SYS-15):查询表空间2.sql

    /*表空间查询*/ SELECT d.status "状态", d.tablespace_name "名称", d.contents "类型" ...