これは個人的なガイドなので、迷っていてこのガイドをどこかから見つけたばかりの場合は、公式wiki
を読むことをお勧めします。このガイドでは、 systemd-boot
、 UEFI
、およびLUKS/LVM
を使用してパーティションを暗号化する場合のガイドに焦点を当てます。このガイドは、 Archlinux
再インストールするときに多くのことを覚えておくために存在します。
インストールする前に、必ず次のことを行ってください。
デフォルトのコンソールキーマップは US です。利用可能なレイアウトは次のようにリストできます。
# ls /usr/share/kbd/keymaps/**/*.map.gz
レイアウトを変更するには、パスとファイル拡張子を省略して、対応するファイル名をロードキーに追加します。たとえば、US キーボード レイアウトを設定するには:
# loadkeys us
UEFI マザーボードで UEFI モードが有効になっている場合、Archiso はそれに応じて systemd-boot 経由で Arch Linux を起動します。これを確認するには、efivars ディレクトリを一覧表示します。
# ls /sys/firmware/efi/efivars
コマンドでエラーが発生せずにディレクトリが表示された場合、システムは UEFI モードで起動されています。ディレクトリが存在しない場合、システムはBIOS (またはCSM ) モードで起動される可能性があります。
Arch Linux base
とlinux
パッケージをインストールするには、インターネットに接続していることを確認する必要があります。インターフェースの名前を見てみましょう。
# ip link
次のようなものが表示されるはずです。
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff permaddr 00:00:00:00:00:00
enp0s0
有線インターフェイスですwlan0
はワイヤレスインターフェイスです有線接続を使用している場合は、 systemctl start dhcpcd@<interface>
によって有線インターフェイスを有効にできます。
# systemctl start dhcpcd@enp0s0
ラップトップを使用している場合は、 iwd
からiwctl
コマンドを使用してワイヤレス アクセス ポイントに接続できます。デフォルトですでに有効になっていることに注意してください。また、ワイヤレス カードがrfkill
でブロックされていないことを確認してください。
ネットワークをスキャンします。
# iwctl station wlan0 scan
次の方法でスキャンされたネットワークのリストを取得します。
# iwctl station wlan0 get-networks
ネットワークに接続します。
# iwctl -P "PASSPHRASE" station wlan0 connect "NETWORKNAME"
Archlinux Web サイトに ping を実行して、オンラインであることを確認します。
# ping archlinux.org
不明なホストまたは宛先ホストに到達できないという応答を受け取った場合は、まだオンラインではないことを意味します。ネットワーク構成を確認し、上記の手順をやり直してください。
timedatectl
使用して、システム クロックが正確であることを確認します。
# timedatectl set-ntp true
サービスのステータスを確認するには、 timedatectl status
を使用します。
ライブ システムによって認識されると、ディスクは/dev/sda
、 /dev/nvme0n1
、 /dev/mmcblk0
などのブロック デバイスに割り当てられます。これらのデバイスを識別するには、lsblk または fdisk を使用します。最も一般的なメイン ドライブはsdaです。
# lsblk
rom
、 loop
、またはairoot
で終わる結果は無視される場合があります。
このガイドでは、ドライブをパーティション分割する 2 つの異なる方法を作成します。 1 つは通常のインストール用で、もう 1 つは暗号化 (LUKS/LVM) を使用してセットアップします。暗号化されていないものから始めましょう。
メインドライブをクリーンアップして、インストール用の新しいパーティションを作成しましょう。はい、このガイドでは、 /dev/sda
ディスクとして使用します。
# gdisk /dev/sda
x を押してエキスパート モードに入ります。次に、 z を押してドライブをザッピングします。 GPT を消去して MBR を消去するかどうかを尋ねるメッセージが表示されたら、 y を押します。これによりドライブ全体がザッピングされるため、データが失われ、これを実行するとアトムに還元されることに注意してください。これ。できません。なれ。元に戻す。
cgdisk
開いてファイルシステムのパーティション分割を開始します
# cgdisk /dev/sda
GPT が破損しているという警告が表示されたら、 Return キーを押します。
これで、パーティション番号、パーティション サイズ、パーティション タイプ、およびパーティション名を示すメイン ドライブが表示されます。パーティションのリストが表示された場合は、最初にそれらをすべて削除します。
boot
パーティションを作成する
EF00
に設定します。 Enter キーを押します。boot
に設定します。 Enter キーを押します。 root
パーティションを作成する
8300
) を選択します。root
に設定します。 root
パーティションを作成する
home
に設定します。最後に、パーティション リストの一番下にあるWrite
クリックして、変更をディスクに書き込みます。 yes
と入力して書き込みコマンドを確認します。これでディスクのパーティション分割が完了しました。 Quit
を押してcgdisk を終了します。次のセクションに進みます。
LUKS/LVM
による暗号化ファイルシステムメインドライブをクリーンアップして、インストール用の新しいパーティションを作成しましょう。はい、このガイドでは、 /dev/sda
ディスクとして使用します。
# gdisk /dev/sda
x を押してエキスパート モードに入ります。次に、 z を押してドライブをザッピングします。 GPT を消去して MBR を消去するかどうかを尋ねるメッセージが表示されたら、 y を押します。これによりドライブ全体がザッピングされるため、データが失われ、これを実行するとアトムに還元されることに注意してください。これ。できません。なれ。元に戻す。
cgdisk /dev/sda
を実行してパーティションを作成します。
# cgdisk /dev/sda
GPT が破損しているという警告が表示されたら、 Return キーを押すだけです。
これで、パーティション番号、パーティション サイズ、パーティション タイプ、パーティション名を示すメイン ドライブが表示されます。パーティションのリストが表示された場合は、最初にそれらをすべて削除します。
boot
パーティションを作成する
EF00
に設定します。 Enter キーを押します。boot
に設定します。 Enter キーを押します。 LVM
パーティションを作成する
8e00
に設定します。 Enter キーを押します。lvm
に設定します。 Enter キーを押します。最後に、パーティション リストの一番下にあるWrite
クリックして、変更をディスクに書き込みます。 yes
と入力して書き込みコマンドを確認します。これでディスクのパーティション分割が完了しました。 Quit
を押してcgdisk を終了します。次のセクションに進みます。
lsblk
再度使用して、作成したパーティションを確認します。私たちは?このガイドは自分のためにやっているのかと思っていました(笑)
# lsblk
次のようなものが表示されるはずです。
名前 | 少佐:ミン | RM | サイズ | RO | タイプ | マウントポイント |
---|---|---|---|---|---|---|
sda | 8:0 | 0 | 477G | 0 | ||
sda1 | 8:1 | 0 | 1 | 0 | 一部 | |
sda2 | 8:2 | 0 | 1 | 0 | 一部 | |
sda3 | 8:3 | 0 | 175G | 0 | 一部 |
sda
はメインディスクですsda1
はブート パーティションですsda2
スワップ パーティションですsda3
ホームパーティションです
名前 | 少佐:ミン | RM | サイズ | RO | タイプ | マウントポイント |
---|---|---|---|---|---|---|
sda | 8:0 | 0 | 477G | 0 | ディスク | |
sda1 | 8:1 | 0 | 1 | 0 | 一部 | |
sda2 | 8:2 | 0 | 1 | 0 | 一部 |
sda
はメインディスクですsda1
はブート パーティションですsda2
LVM パーティションです
驚き!驚き! /boot
パーティションは暗号化されません。
/dev/sda1
パーティションをFAT32
としてフォーマットします。これが/boot
になります。
# mkfs.fat -F32 /dev/sda1
/dev/sda3
および/dev/sda4
パーティションをEXT4
としてフォーマットします。これがroot
およびhome
パーティションになります。
# mkfs.ext4 /dev/sda3
# mkfs.ext4 /dev/sda4
/dev/sda1
パーティションをFAT32
としてフォーマットします。これが/boot
になります。
# mkfs.fat -F32 /dev/sda1
LUKS 暗号化コンテナーを作成します。
# cryptsetup luksFormat /dev/sda2
パスフレーズを 2 回入力します。これを忘れないでください!
作成したコンテナを開いて、任意の名前を付けます。このガイドでは、 cryptlvm
のみを使用します。
# cryptsetup open --type luks /dev/sda2 cryptlvm
パスフレーズを入力して確認します。
復号化されたコンテナは/dev/mapper/cryptlvm
で利用できるようになりました。
開いた LUKS コンテナ上に物理ボリュームを作成します。
# pvcreate /dev/mapper/cryptlvm
ボリューム グループを作成し、 volume
(または任意の名前) という名前を付け、以前に作成した物理ボリュームを追加します。
このガイドでは、ボリューム グループ名としてvolume
のみを使用します。
# vgcreate volume /dev/mapper/cryptlvm
必要なすべての論理ボリュームをボリューム グループ上に作成します。 root
とhome
論理ボリュームを作成します。 volume
作成したばかりのボリュームの名前であることに注意してください。
root
を作成します。このガイドでは 100GB を使用します。
# lvcreate -L 100G volume -n root
これにより、 /dev/mapper/volume-root
が作成されます。
私たちのホームスイートhome
を作りましょう。残りのスペースをそれに割り当てます。
# lvcreate -l 100%FREE volume -n home
これにより、 /dev/mapper/volume-home
が作成されます。
LVM ボリュームの下の論理パーティションをフォーマットします。
root
とhome
パーティションをフォーマットします。
# mkfs.ext4 /dev/mapper/volume-root
# mkfs.ext4 /dev/mapper/volume-home
/dev/sda
パーティションを/mnt
にマウントします。これは私たちの/
:
# mount /dev/sda3 /mnt
/boot
マウントポイントを作成します。
# mkdir /mnt/boot
/dev/sda1
/mnt/boot
パーティションにマウントします。これが/boot
になります:
# mount /dev/sda1 /mnt/boot
/home
マウントポイントを作成します。
# mkdir /mnt/home
/dev/sda4
/mnt/home
パーティションにマウントします。これが私たちの/home
になります:
# mount /dev/sda1 /mnt/home
/dev/mapper/volume-root
パーティションを/mnt
にマウントします。これは私たちの/
:
# mount /dev/mapper/volume-root /mnt
/boot
マウントポイントを作成します。
# mkdir /mnt/boot
/dev/sda1
/mnt/boot
パーティションにマウントします。これが/boot
になります:
# mount /dev/sda1 /mnt/boot
/home
マウントポイントを作成します。
# mkdir /mnt/home
/dev/mapper/volume-home
を/mnt/home
パーティションにマウントします。これが私たちの/home
になります:
# mount /dev/mapper/volume-home /mnt/home
swap
はすでに有効になっているため、マウントする必要はありません。
次に、 base
、 linux
、 linux-firmware
、およびbase-devel
パッケージをシステムにインストールしましょう。
# pacstrap /mnt base base-devel linux linux-zen linux-firmware
ゲームに必要なモジュールが揃っているのでlinux-zen
インストールします。
base
パッケージにはライブ インストールのすべてのツールが含まれているわけではないため、完全に機能する基本システムには他のパッケージのインストールが必要になる場合があります。特に、以下のインストールを検討してください。
ネットワークに必要なソフトウェア、
dhcpcd
: RFC2131準拠のDHCPクライアントデーモンiwd
: インターネット ワイヤレス デーモンinetutils
: 一般的なネットワーク プログラムのコレクションiputils
: ping
を含むネットワーク監視ツールRAID
またはLVM
パーティションにアクセスするためのユーティリティ
lvm2
: Logical Volume Manager 2 ユーティリティ ( LUKS/LVM を使用して暗号化されたファイルシステムを設定している場合は、これを pacstrap に含めます)ズラム
zram-generator
テキストエディタ、
nano
vim
vi
マニュアルページと情報ページのドキュメントにアクセスするためのパッケージ、
man-db
man-pages
マイクロコード
intel-ucode
/ amd-ucode
ツール:
git
: 高速分散バージョン管理システムtmux
: 端末マルチプレクサless
: テキスト ファイルを表示するための端末ベースのプログラムusbutils
: USB デバイスユーティリティbash-completion
: bash シェルのプログラム可能な補完システムで使用されるファイル システムを管理するためのユーザースペース ユーティリティ
ntfs-3g
: NTFS ファイルシステムドライバーとユーティリティunrar
: RAR 解凍プログラムunzip
: .zip
アーカイブ内のファイルを抽出して表示するためのp7zip
: 高圧縮率のコマンドライン ファイル アーカイバunarchiver
: unar
およびlsar
: アーカイブ ファイルを解凍するための Objective-C ツールgvfs-mtp
: GIO
の仮想ファイルシステム実装 ( MTP
バックエンド; Android、メディア プレーヤー)libmtp
: メディア転送プロトコルのライブラリ実装android-udev
: Android デバイスを Linux ボックスに接続するための Udev ルールmtpfs
: 任意の MTP デバイスからの読み取りと書き込みをサポートする FUSE ファイルシステムxdg-user-dirs
: ~/Desktop
や~/Music
などのユーザー ディレクトリを管理しますこれらのツールは後で役立ちます。将来の私は、これらをインストールしてください。
# genfstab -U /mnt >> /mnt/etc/fstab
結果の/mnt/etc/fstab
ファイルを確認し、エラーがある場合は編集します。
次に、root を新しくインストールしたシステムに変更します。
# arch-chroot /mnt /bin/bash
タイムゾーンの選択は/usr/share/zoneinfo/
にあります。私はフィリピンにいるので、 /usr/share/zoneinfo/Asia/Manila
使用します。あなたの国に適したタイムゾーンを選択してください:
# ln -sf /usr/share/zoneinfo/Asia/Manila /etc/localtime
hwclock
を実行して/etc/adjtime
を生成します。
# hwclock --systohc
このコマンドは、ハードウェア クロックが UTC に設定されていることを前提としています。
locale
システムが使用する言語、および通貨単位、数秘術、文字セットなどのその他の地域的な考慮事項を定義します。可能な値は/etc/locale.gen
にリストされています。 en_US.UTF-8
およびその他の必要なローカリゼーションのコメントを解除します。
/etc/locale.gen
内のen_US.UTF-8 UTF-8
およびその他の必要なロケールのコメントを解除し、保存し、次のように生成します。
# locale-gen
locale.conf
ファイルを作成し、それに応じて LANG 変数を設定します。
# locale > /etc/locale.conf
キーボード レイアウトを以前に設定した場合は、その変更をvconsole.conf
で永続的にします。
# echo "KEYMAP=us" > /etc/vconsole.conf
us
レイアウトを使用していませんか?取り替えろよ、バカ。
ホスト名ファイルを作成します。このガイドでは、ホスト名としてMYHOSTNAME
のみを使用します。ホスト名はホストのホスト名です。アフリカでは 60 秒ごとに 1 分が経過します。
# echo "MYHOSTNAME" > /etc/hostname
/etc/hosts
開いて、一致するエントリをhosts
に追加します。
127.0.0.1 localhost
::1 localhost
127.0.1.1 MYHOSTNAME.localdomain MYHOSTNAME
システムに永続的な IP アドレスがある場合は、 127.0.1.1
の代わりにそれを使用する必要があります。
mkinitcpio は pacstrap を使用したカーネル パッケージのインストール時に実行されるため、通常は新しい initramfs を作成する必要はありません。これは、暗号化を使用してシステムを設定している場合に重要です。
```
# mkinitcpio -P
```
DO NOT FORGET TO RUN THIS BEFORE REBOOTING YOUR SYSTEM!
エディターで/etc/mkinitcpio.conf
を開きます。
このガイドでは、 initramfs をセットアップする 2 つの方法、 udev
(デフォルト) とsystemd
あります。 plymouth
(スプラッシュスクリーン) を使用する予定がある場合は、 systemd
ベースの initramfs を使用することをお勧めします。
udev ベースの initramfs (デフォルト)。
HOOKS
配列を見つけて、次のように変更します。
HOOKS=(base udev autodetect keyboard modconf block encrypt lvm2 filesystems fsck)
systemd ベースの initramfs。
HOOKS
配列を見つけて、次のように変更します。
HOOKS=(base systemd autodetect keyboard sd-vconsole modconf block sd-encrypt lvm2 filesystems fsck)
initramfs イメージを再生成します。
# mkinitcpio -P
システムを再起動する前に、これを実行することを忘れないでください。
# dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress
適切な権限を設定する
# chmod 0600 /swapfile
正しいサイズのファイルを作成した後、それをスワップするようにフォーマットします。
# mkswap -U clear /swapfile
スワップファイルをアクティブ化する
# swapon /swapfile
最後に、 fstab 設定を編集して/etc/fstab
にスワップ ファイルのエントリを追加します。
/swapfile none swap defaults,pri=10 0 0
# pacman -S zram-generator
/etc/systemd/zram-generator.conf !
私は合計 RAM の半分を zswap サイズとして使用することを好みます。私のラップトップには 4 つのコアがあるので、4 つの zram デバイスに分散します。だから私はこの設定を使用します:
[zram0]
zram-size = ram/8
compression-algorithm = zstd
swap-priority = 100
[zram1]
zram-size = ram/8
compression-algorithm = zstd
swap-priority = 100
[zram2]
zram-size = ram/8
compression-algorithm = zstd
swap-priority = 100
[zram3]
zram-size = ram/8
compression-algorithm = zstd
swap-priority = 100
何も有効にしたり開始したりする必要はありません。zram デバイスは自動的に初期化されます。再起動してswapon -s
実行して、スワップを確認してください。
multilib
とAUR
/etc/pacman.conf
で multilib および AUR リポジトリを有効にします。選択したエディターで開きます。
multilib
コメントを解除します (行頭から # を削除します)。次のようになります。
[multilib]
Include = /etc/pacman.d/mirrorlist
/etc/pacman.conf
の末尾に次の行を追加して、AUR リポジトリを有効にします。
[archlinuxfr]
SigLevel = Never
Server = http://repo.archlinux.fr/$arch
pacman
グッズ「イースターエッグ」とグッズは、archlinux のパッケージ マネージャーであるpacman
で有効にすることができます。
/etc/pacman.conf
を開き、 # Misc options
見つけます。
pacman
に色を追加するには、 Color
のコメントを解除します。次に、 Color
文字列の下にILoveCandy
追加して、 Pac-Man
をpacman
に追加します。並列ダウンロードを有効にするには、コメントも解除します。
Color
ILoveCandy
ParallelDownloads = 3
リポジトリが正常に追加されたかどうかを確認し、イースターエッグを有効にするには、次のコマンドを実行します。
# pacman -Syu
アップデートでエラーが返された場合は、 pacman.conf
再度開き、人的エラーがないか確認してください。はい、大失敗しましたね。
root
パスワードを設定します。
# passwd
新しいユーザー アカウントを追加します。このガイドでは、 root
アカウントとは別に、新しいユーザーのユーザー名としてMYUSERNAME
使用します。 (私の表現は冗長ですよね?) もちろん、サンプルのユーザー名を自分のユーザー名に変更してください。
# useradd -m -g users -G wheel,storage,power,video,audio,rfkill,input -s /bin/bash MYUSERNAME
これにより、新しいユーザーとそのhome
フォルダーが作成されます。
ユーザーMYUSERNAME
のパスワードを設定します。
# passwd MYUSERNAME
将来、 sudo
コマンドを使用して root 権限が必要な場合は、自分で root 権限を付与する必要があります。
# EDITOR=vim visudo
行のコメントを解除します (# を削除します)。
# %wheel ALL=(ALL) ALL
はい、ここでブートローダーをインストールします。 systemd-boot
使用するので、 grub2
必要ありません。
ブートローダーをインストールします。
/boot
マウントポイント ( /dev/sda1
パーティション) にインストールします。
# bootctl --path=/boot install
ブート エントリ/boot/loader/entries/arch.conf
を作成し、次の行を追加します。
```
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=/dev/sda3 rw
```
If your `/` is not in `/dev/sda3`, make sure to change it.
Save and exit.
先ほどの 2 種類の initramfs を覚えていますか?各タイプには特定のカーネル パラメータが必要です。したがって、ここにも 2 種類のエントリがあります。 volume
はボリューム グループ名、 /dev/mapper/volume-root
/
へのパスであることに注意してください。
udevベースのinitramfs
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options cryptdevice=UUID=/DEV/SDA2/UUID/HERE:volume root=/dev/mapper/volume-root rw
/DEV/SDA2/UUID/HERE
をLVM
パーティションの UUID に置き換えます。 blkid /dev/sda2
を実行すると確認できます。 cryptdevice
パラメータは plymouth ではサポートされていないため、systemd ベースの initramfs を使用する予定がある場合は、それを使用することをお勧めします。
ヒント: vim
使用している場合は、 :read ! blkid /dev/sda2
と入力すると、UUID を簡単に書くことができます。 :read ! blkid /dev/sda2
し、Enter キーを押します。次に、ビジュアル モードを使用して出力を操作します。
systemd ベースの initramfs
title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options rd.luks.name=/DEV/SDA2/UUID/HERE=volume root=/dev/mapper/volume-root rw
/DEV/SDA2/UUID/HERE
をLVM
パーティションの UUID に置き換えます。 blkid /dev/sda2
を実行すると確認できます。
ヒント: vim
使用している場合は、 :read ! blkid /dev/sda2
と入力すると、UUID を簡単に書くことができます。 :read ! blkid /dev/sda2
し、Enter キーを押します。次に、ビジュアル モードを使用して出力を操作します。
ブートローダー構成を更新する
# vim /boot/loader/loader.conf
そのコンテンツをすべて削除し、次のように置き換えます。
default arch.conf
timeout 0
console-mode max
editor no
プロセッサーのメーカーは、プロセッサーのマイクロコードの安定性とセキュリティのアップデートをリリースします。これらのアップデートは、システムの安定性に重要なバグ修正を提供します。これらがないと、追跡が困難な偽のクラッシュや予期しないシステム停止が発生する可能性があります。
pacstrap を使用してインストールしなかった場合は、次の方法でマイクロコードをインストールします。
AMD プロセッサの場合:
# pacman -S amd-ucode
Intel プロセッサの場合:
# pacman -S intel-ucode
Arch インストールがリムーバブル ドライブ上にあり、両方のメーカーのプロセッサ用のマイクロコードが必要な場合は、両方のパッケージをインストールします。
マイクロコードをロードします。 systemd-boot
の場合、次のようにinitrd
オプションを使用して、初期 RAM ディスクの前にマイクロコードをロードします。
# sudoedit /boot/loader/entries/entry.conf
title Arch Linux
linux /vmlinuz-linux
initrd /CPU_MANUFACTURER-ucode.img
initrd /initramfs-linux.img
...
CPU_MANUFACTURER
、プロセッサに応じてamd
またはintel
に置き換えます。
次回の再起動時にネットワーク デーモンを有効にするには、有線接続の場合はdhcpcd.service
有効にし、無線接続の場合はiwd.service
有効にする必要があります。
# systemctl enable dhcpcd iwd
exit
と入力するか、 Ctrl + dを押して、chroot 環境を終了します。この後、マウントされているすべてのパーティションをアンマウントすることもできます。
最後に、 reboot
。
インストールが成功したら、やったー!!!そうでない場合は、自分自身の存在に疑問を持ち始める必要があります。あなたの両親はあなたを誇りに思っていますか?