Arch linux logo

pubDate: 2024-03-04

author: sakakibara

astro

公開学習

コミュニティ

手術中

心臓が汗をかく。
部屋は暗いが眼の前のディスプレイがやたら眩しい。

“練習通りにいってくれ。“

汚い字で書かれたメモを見ながら、慎重にパーティションを切り分ける。

1つのタイプミスが命取りになる。
カーソルの点滅に心臓の鼓動が追いつく。
呼吸を殺し、指先に意識を移し、暗闇の中で輝く文字だけを見つめる。
Enterに小指をかけた直前、あの日々を思い出した。

UEFI or BIOS

UEFI or BIOS
cat /sys/firmware/efi/fw_platform_size

linuxがどのように起動するか。
電源を入れると、マザーボードのROMに書き込まれた起動ファームウェアが実行される。
起動ファームウェアは大きく分けて2つ。
BIOSとUEIFだ。

端的に言ってしまえばBIOSの方が古くてUEFIの方が新しい。
なので最近のPCはUEFIを採用している。

自分が使用する起動ファームウェアがどちらを採用しているかによって今後のインストール手順が大きく変わる。

また、linuxのインストールはインストールメディアとインストール先のブロックデバイスが必要になる。

このコマンドを含め、明示されるまでは暗黙のうちにインストールメディアのlinuxのコマンドを入力していることに注意する。

Can you use your network ?

can you use network?
ip link
ping archlinux.jp

このあとの工程でインストールメディアから様々なパッケージをダウンロードする。 そのため、インターネットに接続されていることは必須となる。

ip link コマンドはlinuxが認識しているネットワークデバイスを表示するコマンドである。 注意することとして、これにeth0のような表示あったからと言って、それはインターネットに接続している確認にはならない。 あくまで接続されているデバイスを表示するだけなのだ。

ping archlinux.jpコマンドはarchlinux.jpへデータを送信し、応答を表示するコマンドだ。

pingコマンドはICMP(Internet Control Message Protocol: インターネット制御通知プロトコル)というプロトコルのECHO_REQUESTを使用する。これはネットワークの通知のテストに使われる。

timedate check

timedatectl
timedatectl status

時間をチェックする。

separete partition

lsblk
lsblk
gdisk
gdisk /dev/sda
gdisk
> o => Y
> n => Enter => Enter => +1G => ef00
> n => Enter => Enter => +4G => 8200
> n => Enter => Enter => Enter => 8e00
> w

add LVM

物理ボリューム: Physical Volume

pvcreate
pvcreate /dev/sda3
pvs or pvdisplay
pvs
pvdisplay

ボリュームグループ: Volume Group

vgcreate
vgcreate ArchVolGroup /dev/sda3
vgs, vgdisplay
vgs
vgdisplay

論理ボリューム: Logical Volume

lvcreate
lvcreate -L 100G ArchVolGroup -n lvol
lvcreate -l 100%FREE ArchVolGroup -n lvolhome
lvdisplay, lvremove, lvresize ...
lvdisplay
lvremove
lvresize

add file system

mkfs
mkfs.fat -F 32 /dev/sda1
mkswap /dev/sda2
mk.ext4 /dev/ArchVolGroup/lvol
mk.ext4 /dev/ArchVolGroup/lvolhome
lsblk
lsblk --fs

mount block device

mount
mount /dev/ArchVolGroup/lvol /mnt
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
mkdir /mnt/home
mount /dev/ArchVolGroup/lvolhome /mnt/home
swapon /dev/sda2

chose pacman mirrorlist

mount
reflector --sort rate --country jp --latest 10 --save /etc/pacman.d/mirrorlist

download pacages

mount
pacstrap -K /mnt base linux linux-firmware vim sudo man-db man-pages lvm2

fstab

mount
genfstab -U /mnt >> /mnt/etc/fstab

setting XDG

zsh
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_CACHE_HOME="$HOME/.cache"
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_STATE_HOME="$HOME/.local/state"

change root

mount
arch-chroot /mnt

setting locale

mount
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
vim /etc/locale.gen
en_US.UTF-8 //unmount
jp_JP.UTF-8 //unmount
locale-gen
locale-gen
vim /etc/locale.conf
LANG=en_US.UTF-8
vim /etc/hostname
organon

setting network

systemd-networkd
systemctl enable systemd-networkd systemd-resolved
vim /etc/systemd/network/ether.network
[Match]
Name = enp03
[Network]
DHCP = yes

setting for LVM

vim /etc/mkinitcpio.conf
HOOKS=(base ... block lvm2 filesystem)

initcpio

mkinitcpio
mkinitcpio -P

user add

setting grub and microcode

grub
pacman -S amd-ucode grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub
mkdir /boot/EFI/boot
cp /boot/EFI/GRUB/grubx64.efi /boot/EFI/boot/bootx64.efi
vim /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="root=/dev/ArchVolGroup/lvol"
GRUB_PRELOAD_MODULES="... lvm"
vim /etc/default/grub
grub-mkconfig -o /boot/grub/grub.cfg

Arch linux

reboot
exit
umount -R /mnt
reboot