Arch Linux インストール (2020年2月版)

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

今日は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のインストールは完了です。
お疲れさまでした。

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。

コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください