失败了N多次终于成功了,一点点看着ArchLinux的Wiki弄出来的。希望对朋友们有用。
ArchLinux的Wiki有很详细的介绍,如果有不懂的可以参考:ArchLinuxWiki。
首先明确下如果你想用UEFI+GPT方式,在建立虚拟机的时候必须选择64位的,不要问我为什么,我不知道,我是试出来的,后来才明白UEFI+GPT只能支持64位系统。还有,建立虚拟机之后,设置里面的系统选项卡启用EFI需要勾选。
Arch物理资源配置:
这些都需要看自己电脑配置的情况
我的配置是:
CPU2核心,内存1G,硬盘4G,其他默认。
下面就启动进入安装了
#列出当前设备 lsblk
有两种分区类型:
GUID 分区表(GPT)
主引导记录(MBR)
Arch 安装盘中包含了多种分区工具,可以根据分区表的类型进行选择:
parted: 支持 GPT 和 MBR
fdisk, cfdisk, sfdisk: GPT 和 MBR
gdisk, cgdisk, sgdisk: GPT
注:我在使用Wiki上的parted命令时总是大小分不正确,可能我还是不太会用。这里我用gdisk命令。
#使用gdisk交互模式进行硬盘分区操作,下面x是lsblk命令列出的你的硬盘的块号,我的是a gdisk /dev/sda
gdisk命令用法可以参考ArchLinuxWiki。
#首先建立新的空GUID分区表 o(不是数字0)
下面进行分区,分区方案仅供参考(总大小:4G)
EFI启动分区:512M
/(root)分区:1.5G
swap交换分区:2G
#使用n命令创建一个新的分区。 n #输入分区序号,这里默认直接回车。 #输入起始地址,或者输入偏移量大小,这里还是使用默认的,直接回车。 #输入结束地址,或者输入偏移量大小,这里输入+512M,分给EFI启动。 +512M #输入分区类型代码,EFI分区类型代码ef00。 ef00 #创建第二个分区,同上。 n #输入分区序号。 #输入起始地址。 #输入结束地址,这里输入1.5G,分给/(root)分区。 +1.5G #输入分区类型代码,linux文件系统分区类型代码8300,默认就是8300,所以直接打回车。 #创建第三个分区,同上。 n #输入分区序号。 #输入起始地址。 #输入结束地址,这里输入2G,分给swap交换分区。 +2G #输入分区类型代码,swap交换分区类型代码8200。 8200 #最后千万别忘了写入分区信息 w
分区结束,下面将分区进行格式化为需要的文件系统。
首先查看sda所有分区
lsblk /dev/sda
会出现三个分区
分区名称 | 分区大小 | 分区设备标号 | 挂载点 |
EFI | 512M | /dev/sda1 | |
/ | 1.5G | /dev/sda2 | |
swap | 2G | /dev/sda3 |
EFI分区需要格式化为fat32或vfat32。
/(root)分区需要格式化为ext类型,推荐ext4。
swap交换分区需要格式化为linux swap类型。
mkfs.vfat -F32 /dev/sda1 mkfs.ext4 /dev/sda2 mkswap /dev/sda3
挂载已经格式化好文件系统的分区。
先挂载 / (root) 分区,其它目录都要在 / 分区中创建然后再挂载。在安装环境中用 /mnt 目录挂载 root:
mount /dev/sda2 /mnt
然后挂载其余单独分区(除了 Swap),比如 /boot,/var。先创建目录,然后挂载分区:
建议将 EFI 系统分区挂载到 /mnt/boot。
mkdir -p /mnt/boot mount /dev/sda1 /mnt/boot
挂载swap分区:
swapon /dev/sda3
再看下分区表
lsblk /dev/sda
分区名称 | 分区大小 | 分区设备标号 | 挂载点 |
EFI | 512M | /dev/sda1 | /boot |
/ | 1.5G | /dev/sda2 | / |
swap | 2G | /dev/sda3 | [swap] |
至此就可以安装Arch了。
在安装系统之前需要调整一下镜像源地址,将中国的镜像源地址放在mirrirlist文件开头。
nano /etc/pacman.d/mirrorlist
Server = http://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
更改镜像列表后请务必使用 pacman -Syy 强制刷新
pacman -Syy
使用 pacstrap 来安装基本系统。如果您想通过 AUR 或者 ABS 编译安装软件包,需要装上 base-devel:
pacstrap -i /mnt base base-devel
使用 -i 选项时会在实际安装前进行确认,可以不要。
生成分区表,用以下命令生成 fstab
genfstab -U -p /mnt >> /mnt/etc/fstab
切换到新系统:
arch-chroot /mnt /bin/bash
本地化:
nano /etc/locale.gen
添加以下字符编码:
en_US.UTF-8 UTF-8 zh_CN.UTF-8 UTF-8 zh_CN GB2312
接着执行locale-gen以生成locale讯息:
locale-gen
echo LANG=en_US.UTF-8 > /etc/locale.conf
创建初始 ramdisk 环境(这个我还是没有弄明白是干吗的~!~)。
mkinitcpio -p linux
用 passwd 设置一个 root 密码:
passwd 输入密码 请再次输入密码
下面安装 bootloader,这里请注意,bootloader引导程序有很多选择,但是它们都是通过EFISTUB进行引导操作的,区别就是外观不同,兼容性不同,Wiki里面提供的是systemd-boot这个程序的安装方法以及ArchLinux通过systemd-boot的引导方法,想查看还有哪些bootloader可以使用请参考:bootloader。
我首先使用的也是systemd-boot程序引导的ArchLinux,可以参考:systemd-boot
安装程序假定系统使用 GPT 分区表,具有 Unified Extensible Firmware Interface#EFI 系统分区,FAT32 格式,512 MiB 或更大,gdisk type 为 EF00). EFI 系统分区挂载到 /boot。
安装 systemd-boot 到 EFI 系统分区:
bootctl install
用nano编辑bootctl的配置文件,/boot/loader/loader.conf
#默认加载的启动配置文件,系统会在/boot/loader/entries目录下寻找arch.conf default arch #超时时间 timeout 4 #是否允许用户编辑内核参数。1(默认值)是允许,0 是阻止。因为用户可以通过 init=/bin/bash 来绕过root密码并获得root权限,建议设置成0。 editor 0
增加启动选项
nano新建/boot/loader/entries/arch.conf配置文件
用 blkid -s PARTUUID -o value /dev/sda2 找到/(root)分区的PARTUUID,请注意这里不是EFI分区,是/(root)分区!!!请将自己的PARTUUID替换下面的PARTUUID。#要在EFI引导程序中显示的操作系统的名称 title Arch Linux linux /vmlinuz-linux initrd /initramfs-linux.img options root=PARTUUID=14420948-2cea-4de7-b042-40f67c618660 rw
保存退出。
主机名
设置个您喜欢的主机名,例如:
echo ArchLinux20160222 > /etc/hostname
并在 /etc/hosts 添加同样的主机名:
#<ip-address> <hostname.domain.org> <hostname> 127.0.0.1 localhost.localdomain localhost ArchLinux20160222 ::1 localhost.localdomain localhost ArchLinux20160222
离开 chroot 环境:
exit
关闭计算机:
poweroff
移除安装ISO文件。
再次启动,OK。
本文出自 “哲学的尽头” 博客,请务必保留此出处http://lucien1970.blog.51cto.com/10670905/1744202
Virtualbox上面UEFI/GPT安装Archlinux20160222
原文:http://lucien1970.blog.51cto.com/10670905/1744202