install Archlinux

先阅读

wiki.archlinux.org:
network
partitioning
ssd
btrfs
grub

安装准备

制作安装盘

dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress && sync

验证启动模式,是否进入UEFI

ls /sys/firmware/efi/efivars

联网

会自动连接DHCP有线网,使用ping工具验证
其他配置方式使用netctl:
先停止dhcpcd@interface.service

有线网

  1. 进入/etc/netctl复制examples文件夹中相应的文件出来并配置好
  2. netctl start xxx

无线网

使用wifi-menu交互式工具配置,加-o参数可以加密密码,系统安装完可以直接复制进去

更新系统时间

timedatectl set-ntp true

分区

/, /usr, /boot/efi, /home, /var 如有多系统共享媒体文件可以挂载开辟媒体文件分区

  1. 使用fdisk /dev/sdx进入交互模式
  2. 创建GPT分区表 (g)
  3. 如果没有 EFI 分区就创建类型为EFI System的EFI分区,一般260M (n,t)
  4. 创建类型为Linux root (x86-64)/根分区
  5. 创建/usr, /boot/efi, /home, /var分区
  6. 验证分区是否对齐 parted /dev/sda align-check optimal 2

格式化

格式化前分区需要处于未挂载状态
mkfs.fstype /dev/partition
mkfs.fat -F32 $efi
mkfs.reiserfs $var

挂载

创建目录并挂载

hdparm -I /dev/sdx | grep TRIM检测固态硬盘分区是否支持TRIM,如果支持要加discard参数
btrfs: mount -o compress=lzo,noatime /dev/sdxY /mnt/,genfstab后检查compress=lzo,noatime属性

安装

vim /etc/pacman.d/mirrorlist
pacstrap /mnt base base-devel vim

配置

genfstab -U -p /mnt >> /mnt/etc/fstab,检查fstab的compress=izo,noatime,discard, /usr分区的passno设为0
arch-chroot /mnt
vim /etc/mkinitcpio.conf,HOOKS加入usr来使用单独/usr分区,加入btrfs
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc --utc
vim /etc/locale.gen
locale-gen
echo LANG=en_US.UTF-8 > /etc/locale.conf
echo $hostname > /etc/hostname
pacman -S iw wpa_supplicant dialog grub efibootmgr intel-ucode
grub-install --target=x86_64-efi --efi-directory=$esp --bootloader=archlinux
grub-mkconfig -o /boot/grub/grub.cfg
cp $esp/EFI/archlinux/grubx64.efi $esp/EFI/boot/bootx64.efi
pacman -S btrfs-progs后会自动mkinitcpio -p linux
passwd
exit来退出chroot
umount -R /mnt
reboot并用root帐号密码登陆
如果发现Windows 改变了启动次序,先检查UEFI中“安全启动”和windows中“快速启动”没有被启用,UEFI中启动顺序是否设置为“Linux Boot Manager"先于"Windows Boot Manager",如果还是无法直接启动Linux,就启动到windows并管理员权限运行CMD执行bcdedit /set {bootmgr} path \EFI\systemd\systemd-bootx64.efi
useradd -mg users -G wheel $username
passwd $username
visudo

install archlinux on usb

windows只能识别第一个分区,所以如果以后要用在window上,数据分区要是第一个分区
新建 gpt 分区表,uefi 只支持 gpt 分区表
创建数据分区
创建 100M efi 类型分区 ,分区代号EF00,flags boot,esp
创建 1M bios 类型分区,分区代号EF02,flags bios_grub
mkfs.exfat /dev/sdX1 或者 mkfs.ntfs /dev/sdX1
mkfs.fat -F32 /dev/sdX2
mkfs.ext4 -O "^has_journal" /dev/sdX4
正常安装 archlinux
pacman -S networkmanager xf86-video-vesa xf86-video-ati xf86-video-intel xf86-video-nouveau xf86-input-synaptics
修改 /etc/mkinitcpio.confblock添加到紧挨udev的后面. 只有这样早期用户空间才能正确的装入模块
使用 fallback 内核可以获得最大的兼容性
mkdir /etc/systemd/journald.conf.d
echo -e '[Journal]\nStorage=volatile\nRuntimeMaxUse=30M' > /etc/systemd/journald.conf.d/usbstick.conf
grub-install --target=i386-pc --recheck --boot-directory=/boot /dev/sdX
grub-install --target=x86_64-efi --recheck --efi-directory=/boot/efi/ --removable

推荐阅读更多精彩内容