背景
- 数年前にArch LinuxをThinkPadにインストールしたことがある
- その時の作業ログを備忘録として残す
Archインストールログ
arch liveのusbメモリからThinkpad x1 carbon 6genにarchをインスコした時の備忘録(UEFIブート)。なお、winは消す。
live USBメディアの作成
公式サイト( https://www.archlinux.org/download/ )からISOのDL
焼くのめんどくさいときはEtcherを使う
https://www.balena.io/etcher/
ISOのチェックサム
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| $ gpg --keyserver pgp.mit.edu --keyserver-options auto-key-retrieve --verify archlinux-2019.01.01-x86_64.iso.sig
gpg: assuming signed data in 'archlinux-2019.01.01-x86_64.iso'
gpg: Signature made Wed 02 Jan 2019 12:23:53 AM JST
gpg: using RSA key 4AA4767BBC9C4B1D18AE28B77F2D434B9741E8AC
gpg: requesting key 7F2D434B9741E8AC from hkp server pgp.mit.edu
\gpg: key 7F2D434B9741E8AC: 31 signatures not checked due to missing keys
gpg: key 7F2D434B9741E8AC: public key "Pierre Schmitz <pierre@archlinux.de>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1
gpg: Good signature from "Pierre Schmitz <pierre@archlinux.de>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 4AA4 767B BC9C 4B1D 18AE 28B7 7F2D 434B 9741 E8AC
|
デバイスの確認(sdb1
が今回のターゲット)
マウントされていた場合はアンマウントする
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| $ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 13M 1 loop /snap/gnome-characters/124
loop1 7:1 0 14.5M 1 loop /snap/gnome-logs/45
loop2 7:2 0 15.1M 1 loop /snap/aws-cli/135
loop3 7:3 0 13M 1 loop /snap/gnome-characters/139
loop4 7:4 0 42.1M 1 loop /snap/gtk-common-themes/701
loop5 7:5 0 87.9M 1 loop /snap/core/5662
loop6 7:6 0 2.3M 1 loop /snap/gnome-calculator/238
loop7 7:7 0 147.3M 1 loop /snap/skype/66
loop8 7:8 0 2.3M 1 loop /snap/gnome-calculator/260
loop9 7:9 0 34.6M 1 loop /snap/gtk-common-themes/818
loop10 7:10 0 89.5M 1 loop /snap/core/6130
loop11 7:11 0 140.7M 1 loop /snap/gnome-3-26-1604/74
loop12 7:12 0 3.7M 1 loop /snap/gnome-system-monitor/57
loop13 7:13 0 140.9M 1 loop /snap/gnome-3-26-1604/70
sdb 8:16 1 7.5G 0 disk
├─sdb1 8:17 1 1.8G 0 part /media/mike/Ubuntu 18.04.1 LTS amd64
└─sdb2 8:18 1 2.3M 0 part
nvme0n1 259:0 0 477G 0 disk
├─nvme0n1p1 259:1 0 512M 0 part /boot/efi
└─nvme0n1p2 259:2 0 476.4G 0 part /
|
dev/sdb1
をアンマウントする
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| $ umount /dev/sdb
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 13M 1 loop /snap/gnome-characters/124
loop1 7:1 0 14.5M 1 loop /snap/gnome-logs/45
loop2 7:2 0 15.1M 1 loop /snap/aws-cli/135
loop3 7:3 0 13M 1 loop /snap/gnome-characters/139
loop4 7:4 0 42.1M 1 loop /snap/gtk-common-themes/701
loop5 7:5 0 87.9M 1 loop /snap/core/5662
loop6 7:6 0 2.3M 1 loop /snap/gnome-calculator/238
loop7 7:7 0 147.3M 1 loop /snap/skype/66
loop8 7:8 0 2.3M 1 loop /snap/gnome-calculator/260
loop9 7:9 0 34.6M 1 loop /snap/gtk-common-themes/818
loop10 7:10 0 89.5M 1 loop /snap/core/6130
loop11 7:11 0 140.7M 1 loop /snap/gnome-3-26-1604/74
loop12 7:12 0 3.7M 1 loop /snap/gnome-system-monitor/57
loop13 7:13 0 140.9M 1 loop /snap/gnome-3-26-1604/70
sdb 8:16 1 7.5G 0 disk
├─sdb1 8:17 1 1.8G 0 part
└─sdb2 8:18 1 2.3M 0 part
nvme0n1 259:0 0 477G 0 disk
├─nvme0n1p1 259:1 0 512M 0 part /boot/efi
└─nvme0n1p2 259:2 0 476.4G 0 part /
|
ISOを書き込む
1
2
3
4
5
| $ sudo dd bs=4M if=archlinux-2019.01.01-x86_64.iso of=/dev/sdb status=progress && sync
[sudo] password for mike:
150+1 records in
150+1 records out
631242752 bytes (631 MB, 602 MiB) copied, 105.399 s, 6.0 MB/s
|
BIOSの設定
- セキュアブートをオフにする
Security > Secure boot > Secure boot > Disabled - USBメモリの起動優先順位を変更する
そしてLive USBから起動する。
Archのインスコ
ミラーサーバーの国の優先順位を変更
日本とアメリカだと10倍ぐらい速度の差があった
1
2
3
4
5
| # vim /etc/pacman.d/mirrorlist # 日本を最上位に移動する
# head /etc/pacman.d/mirrorlist
...
# Japan
# pacman -Syu # Wifiの設定後でもOK
|
WiFiの設定
まずインターフェイスの確認
wから始まっているのが往々にして無線のネットワークインターフェイス
1
2
3
4
5
6
7
| # 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: enp0s31f6: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether e8:6a:64:86:78:38 brd ff:ff:ff:ff:ff:ff
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
link/ether 20:79:18:d2:ca:1c brd ff:ff:ff:ff:ff:ff
|
wlp2s0
が対象のI/F
ore_ore
という名前(任意)のプロファイルを作る
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| # cp /etc/netctl/examples/wireless-wpa /etc/netctl/ore_ore
# cat /etc/netctl/ore_ore
Description='A simple WPA encrypted wireless connection'
Interface=wlan0
Connection=wireless
Security=wpa
IP=dhcp
ESSID='MyNetwork'
# Prepend hexadecimal keys with \"
# If your key starts with ", write it as '""<key>"'
# See also: the section on special quoting rules in netctl.profile(5)
Key='WirelessKey'
# Uncomment this if your ssid is hidden
#Hidden=yes
# Set a priority for automatic profile selection
#Priority=10
|
ore_ore
プロファイルを修正する
変更するのは次の3点
- Interface: WifiのI/F(この場合は
wlp2s0
) - ESSID: wifiのSSID
- Key: WifiのPW
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| # vi /etc/netctl/ore_ore # ゴニョゴニョ
# cat /etc/netctl/ore_ore
Description='A simple WPA encrypted wireless connection'
Interface=wlp2s0
Connection=wireless
Security=wpa
IP=dhcp
ESSID='XXX'
# Prepend hexadecimal keys with \"
# If your key starts with ", write it as '""<key>"'
# See also: the section on special quoting rules in netctl.profile(5)
Key='XXX'
# Uncomment this if your ssid is hidden
#Hidden=yes
# Set a priority for automatic profile selection
#Priority=10
|
Wifiに接続する
pingが通れば成功
1
2
3
4
5
6
7
| # netctl start ore_ore # 数秒かかる
# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=121 time=8.90 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=121 time=10.1 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=121 time=10.4 ms
...
|
パーテーションの設定
(U)EFIかどうか確認
ディレクトリが存在すればOK
1
2
| # ls /sys/firmware/efi/
config_table efivars esrt fw_platform_size fw_vendor runtime runtime-map systab
|
ドライブを探す
ThinkPad X1 carbonはPCIe SSDなのでインターフェイスの名前はnvme0n1
で、後ろにp1
のようにパーテーション番号がつく。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| $ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 13M 1 loop /snap/gnome-characters/124
loop1 7:1 0 14.5M 1 loop /snap/gnome-logs/45
loop2 7:2 0 15.1M 1 loop /snap/aws-cli/135
loop3 7:3 0 13M 1 loop /snap/gnome-characters/139
loop4 7:4 0 42.1M 1 loop /snap/gtk-common-themes/701
loop5 7:5 0 87.9M 1 loop /snap/core/5662
loop6 7:6 0 2.3M 1 loop /snap/gnome-calculator/238
loop7 7:7 0 147.3M 1 loop /snap/skype/66
loop8 7:8 0 2.3M 1 loop /snap/gnome-calculator/260
loop9 7:9 0 34.6M 1 loop /snap/gtk-common-themes/818
loop10 7:10 0 89.5M 1 loop /snap/core/6130
loop11 7:11 0 140.7M 1 loop /snap/gnome-3-26-1604/74
loop12 7:12 0 3.7M 1 loop /snap/gnome-system-monitor/57
loop13 7:13 0 140.9M 1 loop /snap/gnome-3-26-1604/70
sdb 8:16 1 7.5G 0 disk
├─sdb1 8:17 1 1.8G 0 part /media/mike/Ubuntu 18.04.1 LTS amd64
└─sdb2 8:18 1 2.3M 0 part
nvme0n1 259:0 0 477G 0 disk
├─nvme0n1p1 259:1 0 512M 0 part /boot/efi
└─nvme0n1p2 259:2 0 476.4G 0 part /
|
UEFIブートなので、GPTパーテーションを作る
下のような感じで書き換える
EF00
はEFIパーテーションHEX
8E00
は linux LVM (logical volume manager) のHEX
なお、空欄ではEnterキーを押している
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| $ gdisk /dev/nvme0n1
GPT fdisk (gdisk) version 1.0.4
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): o
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): y
Command (? for help): n
Partition number (1-128, default 1):
First sector (34-1000215182, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-1000215182, default = 1000215182) or {+-}size{KMGTP}: +512MB
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): EF00
Changed type of partition to 'EFI System'
Command (? for help): n
Partition number (2-128, default 2):
First sector (34-1000215182, default = 1050624) or {+-}size{KMGTP}:
Last sector (1050624-1000215182, default = 1000215182) or {+-}size{KMGTP}:
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 8E00
Changed type of partition to 'Linux LVM'
Command (? for help): w
# 最後のコマンドはy、全部書き換える
|
パーテーションの確認
1
2
3
4
5
6
7
8
9
10
11
12
| $ fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 477 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: LENSE30512GMSP34MEAT3TA
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: 07E88104-29C7-41AE-91AD-379E474EA1C7
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 1050623 1048576 512M EFI System
/dev/nvme0n1p2 1050624 1000215182 999164559 476.4G Linux LVM
|
LVMパーテーションの暗号化
LVMパーテーションの暗号化する
暗号はデフォのLUKSを使用する
パスフレーズは覚えておく
1
| # cryptsetup luksFormat /dev/nvme0n1p2 # ※p1ではない
|
LVMの中に論理ボリュームを作成する
まずは、LVMを復号化して開く
main_part
は任意のデバイスマッパーネームをつける
1
| # cryptsetup open --type luks /dev/nmve0n1p2 main_part
|
LVMの中に物理ボリューム(PV)を作成
1
| # pvcreate /dev/mapper/main_part
|
PVの確認
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| # pvscan
PV /dev/mapper/cryptlvm VG main_group lvm2 [476.43 GiB / 0 free]
Total: 1 [476.43 GiB] / in use: 1 [476.43 GiB] / in no VG: 0 [0 ]
# pvdisplay
--- Physical volume ---
PV Name /dev/mapper/cryptlvm
VG Name main_group
PV Size <476.44 GiB / not usable <3.32 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 121967
Free PE 0
Allocated PE 121967
PV UUID D9rfJy-SqUn-I6Ca-PzzO-eb79-E61t-fHkwmu
|
ボリュームグループ(VG)を作成
main_group
はVG名 (任意)
1
| vgcreate main_group /dev/mapper/main_part
|
VGの確認
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| # vgscan
Reading volume groups from cache.
Found volume group "main_group" using metadata type lvm2
# vgdisplay
--- Volume group ---
VG Name main_group
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 476.43 GiB
PE Size 4.00 MiB
Total PE 121967
Alloc PE / Size 121967 / 476.43 GiB
Free PE / Size 0 / 0
VG UUID LiXnT1-xe6V-dmpZ-r7fs-HZF4-14wT-VrFTy5
|
論理ボリュームを(LV)作成
swapはメモリの半分(8GB)割り当てる
rootは64GB割り当てる
homeは残り全部
1
2
3
| lvcreate -L8G main_group -n swap
lvcreate -L64G main_group -n root
lvcreate -l 100%FREE main_group -n home
|
LVの確認
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
| # lvscan
ACTIVE '/dev/main_group/swap' [8.00 GiB] inherit
ACTIVE '/dev/main_group/root' [64.00 GiB] inherit
ACTIVE '/dev/main_group/home' [404.43 GiB] inherit
# lvdisplay
--- Logical volume ---
LV Path /dev/main_group/swap
LV Name swap
VG Name main_group
LV UUID 79nm1Z-BCbW-Rhra-tryB-7lR9-XsCv-1jHiQD
LV Write Access read/write
LV Creation host, time archiso, 2019-01-22 13:14:18 +0000
LV Status available
# open 2
LV Size 8.00 GiB
Current LE 2048
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:1
--- Logical volume ---
LV Path /dev/main_group/root
LV Name root
VG Name main_group
LV UUID FqcEYQ-0cUp-BMul-VxND-42Es-BHsE-Yj4zdB
LV Write Access read/write
LV Creation host, time archiso, 2019-01-22 13:14:50 +0000
LV Status available
# open 1
LV Size 64.00 GiB
Current LE 16384
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:2
--- Logical volume ---
LV Path /dev/main_group/home
LV Name home
VG Name main_group
LV UUID VlSY7x-8Q0O-UFQL-rnQT-05xp-inTH-QLCieR
LV Write Access read/write
LV Creation host, time archiso, 2019-01-22 13:15:09 +0000
LV Status available
# open 1
LV Size 404.43 GiB
Current LE 103535
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:3
--- Logical volume ---
LV Path /dev/main_group/swap
LV Name swap
VG Name main_group
LV UUID 79nm1Z-BCbW-Rhra-tryB-7lR9-XsCv-1jHiQD
LV Write Access read/write
LV Creation host, time archiso, 2019-01-22 13:14:18 +0000
LV Status available
# open 2
LV Size 8.00 GiB
Current LE 2048
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:1
--- Logical volume ---
LV Path /dev/main_group/root
LV Name root
VG Name main_group
LV UUID FqcEYQ-0cUp-BMul-VxND-42Es-BHsE-Yj4zdB
LV Write Access read/write
LV Creation host, time archiso, 2019-01-22 13:14:50 +0000
LV Status available
# open 1
LV Size 64.00 GiB
Current LE 16384
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:2
--- Logical volume ---
LV Path /dev/main_group/home
LV Name home
VG Name main_group
LV UUID VlSY7x-8Q0O-UFQL-rnQT-05xp-inTH-QLCieR
LV Write Access read/write
LV Creation host, time archiso, 2019-01-22 13:15:09 +0000
LV Status available
# open 1
LV Size 404.43 GiB
Current LE 103535
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:3
|
フォーマットとマウント
LVをフォーマットする
マッピングされているので、次のような名前になる
/dev/mapper/VG名-LV名
1
2
| # mkfs.ext4 /dev/mapper/main_group-root
# mkfs.ext4 /dev/mapper/main_group-home
|
スワップも
1
| # mkswap /dev/mapper/main_group-swap
|
LVをマウントする
/mnt/
にマウントする
1
2
3
4
| # mount /dev/mapper/main_group-root /mnt/
# mkdir /mnt/home
# mount /dev/mapper/main_group-home /mnt/home
# swapon /dev/mapper/main_group-swap
|
ブートローダーをマウントする
1
2
| # mkdir /mnt/boot/
# mount /dev/nvme0n1p1 /mnt/boot
|
設定し終えるとブロックデバイスはこんな感じ
1
2
3
4
5
6
7
8
9
| # lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 477G 0 disk
├─nvme0n1p1 259:1 0 512M 0 part /boot
└─nvme0n1p2 259:2 0 476.4G 0 part
└─cryptlvm 254:0 0 476.4G 0 crypt
├─main_group-swap 254:1 0 8G 0 lvm [SWAP]
├─main_group-root 254:2 0 64G 0 lvm /
└─main_group-home 254:3 0 404.4G 0 lvm /home
|
Archのインスコ
baseとbase-develをインスコする
https://www.archlinux.jp/groups/x86_64/base/
https://www.archlinux.jp/groups/x86_64/base-devel/
このpacstrap
コマンドでboot以外のフォルダも作られる
1
| # pacstrap /mnt/ base base-devel
|
マウントの設定ファイルを修正
システム起動時に自動的にマウントするため
1
| # genfstab -p /mnt >> /mnt/etc/fstab
|
Archのインスコ (中で作業)
チェンジルートする
32bitのインテルのドライバーを入れるため
Miltilibを有効化。下の2行をコメントアウトする
1
2
3
| # vi etc/pacman.conf
[multilib]
Include = /etc/pacman.d/mirrorlist
|
インテルのマイクロコードをインスコ
1
| # pacman -Sy intel-ucode
|
マイクロコードを確認 (のちのち再起動後確認できる)
1
2
3
| # dmesg | grep microcode
[ 1.703624] microcode: sig=0x806ea, pf=0x80, revision=0x9a
[ 1.703917] microcode: Microcode Update Driver: v2.2.
|
Linuxカーネルのコピーをインスコ
1
| # pacman -S linux-headers linux-lts linux-lts-headers
|
initrdの設定
mkinitcpioはinitrd(initramfs)のイメージを作るためのスクリプト
下の様に修正する
1
2
| # vi /etc/mkinitcpio.conf
HOOKS=(base udev autodetect keyboard keymap modconf block encrypt lvm2 filesystems fsck)
|
initramfsを生成する
1
2
| # mkinitcpio -p linux
# mkinitcpio -p linux-lts # linux-lts をインスコした場合は
|
ブートローダーの設定
ローダーを作る
GRUBを使わずsystemd-bootを使用する
1
| bootctl --path=/boot/ install
|
ローダーの設定をする
下のように編集する
1
2
3
4
| # vi /boot/loader/loader.conf
default arch
timeout 3
editor 0
|
arch.confを作成する
arch.confのXXXの伏せ字をblkid
のコマンドのUUIDのIDの結果で埋める
PARTUUIDではないので注意する、またクォーテーションは含めない
vi だったらコマンドで (:r !blkid
) で結果を読み込める
1
2
3
4
5
6
7
8
| # blkid
/dev/nvme0n1p2: UUID="XXX" TYPE="crypto_LUKS" PARTLABEL="Linux LVM" PARTUUID="XXX2"
# vi /boot/loader/entries/arch.conf
title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img # intel マイクロコードを読み込む
initrd /initramfs-linux.img # mkinitcpioで作成したimgを読み込む
options cryptdevice=UUID=XXX:cryptlvm root=/dev/mapper/main_group-root quiet rw
|
起動
1
2
3
4
| # umount -R /mnt
# shutdown -r now
# # ~起動後~
# # rootでログインできればOK
|
再起動後のArchの設定
WiFi
live USBと同じ
ミラーリスト
ミラーリストで日本の優先度を一番にする
1
| # vi /etc/pacman.d/mirrorlist
|
言語
localeの設定
1
2
3
| # vi /etc/locale.gen
en_US.UTF-8 UTF8 # ←をアンコメントアウト
# localectl set-locale LANG=”en_US.UTF-8”
|
時間
time zone を日本に設定
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent, ocean, "coord", or "TZ".
1) Africa 7) Europe
2) Americas 8) Indian Ocean
3) Antarctica 9) Pacific Ocean
4) Asia 10) coord - I want to use geographical coordinates.
5) Atlantic Ocean 11) TZ - I want to specify the timezone using the Posix TZ format.
6) Australia
#? 4
Please select a country whose clocks agree with yours.
1) Afghanistan 9) China 17) Iraq 25) Kyrgyzstan 33) Oman 41) Sri Lanka 49) Vietnam
2) Armenia 10) Cyprus 18) Israel 26) Laos 34) Pakistan 42) Syria 50) Yemen
3) Azerbaijan 11) East Timor 19) Japan 27) Lebanon 35) Palestine 43) Taiwan
4) Bahrain 12) Georgia 20) Jordan 28) Macau 36) Philippines 44) Tajikistan
5) Bangladesh 13) Hong Kong 21) Kazakhstan 29) Malaysia 37) Qatar 45) Thailand
6) Bhutan 14) India 22) Korea (North) 30) Mongolia 38) Russia 46) Turkmenistan
7) Brunei 15) Indonesia 23) Korea (South) 31) Myanmar (Burma) 39) Saudi Arabia 47) United Arab Emirates
8) Cambodia 16) Iran 24) Kuwait 32) Nepal 40) Singapore 48) Uzbekistan
#? 19
The following information has been given:
Japan
Therefore TZ='Asia/Tokyo' will be used.
Selected time is now: Sat Feb 9 16:34:35 JST 2019.
Universal Time is now: Sat Feb 9 07:34:35 UTC 2019.
Is the above information OK?
1) Yes
2) No
#? 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
|
ハードウェアクロックの時間のズレを調整
1
| # hwclock --systohc --utc
|
hostname
host名の追加
1
| echo archer > /etc/hostname
|
Pacman
pacman.confにColor
とILoveCandy
を追加
プログレスバーがpacmanに変わる
1
2
3
4
5
6
7
8
| # vi/etc/pacman.conf
# Misc options
#UseSyslog
Color
#TotalDownload
CheckSpace
#VerbosePkgLists
ILoveCandy
|
ユーザーの追加
rootのPW変更
Sudoerの設定
wheelグループはどんなコマンドも許可
1
2
3
4
5
| # pacman -S sudo
# visudo # 下の2行のコメントを外す
## Uncomment to allow members of group wheel to execute any command
# wheel ALL=(ALL) ALL
|
一般ユーザー追加
1
2
3
| # useradd -m -G wheel -s /bin/bash mike
# passwd mike
# reboot # 一応mikeユーザーでログインできることを確認する
|
一応仮想コンソール用ユーザーも追加する
mikeはGUI用のユーザーでnekoはCUI用
万が一mikeで問題が発生した時用に
1
2
| # useradd -m -G wheel -s /bin/bash neko
# passwd neko
|
ルートユーザーでログインすることを無効化する
Yayのインスコ
1
2
3
4
5
| $ sudo pacman -S git
$ sudo pacman -S make fakeroot # NOTE: これが依存PKG
$ git clone https://aur.archlinux.org/yay.git
$ cd yay
$ makepkg -si
|
Virtual Console
keymap
capslockをctrl化する
https://wiki.archlinux.jp/index.php/%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%E3%81%A7%E3%81%AE%E7%89%B9%E5%88%A5%E3%81%AA%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89%E3%82%AD%E3%83%BC
もとのキーマップをコピーして新しい設定を作る
1
2
3
| # mkdir -p /usr/local/share/kbd/keymaps
# cp /usr/share/kbd/keymaps/i386/qwerty/us.map.gz /usr/local/share/kbd/keymaps/
# gunzip /usr/local/share/kbd/keymaps/us.map.gz
|
capslockをctrlに変更
1
2
3
| # vi /usr/local/share/kbd/keymaps/us.map
...
keycode 58 = Control
|
読み込み
1
| # loadkeys /usr/local/share/kbd/keymaps/us.map
|
起動時に読み込みにする場合
下を追記する
1
2
3
| # vi /etc/vconsole.conf
...
KEYMAP=/usr/local/share/kbd/keymaps/us.map
|
X
タッチパッドのドライバー
libinputをインスコする
1
| $ pacman -S xf86-input-libinput
|
Install
インテルドライバーのインスコ
1
| # pacman -S xf86-video-intel lib32-intel-dri lib32-mesa lib32-libgl
|
Xのインスコ
1
| # pacman -S xorg-server xorg-xinit xorg-apps mesa xterm
|
Xが起動するか確認
Font
元ネタ https://www.reddit.com/r/archlinux/comments/5r5ep8/make_your_arch_fonts_beautiful_easily/
フォントインスコ
1
| $ sudo pacman -S ttf-dejavu ttf-liberation noto-fonts
|
プリセットの作成
1
2
3
| $ sudo ln -s /etc/fonts/conf.avail/70-no-bitmaps.conf /etc/fonts/conf.d
$ sudo ln -s /etc/fonts/conf.avail/10-sub-pixel-rgb.conf /etc/fonts/conf.d
$ sudo ln -s /etc/fonts/conf.avail/11-lcdfilter-default.conf /etc/fonts/conf.d
|
/etc/fonts/local.conf
に下のように設定フィアルを作成する
再起動するとフォントがきれいになっている
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match>
<edit mode="prepend" name="family"><string>Noto Sans</string></edit>
</match>
<match target="pattern">
<test qual="any" name="family"><string>serif</string></test>
<edit name="family" mode="assign" binding="same"><string>Noto Serif</string></edit>
</match>
<match target="pattern">
<test qual="any" name="family"><string>sans-serif</string></test>
<edit name="family" mode="assign" binding="same"><string>Noto Sans</string></edit>
</match>
<match target="pattern">
<test qual="any" name="family"><string>monospace</string></test>
<edit name="family" mode="assign" binding="same"><string>Noto Mono</string></edit>
</match>
</fontconfig>
|
IME
日本語フォントをインスコする
1
| $ pacman -S otf-ipafont
|
Fcitxをインスコする
1
| $ pacman -S fcitx fcitx-mozc fcitx-configtool
|
下のように.xinitrcを作成する
1
2
3
4
| $ cat .xinitrc
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=”@im=fcitx”
|
Fcitx configurationで下のように設定して、
再起動するとIMEが使えるようになる
1
2
3
4
5
| add mozc and prioritize it more over Keyboard English
change default keyboard layout to to English(US)
Global config > show advance options
active input method = lart
inactive input method = ralt
|
ファンクションキー
Fnキーの挙動をインバートするにはFn+Esc
を押下すればOK
参考 https://bbs.archlinux.org/viewtopic.php?id=233368
Keymap
capslockを無効化する
ログイン中かえたいなら setxkbmap -option ctrl:nocaps
でもOK
恒久的に変えたいので、X configuration fileを修正する
/etc/X11/xorg.conf
を変更せず、自分で設定ファイルを追加する
xorg.confはHWを変更すると壊れやすいため
なお、ファイルの頭の数字は2桁で読み込み順番に関係する
再起動すればXで反映されている
1
2
3
4
5
6
7
| # vi /etc/X11/xorg.conf.d/20-keyboard-layout.conf
Section "InputClass"
Identifier "keyboard_layout"
MatchIsKeyboard "on"
Option "XkbLayout" "us"
Option "XkbOptions" "ctrl:nocaps"
EndSection
|
Thinkpad X1 carbon 6gen用の設定
休止状態の設定
もう一度 mkinitcpio.confを編集してresume
を追加する
1
2
| # vi /etc/mkinitcpio.conf
HOOKS=(base udev autodetect keyboard keymap modconf block encrypt lvm2 resume filesystems fsck)
|
initramfsのイメージを生成する
1
2
| mkinitcpio -p linux
# mkinitcpio -p linux-lts
|
arch.confを以下のように修正する。
resume=/dev/mapper/main_group-swap
の設定を追加する
1
2
3
4
5
| title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options cryptdevice=UUID=XXX:cryptlvm root=/dev/mapper/main_group-root resume=/dev/mapper/main_group-swap quiet rw
|
サスペンドの設定
サポートされているサスペンドの設定の確認
1
2
| # dmesg | grep -i "acpi: (supports"
[ 0.979007] ACPI: (supports S0 S4 S5)
|
再起動しBIOSからSleep StateをLinuxに変更する
Config > Power > Sleep State > Linux
Sleep StateをLinuxに変更後
S3が追加されている
1
2
| # dmesg | grep -i "acpi: (supports"
[ 1.053591] ACPI: (supports S0 S3 S4 S5)
|
CPUのクロックスロットリングの問題
パッチを当てる
CPUのクロック数がおかしいときがあるため
1
2
| # aurman -S lenovo-throttling-fix-git
# sudo systemctl enable --now lenovo_fix.service
|
BIOS更新
現状のバージョン確認
最近買ったので最新だった
https://pcsupport.lenovo.com/us/zh/products/laptops-and-netbooks/thinkpad-x-series-laptops/thinkpad-x1-carbon-6th-gen-type-20kh-20kg/downloads/ds502281
1
2
| # dmidecode -s bios-version
N23ET59W (1.34 )
|
もし、上げる場合は、ファームウェアを更新する
fwupd
をインスコする
Laptopが電源につなぐ。
BIOSのバージョンあげるのは自己責任で
1
2
3
| # fwpudmgr refresh
# fwpudmgr get-updates
# fwupdmgr update
|
Trim SSD
SSDのTRIMとはHDDでいうデフラグ的なもの
できるか確認。SSDの1行目か2行目に0でない値があれば可能
1
2
3
4
5
6
7
8
9
| # lsblk --discard
NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
nvme0n1 0 512B 2T 0
├─nvme0n1p1 0 512B 2T 0
└─nvme0n1p2 0 512B 2T 0
└─cryptlvm 0 0B 0B 0
├─main_group-swap 0 0B 0B 0
├─main_group-root 0 0B 0B 0
└─main_group-home 0 0B 0B 0
|
定期的なトリミングを有効化する
Ubuntuでもしていないらしいので、する必要もないのかもしれない?
1
2
| # pacman -S utils-linux
# systemctl enable fstrim.timer
|
その他
pacmanのメモ
1
2
3
4
5
6
7
8
9
| # pacman -S <word> # パッケージインスコ
# pacman -R <word> # パッケージ削除
# pacman -Syy # パッケージリストの更新 (`apt update`)
# pacman -Syyu # パッケージリストの更新とパッケージ更新
# pacman -Ss <word> # wordでパッケージを検索する
# pacman -Qs <word> # wordでローカルでローカルのパッケージを検索する
# pacman -Qsi <word> # Qsの詳細
# pacman -Ql # ローカルのパッケージ一覧
# pacman -Syu # パッケージのアップグレード
|
論理ボリュームの用語
- LVM (Logicl Volume Manager) はブロックデバイスを仮想化する機能。
- PV(物理ボリューム): ようするにハードディスクそのもの
- VG(ボリュームグループ): ようするにRAIDでいうJBOD(スパニング)
- LV(論理グループ): ようするにパーテーション
- ループデバイスは通常のファイルをブロックデバイスとして読み書きできるようにする機能
openしたLVMをクローズする
1
| # cryptsetup close /dev/mapper/main_part
|
write error failed: No space left on device のエラーが出た時
きれいに
1
2
3
4
5
6
| # lsblk
# fdisk /dev/nvme0n1 # 全部のパーテーション消すまで繰り返す
d # delete a partition
w
y
# mkfs -t /dev/nvme0n1 # フォーマット
|
また作りなおす
1
2
| # partition bootableは上述の処理と同じ
# 次はカラのパーテーションを作る
|
References