今日はArch Linuxのインストール手順について備忘録としてまとめておきます。
サーバとして構築する際の手順になっております。
インストールメディアの作成
こちら(https://www.archlinux.jp/download/)のページからArch Linuxのイメージファイルをダウンロードします。
ダウンロードしたら必ず署名の検証を行ってください。
署名があっていたらUSBメモリやCD等に書き込みます。
起動準備
起動する前にEFIブートの設定にします。
※VMwareの仮想マシンで構築する場合(一例)
仮想マシンのファイルが保存されているフォルダにある設定ファイル(hogehoge.vmx)をテキストエディタで開きます。
最終行に以下を追記します。
firmware = "efi"
また、インストールメディアを起動順位で1番に設定します。
インストールメディアを起動
インストールメディアを起動するとZshのシェルプロントが表示されます。
SSHの設定
インストールコマンドをすべて打ち込むのは面倒くさいのでSSHを設定します。
ライブ環境のrootアカウントにパスワードを設定します。
# passwd New password: (設定するパスワードを入力/表示されません) Retype new password: (再入力/表示されません) passwd: password updated successfully (これが表示されたら完了です)
sshdを起動します。
# systemctl start sshd
DHCPで割り当てられたIPアドレスをipコマンドで確認します。
# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff inet 192.168.50.123/24 brd 192.168.50.255 scope global dynamic noprefixroute ens33 valid_lft 1076sec preferred_lft 851sec inet6 0000::0000:0000:0000:0000/64 scope link valid_lft forever preferred_lft foreverb
上記の例だとens33のinetの後にある192.168.50.123が割り当てられたIPアドレスです。
以上でライブ環境にSSHが設定できたので続きはSSHクライアントから作業をします。
キーボードレイアウトの設定
ライブ環境のデフォルトキーボードレイアウトはUS配列になっているので、US配列以外の場合は変更します。
変更できるレイアウトの一覧を確認します。
# ls /usr/share/kbd/keymaps/**/*.map.gz /usr/share/kbd/keymaps/amiga/amiga-de.map.gz /usr/share/kbd/keymaps/amiga/amiga-us.map.gz /usr/share/kbd/keymaps/atari/atari-de.map.gz /usr/share/kbd/keymaps/atari/atari-se.map.gz /usr/share/kbd/keymaps/atari/atari-uk-falcon.map.gz /usr/share/kbd/keymaps/atari/atari-us.map.gz /usr/share/kbd/keymaps/i386/azerty/azerty.map.gz /usr/share/kbd/keymaps/i386/azerty/be-latin1.map.gz /usr/share/kbd/keymaps/i386/azerty/fr.map.gz /usr/share/kbd/keymaps/i386/azerty/fr-latin1.map.gz /usr/share/kbd/keymaps/i386/azerty/fr-latin9.map.gz /usr/share/kbd/keymaps/i386/azerty/fr-pc.map.gz /usr/share/kbd/keymaps/i386/azerty/wangbe.map.gz /usr/share/kbd/keymaps/i386/azerty/wangbe2.map.gz /usr/share/kbd/keymaps/i386/bepo/fr-bepo.map.gz /usr/share/kbd/keymaps/i386/bepo/fr-bepo-latin9.map.gz /usr/share/kbd/keymaps/i386/carpalx/carpalx.map.gz /usr/share/kbd/keymaps/i386/carpalx/carpalx-full.map.gz /usr/share/kbd/keymaps/i386/colemak/colemak.map.gz /usr/share/kbd/keymaps/i386/dvorak/ANSI-dvorak.map.gz /usr/share/kbd/keymaps/i386/dvorak/dvorak.map.gz /usr/share/kbd/keymaps/i386/dvorak/dvorak-ca-fr.map.gz /usr/share/kbd/keymaps/i386/dvorak/dvorak-es.map.gz /usr/share/kbd/keymaps/i386/dvorak/dvorak-fr.map.gz /usr/share/kbd/keymaps/i386/dvorak/dvorak-l.map.gz /usr/share/kbd/keymaps/i386/dvorak/dvorak-la.map.gz /usr/share/kbd/keymaps/i386/dvorak/dvorak-no.map.gz /usr/share/kbd/keymaps/i386/dvorak/dvorak-programmer.map.gz /usr/share/kbd/keymaps/i386/dvorak/dvorak-r.map.gz /usr/share/kbd/keymaps/i386/dvorak/dvorak-ru.map.gz /usr/share/kbd/keymaps/i386/dvorak/dvorak-sv-a1.map.gz /usr/share/kbd/keymaps/i386/dvorak/dvorak-sv-a5.map.gz /usr/share/kbd/keymaps/i386/dvorak/dvorak-uk.map.gz /usr/share/kbd/keymaps/i386/dvorak/dvorak-ukp.map.gz /usr/share/kbd/keymaps/i386/fgGIod/trf-fgGIod.map.gz /usr/share/kbd/keymaps/i386/fgGIod/tr_f-latin5.map.gz /usr/share/kbd/keymaps/i386/include/applkey.map.gz /usr/share/kbd/keymaps/i386/include/backspace.map.gz /usr/share/kbd/keymaps/i386/include/ctrl.map.gz /usr/share/kbd/keymaps/i386/include/euro.map.gz /usr/share/kbd/keymaps/i386/include/euro1.map.gz /usr/share/kbd/keymaps/i386/include/euro2.map.gz /usr/share/kbd/keymaps/i386/include/keypad.map.gz /usr/share/kbd/keymaps/i386/include/unicode.map.gz /usr/share/kbd/keymaps/i386/include/windowkeys.map.gz /usr/share/kbd/keymaps/i386/olpc/es-olpc.map.gz /usr/share/kbd/keymaps/i386/olpc/pt-olpc.map.gz /usr/share/kbd/keymaps/i386/qwerty/bashkir.map.gz /usr/share/kbd/keymaps/i386/qwerty/bg-cp855.map.gz /usr/share/kbd/keymaps/i386/qwerty/bg-cp1251.map.gz /usr/share/kbd/keymaps/i386/qwerty/bg_bds-cp1251.map.gz /usr/share/kbd/keymaps/i386/qwerty/bg_bds-utf8.map.gz /usr/share/kbd/keymaps/i386/qwerty/bg_pho-cp1251.map.gz /usr/share/kbd/keymaps/i386/qwerty/bg_pho-utf8.map.gz /usr/share/kbd/keymaps/i386/qwerty/br-abnt.map.gz /usr/share/kbd/keymaps/i386/qwerty/br-abnt2.map.gz /usr/share/kbd/keymaps/i386/qwerty/br-latin1-abnt2.map.gz /usr/share/kbd/keymaps/i386/qwerty/br-latin1-us.map.gz /usr/share/kbd/keymaps/i386/qwerty/by.map.gz /usr/share/kbd/keymaps/i386/qwerty/bywin-cp1251.map.gz /usr/share/kbd/keymaps/i386/qwerty/by-cp1251.map.gz /usr/share/kbd/keymaps/i386/qwerty/cf.map.gz /usr/share/kbd/keymaps/i386/qwerty/cz.map.gz /usr/share/kbd/keymaps/i386/qwerty/cz-cp1250.map.gz /usr/share/kbd/keymaps/i386/qwerty/cz-lat2.map.gz /usr/share/kbd/keymaps/i386/qwerty/cz-lat2-prog.map.gz /usr/share/kbd/keymaps/i386/qwerty/defkeymap.map.gz /usr/share/kbd/keymaps/i386/qwerty/defkeymap_V1.0.map.gz /usr/share/kbd/keymaps/i386/qwerty/dk.map.gz /usr/share/kbd/keymaps/i386/qwerty/dk-latin1.map.gz /usr/share/kbd/keymaps/i386/qwerty/emacs.map.gz /usr/share/kbd/keymaps/i386/qwerty/emacs2.map.gz /usr/share/kbd/keymaps/i386/qwerty/es.map.gz /usr/share/kbd/keymaps/i386/qwerty/es-cp850.map.gz /usr/share/kbd/keymaps/i386/qwerty/et.map.gz /usr/share/kbd/keymaps/i386/qwerty/et-nodeadkeys.map.gz /usr/share/kbd/keymaps/i386/qwerty/fa.map.gz /usr/share/kbd/keymaps/i386/qwerty/fi.map.gz /usr/share/kbd/keymaps/i386/qwerty/gr.map.gz /usr/share/kbd/keymaps/i386/qwerty/gr-pc.map.gz /usr/share/kbd/keymaps/i386/qwerty/hu101.map.gz /usr/share/kbd/keymaps/i386/qwerty/il.map.gz /usr/share/kbd/keymaps/i386/qwerty/il-heb.map.gz /usr/share/kbd/keymaps/i386/qwerty/il-phonetic.map.gz /usr/share/kbd/keymaps/i386/qwerty/is-latin1.map.gz /usr/share/kbd/keymaps/i386/qwerty/is-latin1-us.map.gz /usr/share/kbd/keymaps/i386/qwerty/it.map.gz /usr/share/kbd/keymaps/i386/qwerty/it2.map.gz /usr/share/kbd/keymaps/i386/qwerty/it-ibm.map.gz /usr/share/kbd/keymaps/i386/qwerty/jp106.map.gz /usr/share/kbd/keymaps/i386/qwerty/kazakh.map.gz /usr/share/kbd/keymaps/i386/qwerty/kyrgyz.map.gz /usr/share/kbd/keymaps/i386/qwerty/ky_alt_sh-UTF-8.map.gz /usr/share/kbd/keymaps/i386/qwerty/la-latin1.map.gz /usr/share/kbd/keymaps/i386/qwerty/lt.baltic.map.gz /usr/share/kbd/keymaps/i386/qwerty/lt.l4.map.gz /usr/share/kbd/keymaps/i386/qwerty/lt.map.gz /usr/share/kbd/keymaps/i386/qwerty/lv.map.gz /usr/share/kbd/keymaps/i386/qwerty/lv-tilde.map.gz /usr/share/kbd/keymaps/i386/qwerty/mk.map.gz /usr/share/kbd/keymaps/i386/qwerty/mk0.map.gz /usr/share/kbd/keymaps/i386/qwerty/mk-cp1251.map.gz /usr/share/kbd/keymaps/i386/qwerty/mk-utf.map.gz /usr/share/kbd/keymaps/i386/qwerty/nl.map.gz /usr/share/kbd/keymaps/i386/qwerty/nl2.map.gz /usr/share/kbd/keymaps/i386/qwerty/no.map.gz /usr/share/kbd/keymaps/i386/qwerty/no-latin1.map.gz /usr/share/kbd/keymaps/i386/qwerty/pc110.map.gz /usr/share/kbd/keymaps/i386/qwerty/pl.map.gz /usr/share/kbd/keymaps/i386/qwerty/pl1.map.gz /usr/share/kbd/keymaps/i386/qwerty/pl2.map.gz /usr/share/kbd/keymaps/i386/qwerty/pl3.map.gz /usr/share/kbd/keymaps/i386/qwerty/pl4.map.gz /usr/share/kbd/keymaps/i386/qwerty/pt-latin1.map.gz /usr/share/kbd/keymaps/i386/qwerty/pt-latin9.map.gz /usr/share/kbd/keymaps/i386/qwerty/ro.map.gz /usr/share/kbd/keymaps/i386/qwerty/ro_std.map.gz /usr/share/kbd/keymaps/i386/qwerty/ro_win.map.gz /usr/share/kbd/keymaps/i386/qwerty/ru.map.gz /usr/share/kbd/keymaps/i386/qwerty/ru1.map.gz /usr/share/kbd/keymaps/i386/qwerty/ru2.map.gz /usr/share/kbd/keymaps/i386/qwerty/ru3.map.gz /usr/share/kbd/keymaps/i386/qwerty/ru4.map.gz /usr/share/kbd/keymaps/i386/qwerty/ruwin_alt-CP1251.map.gz /usr/share/kbd/keymaps/i386/qwerty/ruwin_alt-KOI8-R.map.gz /usr/share/kbd/keymaps/i386/qwerty/ruwin_alt-UTF-8.map.gz /usr/share/kbd/keymaps/i386/qwerty/ruwin_alt_sh-UTF-8.map.gz /usr/share/kbd/keymaps/i386/qwerty/ruwin_cplk-CP1251.map.gz /usr/share/kbd/keymaps/i386/qwerty/ruwin_cplk-KOI8-R.map.gz /usr/share/kbd/keymaps/i386/qwerty/ruwin_cplk-UTF-8.map.gz /usr/share/kbd/keymaps/i386/qwerty/ruwin_ctrl-CP1251.map.gz /usr/share/kbd/keymaps/i386/qwerty/ruwin_ctrl-KOI8-R.map.gz /usr/share/kbd/keymaps/i386/qwerty/ruwin_ctrl-UTF-8.map.gz /usr/share/kbd/keymaps/i386/qwerty/ruwin_ct_sh-CP1251.map.gz /usr/share/kbd/keymaps/i386/qwerty/ruwin_ct_sh-KOI8-R.map.gz /usr/share/kbd/keymaps/i386/qwerty/ruwin_ct_sh-UTF-8.map.gz /usr/share/kbd/keymaps/i386/qwerty/ru-cp1251.map.gz /usr/share/kbd/keymaps/i386/qwerty/ru-ms.map.gz /usr/share/kbd/keymaps/i386/qwerty/ru-yawerty.map.gz /usr/share/kbd/keymaps/i386/qwerty/ru_win.map.gz /usr/share/kbd/keymaps/i386/qwerty/se-fi-ir209.map.gz /usr/share/kbd/keymaps/i386/qwerty/se-fi-lat6.map.gz /usr/share/kbd/keymaps/i386/qwerty/se-ir209.map.gz /usr/share/kbd/keymaps/i386/qwerty/se-lat6.map.gz /usr/share/kbd/keymaps/i386/qwerty/sk-prog-qwerty.map.gz /usr/share/kbd/keymaps/i386/qwerty/sk-qwerty.map.gz /usr/share/kbd/keymaps/i386/qwerty/sr-cy.map.gz /usr/share/kbd/keymaps/i386/qwerty/sv-latin1.map.gz /usr/share/kbd/keymaps/i386/qwerty/tj_alt-UTF8.map.gz /usr/share/kbd/keymaps/i386/qwerty/tralt.map.gz /usr/share/kbd/keymaps/i386/qwerty/trf.map.gz /usr/share/kbd/keymaps/i386/qwerty/trq.map.gz /usr/share/kbd/keymaps/i386/qwerty/tr_q-latin5.map.gz /usr/share/kbd/keymaps/i386/qwerty/ttwin_alt-UTF-8.map.gz /usr/share/kbd/keymaps/i386/qwerty/ttwin_cplk-UTF-8.map.gz /usr/share/kbd/keymaps/i386/qwerty/ttwin_ctrl-UTF-8.map.gz /usr/share/kbd/keymaps/i386/qwerty/ttwin_ct_sh-UTF-8.map.gz /usr/share/kbd/keymaps/i386/qwerty/ua.map.gz /usr/share/kbd/keymaps/i386/qwerty/ua-cp1251.map.gz /usr/share/kbd/keymaps/i386/qwerty/ua-utf.map.gz /usr/share/kbd/keymaps/i386/qwerty/ua-utf-ws.map.gz /usr/share/kbd/keymaps/i386/qwerty/ua-ws.map.gz /usr/share/kbd/keymaps/i386/qwerty/uk.map.gz /usr/share/kbd/keymaps/i386/qwerty/us.map.gz /usr/share/kbd/keymaps/i386/qwerty/us-acentos.map.gz /usr/share/kbd/keymaps/i386/qwertz/croat.map.gz /usr/share/kbd/keymaps/i386/qwertz/cz-qwertz.map.gz /usr/share/kbd/keymaps/i386/qwertz/cz-us-qwertz.map.gz /usr/share/kbd/keymaps/i386/qwertz/de.map.gz /usr/share/kbd/keymaps/i386/qwertz/de-latin1.map.gz /usr/share/kbd/keymaps/i386/qwertz/de-latin1-nodeadkeys.map.gz /usr/share/kbd/keymaps/i386/qwertz/de-mobii.map.gz /usr/share/kbd/keymaps/i386/qwertz/de_CH-latin1.map.gz /usr/share/kbd/keymaps/i386/qwertz/de_alt_UTF-8.map.gz /usr/share/kbd/keymaps/i386/qwertz/fr_CH.map.gz /usr/share/kbd/keymaps/i386/qwertz/fr_CH-latin1.map.gz /usr/share/kbd/keymaps/i386/qwertz/hu.map.gz /usr/share/kbd/keymaps/i386/qwertz/sg.map.gz /usr/share/kbd/keymaps/i386/qwertz/sg-latin1.map.gz /usr/share/kbd/keymaps/i386/qwertz/sg-latin1-lk450.map.gz /usr/share/kbd/keymaps/i386/qwertz/sk-prog-qwertz.map.gz /usr/share/kbd/keymaps/i386/qwertz/sk-qwertz.map.gz /usr/share/kbd/keymaps/i386/qwertz/slovene.map.gz /usr/share/kbd/keymaps/i386/qwertz/sr-latin.map.gz /usr/share/kbd/keymaps/mac/all/apple-a1048-sv.map.gz /usr/share/kbd/keymaps/mac/all/apple-a1243-sv.map.gz /usr/share/kbd/keymaps/mac/all/apple-a1243-sv-fn-reverse.map.gz /usr/share/kbd/keymaps/mac/all/apple-internal-0x0253-sv.map.gz /usr/share/kbd/keymaps/mac/all/apple-internal-0x0253-sv-fn-reverse.map.gz /usr/share/kbd/keymaps/mac/all/mac-be.map.gz /usr/share/kbd/keymaps/mac/all/mac-de-latin1.map.gz /usr/share/kbd/keymaps/mac/all/mac-de-latin1-nodeadkeys.map.gz /usr/share/kbd/keymaps/mac/all/mac-de_CH.map.gz /usr/share/kbd/keymaps/mac/all/mac-dk-latin1.map.gz /usr/share/kbd/keymaps/mac/all/mac-dvorak.map.gz /usr/share/kbd/keymaps/mac/all/mac-es.map.gz /usr/share/kbd/keymaps/mac/all/mac-fi-latin1.map.gz /usr/share/kbd/keymaps/mac/all/mac-fr.map.gz /usr/share/kbd/keymaps/mac/all/mac-fr_CH-latin1.map.gz /usr/share/kbd/keymaps/mac/all/mac-it.map.gz /usr/share/kbd/keymaps/mac/all/mac-no-latin1.map.gz /usr/share/kbd/keymaps/mac/all/mac-pl.map.gz /usr/share/kbd/keymaps/mac/all/mac-pt-latin1.map.gz /usr/share/kbd/keymaps/mac/all/mac-se.map.gz /usr/share/kbd/keymaps/mac/all/mac-template.map.gz /usr/share/kbd/keymaps/mac/all/mac-uk.map.gz /usr/share/kbd/keymaps/mac/all/mac-us.map.gz /usr/share/kbd/keymaps/mac/include/mac-euro.map.gz /usr/share/kbd/keymaps/mac/include/mac-euro2.map.gz /usr/share/kbd/keymaps/sun/sundvorak.map.gz /usr/share/kbd/keymaps/sun/sunkeymap.map.gz /usr/share/kbd/keymaps/sun/sunt4-es.map.gz /usr/share/kbd/keymaps/sun/sunt4-fi-latin1.map.gz /usr/share/kbd/keymaps/sun/sunt4-no-latin1.map.gz /usr/share/kbd/keymaps/sun/sunt5-cz-us.map.gz /usr/share/kbd/keymaps/sun/sunt5-de-latin1.map.gz /usr/share/kbd/keymaps/sun/sunt5-es.map.gz /usr/share/kbd/keymaps/sun/sunt5-fi-latin1.map.gz /usr/share/kbd/keymaps/sun/sunt5-fr-latin1.map.gz /usr/share/kbd/keymaps/sun/sunt5-ru.map.gz /usr/share/kbd/keymaps/sun/sunt5-uk.map.gz /usr/share/kbd/keymaps/sun/sunt5-us-cz.map.gz /usr/share/kbd/keymaps/sun/sunt6-uk.map.gz /usr/share/kbd/keymaps/sun/sun-pl.map.gz /usr/share/kbd/keymaps/sun/sun-pl-altgraph.map.gz
表示されたらhoge.map.gzのhoge部分が変更できるレイアウトになります。
※日本語キーボードの場合(一例)
/usr/share/kbd/keymaps/i386/qwerty/jp106.map.gz
キーボードレイアウトを変更します。
# loadkeys hoge (hogeに変更したいレイアウトを指定します)
※日本語キーボードの場合(一例)
# loadkeys jp106
時計の設定
時計の設定をします。
まずは、tzselectコマンドでタイムゾーン設定名を対話的に確認します。
# tzselect Please identify a location so that time zone rules can be set correctly. Please select a continent, ocean, "coord", or "TZ". 1) Africa 2) Americas 3) Antarctica 4) Asia 5) Atlantic Ocean 6) Australia 7) Europe 8) Indian Ocean 9) Pacific Ocean 10) coord - I want to use geographical coordinates. 11) TZ - I want to specify the timezone using the Posix TZ format. #? 4 (地域名の左にある数字を入力します/日本の場合はAsiaなので4)
Please select a country whose clocks agree with yours. 1) Afghanistan 14) India 27) Lebanon 40) Singapore 2) Armenia 15) Indonesia 28) Macau 41) Sri Lanka 3) Azerbaijan 16) Iran 29) Malaysia 42) Syria 4) Bahrain 17) Iraq 30) Mongolia 43) Taiwan 5) Bangladesh 18) Israel 31) Myanmar (Burma) 44) Tajikistan 6) Bhutan 19) Japan 32) Nepal 45) Thailand 7) Brunei 20) Jordan 33) Oman 46) Turkmenistan 8) Cambodia 21) Kazakhstan 34) Pakistan 47) United Arab Emirates 9) China 22) Korea (North) 35) Palestine 48) Uzbekistan 10) Cyprus 23) Korea (South) 36) Philippines 49) Vietnam 11) East Timor 24) Kuwait 37) Qatar 50) Yemen 12) Georgia 25) Kyrgyzstan 38) Russia 13) Hong Kong 26) Laos 39) Saudi Arabia #? 19 (国名の左にある数字を入力します/日本の場合はJapanなので19)
The following information has been given: Japan Therefore TZ='Asia/Tokyo' will be used. Selected time is now: Fri Feb 21 22:18:21 JST 2020. Universal Time is now: Fri Feb 21 13:18:21 UTC 2020. Is the above information OK? 1) Yes 2) No #? 1 (確認画面です/問題なければ1を入力)
You can make this change permanent for yourself by appending the line TZ='Asia/Tokyo'; export TZ to the file '.profile' in your home directory; then log out and log in again. Here is that TZ value again, this time on standard output so that you can use the /usr/bin/tzselect command in shell scripts: Asia/Tokyo
メッセージの最終行にあるのがタイムゾーン設定名です。
日本の場合はAsia/Tokyo
タイムゾーン設定名を確認したのでタイムゾーンを設定します。
# timedatectl set-timezone (タイムゾーン設定名)
※日本の場合(一例)
# timedatectl set-timezone Asia/Tokyo
次にNTPを設定するためにまずは時刻サーバを設定します。
# nano /etc/systemd/timesyncd.conf
※設定例(日本のNTP時刻サーバ)
[Time] NTP=ntp.nict.jp FallbackNTP=ntp.nict.jp time.cloudflare.com ntp.jst.mfeed.ad.jp
時刻サーバを設定したら、NTPを有効化します。
# timedatectl set-ntp true
時計の設定が完了したことを確認します
# timedatectl Local time: Fri 2020-02-21 09:00:00 JST Universal time: Fri 2020-02-21 00:00:00 UTC RTC time: Fri 2020-02-21 00:00:00 Time zone: Asia/Tokyo (JST, +0900) System clock synchronized: yes NTP service: active RTC in local TZ: no
Time zone に設定したタイムゾーンが表示され、Local time が現在時刻になっていれば完了です。
インストールディスクの準備
インストールディスクの準備をします。
まずは、インストールディスクのデバイス名を確認します。
# fdisk -l Disk /dev/sda: 3 GiB, 3221225472 bytes, 6291456 sectors Disk model: VMware Virtual S Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/loop0: 524.49 MiB, 549953536 bytes, 1074128 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
Diskの後にある /dev/sda などがデバイス名です。
容量やDisk model等からインストール先のディスクのデバイス名を探します。
次にパーティションを切ります。
パーティショニングツールはgdiskを使います。
# gdisk (デバイス名)
※gdiskでのパーティショニング例
デバイス名が/dev/sda
先頭にEFIシステムパーティションを512MiB
残りをルートパーティション
# gdisk /dev/sda GPT fdisk (gdisk) version 1.0.4 Partition table scan: MBR: not present BSD: not present APM: not present GPT: not present Creating new GPT entries in memory. Command (? for help):n (新規パーティションを作成するので n を入力します。) Partition number (1-128, default 1): 1 (先頭に作成するので 1 を入力します。) First sector (34-6291422, default = 2048) or {+-}size{KMGTP}: (先頭の位置を決めます。defaultの2048にするので何も入力せずEnterを押します。) Last sector (2048-6291422, default = 6291422) or {+-}size{KMGTP}: +512M (終端の位置を決めます。ここでパーティションの容量を指定します。ここでは512MBにしています。) Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): L (パーティションタイプを変更するので、ここでは L でコード検索をします。) Type search string, or <Enter> to show all codes: EFI (EFIシステムパーティションにするのでEFIで検索します。) ef00 EFI System Hex code or GUID (L to show codes, Enter = 8300):ef00 (EFI Systemの前にあるef00がパーティションタイプのコードなのでef00を入力します。) Changed type of partition to 'EFI System' Command (? for help): n (新規パーティションを作成するので n を入力します。) Partition number (2-128, default 2): 2 (2番目に作成するので 2 を入力します。) First sector (34-6291422, default = 1050624) or {+-}size{KMGTP}: (先頭の位置を決めます。defaultの1050624にするので何も入力せずEnterを押します。) Last sector (1050624-6291422, default = 6291422) or {+-}size{KMGTP}: (終端の位置を決めます。残りすべてにするので何も入力せずにEnterを押します。) Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): (ルートパーティションはLinux filesystemなので、何も入力せずにEnterを押します。) Changed type of partition to 'Linux filesystem' Command (? for help): p (設定内容を確認するので、pを入力します。) Disk /dev/sda: 6291456 sectors, 3.0 GiB Model: VMware Virtual S Sector size (logical/physical): 512/512 bytes Disk identifier (GUID): 5CC4C5C0-1111-AAAA-AAAA-1931EFAF2090 Partition table holds up to 128 entries Main partition table begins at sector 2 and ends at sector 33 First usable sector is 34, last usable sector is 6291422 Partitions will be aligned on 2048-sector boundaries Total free space is 2014 sectors (1007.0 KiB) Number Start (sector) End (sector) Size Code Name 1 2048 1050623 512.0 MiB EF00 EFI System 2 1050624 6291422 2.5 GiB 8300 Linux filesystem Command (? for help): w (確認内容が問題なければ w を入力します。) Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): Y (ディスクに書き込む前に再確認されるので問題なければ Y を入力します。) OK; writing new GUID partition table (GPT) to /dev/sda. The operation has completed successfully. (このメッセージが出たらパーティション書き込み完了です。)
次にパーティションをフォーマットします。
パーティション名を確認します。
# fdisk -l Disk /dev/sda: 3 GiB, 3221225472 bytes, 6291456 sectors Disk model: VMware Virtual S Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 5CC4C5C0-1111-AAAA-AAAA-1931EFAF2090 Device Start End Sectors Size Type /dev/sda1 2048 1050623 1048576 512M EFI System /dev/sda2 1050624 6291422 5240799 2.5G Linux filesystem Disk /dev/loop0: 524.49 MiB, 549953536 bytes, 1074128 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
/dev/sda1がEFIシステムパーティション
/dev/sda2がルートパーティション
ということを確認します。
EFIシステムパーティションをFAT32でフォーマットします。
# mkfs.vfat -F32 /dev/sda1 mkfs.fat 4.1 (2017-01-24)
ルートパーティションをext4でフォーマットします。
※ルートパーティションは好みのファイルシステムでフォーマットして大丈夫です。
# mkfs.ext4 /dev/sda2 mke2fs 1.45.4 (23-Sep-2019) Creating filesystem with 655099 4k blocks and 163840 inodes Filesystem UUID: 3cda70f1-aaaa-1111-aaaa-750fb671757f Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Allocating group tables: done Writing inode tables: done Creating journal (16384 blocks): done Writing superblocks and filesystem accounting information: done
次にフォーマットしたパーティションをマウントします。
# mount /dev/sda2 /mnt (ルートパーティションをマウント) # mkdir -p /mnt/boot (EFIシステムパーティションをマウントするディレクトリを作成) # mount /dev/sda1 /mnt/boot (EFIシステムパーティションをマウント)
インストールディスクの準備は以上です。
インターネット接続の確認
システムのインストールにインターネット接続が必要なので、pingコマンドで確認します。
# ping www.google.com PING www.google.com (172.217.31.164) 56(84) bytes of data. 64 bytes from nrt12s22-in-f4.1e100.net (172.217.31.164): icmp_seq=1 ttl=128 time=19.8 ms 64 bytes from nrt12s22-in-f4.1e100.net (172.217.31.164): icmp_seq=2 ttl=128 time=11.7 ms 64 bytes from nrt12s22-in-f4.1e100.net (172.217.31.164): icmp_seq=3 ttl=128 time=12.9 ms 64 bytes from nrt12s22-in-f4.1e100.net (172.217.31.164): icmp_seq=4 ttl=128 time=20.8 ms 64 bytes from nrt12s22-in-f4.1e100.net (172.217.31.164): icmp_seq=5 ttl=128 time=14.5 ms ^C --- www.google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4009ms rtt min/avg/max/mdev = 11.683/15.936/20.808/3.692 ms
インターネット接続が確認できれば大丈夫です。
※自分はいつもwww.google.comにpingコマンドを打っています。
システムのインストール
システムのインストールをします。
まずはミラーリストの順番を変更します。
# nano /etc/pacman.d/mirrorlist
近い国のサーバを先頭に持ってきます。
※日本の場合(一例)
## Japan Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch ## Japan Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch ## Japan Server = http://mirrors.cat.net/archlinux/$repo/os/$arch
pacstrapコマンドでシステムをインストールします。
最小限のインストールも可能ですが自分は必要なものをまとめてインストールします。
# pacstrap /mnt base base-devel linux linux-firmware grub intel-ucode dosfstools efibootmgr vim nano bash-completion openssh
/mntのところはルートパーティションをマウントしたディレクトリにしてください。
コマンドが終わればインストール完了です。
インストールシステムの設定
まずはfstabを作成します。
genfstabコマンドで作成します。
-U オプションはUUIDを使い作成するオプションです。
# genfstab -U /mnt >> /mnt/etc/fstab
/mntのところはルートパーティションをマウントしたディレクトリにしてください。
次にインストールしたシステムにchrootします。
# arch-chroot /mnt
次にタイムゾーンの設定をします。
シンボリックリンクを張ります。
# ln -sf /usr/share/zoneinfo/Zone/Subzone /etc/localtime
ZoneとSubzoneは適宜変えてください。
※日本の場合(一例)
# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
次に/etc/adjtimeを作成します。
hwclockコマンドで作成します。
# hwclock --systohc
次にロケールを設定します。
/etc/locale.genを編集します。
# nano /etc/locale.gen
開いたら使用するロケールのコメントを外します。
※英語と日本語の場合(一例)
en_US.UTF-8 UTF-8 (英語) ja_JP.UTF-8 UTF-8 (日本語)
ロケールの設定を適用するためにlocale-genコマンドを打ちます。
# locale-gen Generating locales... en_US.UTF-8... done ja_JP.UTF-8... done Generation complete.
システムで使用する言語を設定します。
# echo LANG=hoge > /etc/locale.conf
hogeのところに言語名を入れてください。
※英語の場合(一例)
# echo LANG=en_US.UTF-8 > /etc/locale.conf
※日本語の場合(一例)
# echo LANG=ja_JP.UTF-8 > /etc/locale.conf
キーマップを設定します。
# echo KEYMAP=hoge > /etc/vconsole.conf
hogeのところに使用するキーマップ名を入力してください。
※日本語の場合(一例)
# echo KEYMAP=jp106 > /etc/vconsole.conf
※英語の場合(一例)
# echo KEYMAP=us >/etc/vconsole.conf
次にホスト名を設定します。
# echo hogeHOSTNAME > /etc/hostname
hogeHOSTNAMEを設定したいホスト名に置き換えてください。
/etc/hostsも編集します。
# nano /etc/hosts
以下を追記してください。
127.0.0.1 localhost ::1 localhost 127.0.1.1 hogeHOSTNAME
hogeHOSTNAMEは先ほど設定した値に置き換えてください。
次にネットワークの設定をします。
ipコマンドでアダプタ名を調べます。
# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:0c:29:09:39:76 brd ff:ff:ff:ff:ff:ff inet 192.168.50.124/24 brd 192.168.50.255 scope global dynamic noprefixroute ens33 valid_lft 1351sec preferred_lft 1126sec inet6 fe80::aaaa:bbbb:deba:1111/64 scope link valid_lft forever preferred_lft forever
上記の一例では2:の後にある ens33 がアダプタ名です。
DHCPでネットワークに接続できるように設定ファイルを作成します。
# nano /etc/systemd/network/00-wired.network
以下の内容を書き込みます。
[Match] Name=ens33 [Network] DHCP=yes
ens33のところは先ほど調べたアダプタ名に変えてください。
ネットワーク関係のサービスを有効化します。
# systemctl enable systemd-networkd Created symlink /etc/systemd/system/dbus-org.freedesktop.network1.service → /usr/lib/systemd/system/systemd-networkd.service. Created symlink /etc/systemd/system/multi-user.target.wants/systemd-networkd.service → /usr/lib/systemd/system/systemd-networkd.service. Created symlink /etc/systemd/system/sockets.target.wants/systemd-networkd.socket → /usr/lib/systemd/system/systemd-networkd.socket. Created symlink /etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service → /usr/lib/systemd/system/systemd-networkd-wait-online.service. # systemctl enable systemd-resolved Created symlink /etc/systemd/system/dbus-org.freedesktop.resolve1.service → /usr/lib/systemd/system/systemd-resolved.service. Created symlink /etc/systemd/system/multi-user.target.wants/systemd-resolved.service → /usr/lib/systemd/system/systemd-resolved.service.
次にrootのパスワードを設定します。
# passwd New password: (設定するパスワードを入力/表示されません) Retype new password: (再入力/表示されません) passwd: password updated successfully (これが表示されたら完了です)
次に一般ユーザを作成します。
# useradd -m -G wheel hoge
hogeのところは作成したいユーザ名に置き換えてください。
-G オプションでwheelグループに追加することでsudoが使えるようになります。
作成した一般ユーザにパスワードを設定します。
# passwd hoge New password: (設定するパスワードを入力/表示されません) Retype new password: (再入力/表示されません) passwd: password updated successfully (これが表示されたら完了です)
hogeは作成したユーザ名に置き換えてください。
sudoの設定ファイルを編集します。
# visudo
編集画面になったら以下の部分のコメントを外します。
# %wheel ALL=(ALL) ALL
次にイニシャルRAMディスクを以下のコマンドで設定します。
# mkinitcpio -p linux
次にブートローダを設定します。
systemd-bootを使って設定していきます。
# bootctl --path=/boot install
pathにはEFIシステムパーティションをマウントしたディレクトリを指定してください。
※chrootに入っているので/mntはいらないです。
systemd-bootの設定ファイルを作成します。
まずはルートパーティションのUUIDを調べます。
# lsblk -f NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT loop0 squashfs 4.0 sda ├─sda1 vfat FAT32 1111-EEEE 510.8M 0% /boot └─sda2 ext4 1.0 79574c3e-baaa-2222-adad-b01926ca96c5 376.9M 79% / sr0 iso9660 ARCH_201912 2019-12-01-09-07-07-00
上記の一例ではsda2の後にある79574c3e-baaa-2222-adad-b01926ca96c5がUUIDです。
ブートメニューに表示するエントリを作成します。
# nano /boot/loader/entries/arch.conf
以下の内容を書き込みます。
UUIDは先ほど調べたものに置き換えてください。
title Arch Linux linux /vmlinuz-linux initrd /initramfs-linux.img options root=UUID=79574c3e-baaa-2222-adad-b01926ca96c5 rw
作成したエントリをブートメニューに表示するための設定ファイルを作成します。
# nano /boot/loader/loader.conf
既に書いてある内容を削除して以下の内容を書き込みます。
default arch timeout 5 editor no
最後にchrootから抜けます。
# exit
ライブ環境の終了
インストールは終わったのでライブ環境を終了します。
# shutdown now
インストールメディアの取り外し
システムのシャットダウンが完了したらインストールメディアを取り外します。
再度起動してArch Linuxが起動することを確認します。
以上でArch Linuxのインストールは完了です。
お疲れさまでした。