Ting-Jun (snsd0805)

Ting-Jun (snsd0805)

Developer. Student

© 2019

[筆記]Arch安裝過程筆記

單純紀錄Arch安裝的過程和一些不熟悉之指令的補充
筆記僅為本人紀錄用,內容不甚完整、整卻,請勿盡信本篇內容

參考資料:
Arch Linux安裝指南—fanlan1210
Try to install Arch Linux with UEFI (Beginner)
鳥哥的 Linux 私房菜
ArchWiki
Arch Linux:安裝筆記—為了可能的聲音
Arch linux介紹與安裝—成大資工wiki
朝陽科技大學資訊工程學系

前置工作

Arch網站下載iso檔,並寫入USB、光碟、SD卡等儲存裝置

連線設定

測試網路連線

	ping 8.8.8.8

有線連線

	ifconfig <interface> up;
	dhclient <interface>;

無線連線

	ifconfig <interface> up
	wpa_passphrase <ESSID> <password> >> /etc/	wpa_supplicant/wpa_supplicant.conf
	wpa_supplicant -B -i <interface> -c /etc/	wpa_supplicant/wpa_supplicant.conf
	dhclient <interface>

磁碟分割

本次測試使用全空硬體測試

分割狀態

檢查目前硬碟分割狀態

	lsblk
	# list block device

OR

	fdisk -l
	# 分割硬碟用指令,MBR分割表
	# 若硬碟大小大於2TB,變無法使用fdisk分割硬碟,使用parted以GPT分割方式

分割

使用gdisk進入分割狀態

	gdisk /dev/sda

可以使用?查詢指令
p查詢分割狀態
n新增分割區,設定編號、型態、大小

本次測試分割狀況:
/dev/sda1:/boot 128MB EFI System
/dev/sda2:/swap   1GB Linux Swap    
/dev/sda3:/     6.9GB Linux filesystem

格式化磁區

	mkfs -t vfat /dev/sda1;
	mkswap /dev/sda2;
	mkfs -t ext4 /dev/sda3;

掛載磁區

	mount /dev/sda3 /mnt;
	mkdir /mnt/boot;
	mount /dev/sda1 /mnt/boot;

安裝kernel包

排序鏡像站順序,提高下載速率

	pacman -Sy reflector
	reflector --verbose --latest 100 --sort rate --country 'Taiwan' --save /etc/pacman.d/mirrorlist

安裝base & base-devel

	pacstrap /mnt base base-devel

建立fstab

/etc/fstab提供檔案系統的資訊,定義了儲存設備和磁區如何初始化和如何連接整個系統。
作用即設定分割區在開機時的掛載點及如何掛載。

開機自動掛載

掛載限制

  1. 根目錄一定要最先掛載
  2. 其他掛載點必須為自己建立的目錄
  3. 所有掛載點在同一時間只能掛載一次
  4. 所有partions在同一時間僅能掛載一次
  5. 若要卸載,需將工作目錄移開

Arch範例

# <file system>        <dir>         <type>    <options>             <dump> <pass>
#   儲存裝置           掛載點     裝置檔案類型    選項       可否備dump備份 不正常關機檢查順序
none                   /dev/pts      devpts    defaults                0      0
none                   /dev/shm      tmpfs     defaults                0      0

/dev/cdrom             /media/cd     iso9660   ro,user,noauto,unhide   0      0
/dev/dvd               /media/dvd    udf       ro,user,noauto,unhide   0      0
/dev/fd0               /media/fl     auto      user,noauto             0      0

建立fstab檔案內容

Arch、ubuntu接使用UUID掛載磁區
可以使用以下指令察看各磁區UUID資訊

	blkid -s UUID

建立內容

	genfstab -U /mnt >> /mnt/etc/fstab
	# -U 為使用UUID當分類定義

更改根目錄位置

chroot更改系統根目錄位置

	arch-chroot /mnt 

設定時區

	ln -sf /usr/share/zoneinfo/Asia/Taipei /etc/localtime

設定語言環境

	echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
	echo "zh_TW.UTF-8 UTF-8" >> /etc/locale.gen
	locale-gen
	echo "LANG=en_US.UTF-8" > /etc/locale.conf

設定電腦名稱

	echo "<pc-name>" > /etc/hostname

安裝vim

	pacman -S vim

pacman

類似於Ubuntu的apt、CentOS的yum,為套件管理工具
相較於其他使用指令式,pacman使用flag(目前不懂意思)

	# 安裝套件
	-S: sync
	pacman -S <name>
	
	# 安裝並更新	
	pacman -Sy <name>
	pacman -Syu <name>

設定連線設定檔

	vim /etc/hosts

最後一行加入

	127.0.0.1  localhost.localdomain       localhost
	::1        localhost.localdomain       localhost
	127.0.0.1  <your-pc-name>.localdomain  <your-pc-name>

建立開機映像檔

	mkinitcpio -p linux

mkinitcpio

目前不是很懂意思,過一陣子研究
大概知道是創建 initramfs 的 bash腳本,
主要是內核啟動相關的。

而initramfs,
是一個臨時檔案系統,在啟動階段會被核心呼叫,
主要用於根目錄被掛載前進行準備工作。

設定root密碼

	passwd

安裝grub啟動程式

	pacman -Sy grub os-prober efibootmgr

os-prober 可以用以偵測其他系統的存在,並在之後加入 grub 選單中。

	os-prober
	#下面是efi的,legacy bios不能使用
	grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
	grub-mkconfig -o /boot/grub/grub.cfg

grub

允許用戶可以在電腦擁有多個作業系統,
在電腦啟動時選擇希望執行的系統。
藉由進入不同的系統分割區的核行達成該目的。

安裝網路工具

	pacman -S net-tools;
	pacman -S wireless_tools;
	pacman -S dhclient;
	pacman -S wpa_supplicant;

重啟並進入新系統

	exit
	umount /R /mnt
	reboot

建立新使用者

sudo

	pacman -S sudo
	visudo

刪除#號

	# %wheel ALL=(ALL) ALL

建新使用者

	useradd -m <name>
	passwd <name>
	usermod <name> -G wheel

Gnome桌面環境

	pacman -Sy gnome gnome-extra

systemd開機自動啟動桌面環境

	systemctl enable NetworkManager
	systemctl enable gdm

systemd

systemd 是一個Linux的系統與服務管理器。
我不確定等不等於,但是我決的使用方法跟ubuntu、centos的service怎麼好像有點像…

而systemd的主要命令是systemctl可以查看系統狀態和管理系統服務。
常用就是以下這些

	systemctl status <service>
	systemctl start <service>
	systemctl stop <service>
	systemctl restart <service>
	systemctl enable <service>

結束

這一篇單純自己的筆記,很多是東撈西撈的。
目前就打到這裡,其他延伸的套件就另外再google找找看了,