以下のサイトを参考にしました。
https://wiki.archlinuxjp.org/
http://lespedeza93.blogspot.jp/2015/08/archlinuxuefi-gpt-lvm2_9.html
http://archlinux-blogger.blogspot.jp/2015/02/arch-linux-os-uefi-gpt-xfs-archlinux.html
http://archlinux-blogger.blogspot.jp/2016/03/arch-linux-x-gnome.html
http://mofoolog.hateblo.jp/entry/archlinux-cinnamon-gdm-setting-1602
http://d.hatena.ne.jp/defiant/20110217/1297931082
https://gist.github.com/jasonwryan/4618490
https://gist.github.com/mattiaslundberg/8620837
https://loganmarchione.com/2014/11/arch-linux-encrypted-lvm-hardware-2/
<最終動作確認日:2017/01/19>
UEFIモードか確認
# ls /sys/firmware/
apci dmi efi memmap
キーボードレイアウトを変更
# loadkeys jp106
無線LAN設定
# ip link show
# ip link set <interface> up
# iwlist <interface> scanning | grep ESSID
# wpa_supplicant -B -i <interface> -c <(wpa_passphrase <ESSID> <password>)
# dhcpcd
# ping google.com
ディスクをLUKSで暗号化している場合は復号化
# cryptsetup luksOpen <disk> <luks-disk-name>
ディスク・lvmの使用状況を確認
# lsblk
# df -h
# lvscan
【任意】ディスクをクリーン
# sgdisk --zap-all /dev/sdX
lvmを削除する場合は以下
# lvremove -f <vg-name>
# pvremove -f <pv-name>
パーティション
パーティションを作成
はESP(ef00)に設定
はlvm用(8e00)に設定
# gdisk <disk>
GPT fdisk (gdisk) version 0.8.6
Partition table scan:
MBR: not present
BSD: not present
APM: not present
GPT: not present
Creating new GPT entries.
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 :
First sector:
Last sector: +512M
Hex code or GUID: ef00
Command (? for help): n
Partition number:
First sector:
Last sector:
Hex code or GUID: 8e00
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed?: y
OK; writing new GUID partition table (GPT) to /dev/sda.
The operation has completed successfully.
ちゃんとできたか確認
# lsblk
LUKS
# modprobe -a dm-mod dm_crypt
# cryptsetup -v -y -c aes-xts-plain64 -s 512 -h sha512 -i 5000 --use-random luksFormat <disk02>
# cryptsetup open <disk02> <luks-disk-name>
-v = verbose
-y = verify password, ask twice, and complain if they don’t match
-c = specify the cipher used
-s = specify the key size used
-h = specify the hash used
-i = number of milliseconds to spend passphrase processing (if using anything more than sha1, must be great than 1000)
–use-random = which random number generator to use
luksFormat = to initialize the partition and set a passphrase
/dev/sda3 = the partition to encrypt
ちゃんとできたか確認
# lvmdiskscan
LVM
lvmを作成
100%にするには -l 100%FREE
# pvcreate /dev/mapper/<luks-disk-name>
# vgcreate <vg-name> /dev/mapper/<luks-disk-name>
# lvcreate -L 8G <vg-name> -n <lv-swap-name>
# lvcreate -L 64G <vg-name> -n <lv-root-name>
ファイルシステム
ファイルシステムを作成
スワップはオンにする
# mkfs.vfat -F32 <disk01>
# mkswap /dev/<vg-name>/<lv-swap-name>
# swapon /dev/<vg-name>/<lv-swap-name>
# mkfs.ext4 /dev/<vg-name>/<lv-root-name>
マウント
# mount /dev/<vg-name>/<lv-root-name> /mnt
# mkdir -p /mnt/boot/efi
# mount <disk01> /mnt/boot/efi
ミラーの順番を変更
# vi /etc/pacman.d/mirrorlist
##
## Arch Linux repository mirrorlist
## Sorted by mirror score from mirror status page
## Generated on 2015-01-01
##
## Score: 2.4, Japan
Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
...
ベースシステムをインストール
# pacstrap /mnt base base-devel
fstabに記述
# genfstab -U -p /mnt >> /mnt/etc/fstab
chrootする
# arch-chroot /mnt /bin/bash
ロケールの設定
# vi /etc/locale.gen
...
#en_SG ISO-8859-1
en_US.UTF-8 UTF-8
#en_US ISO-8859-1
...
#ja_JP.EUC-JP EUC-JP
ja_JP.UTF-8 UTF-8
#ka_GE.UTF-8 UTF-8
...
# locale-gen
# echo LANG=en_US.UTF-8 > /etc/locale.conf
# export LANG=en_US.UTF-8
キーボードレイアウトを変更
# loadkeys jp106
# vi /etc/vconsole.conf
KEYMAP=jp106
クロックを設定
# ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# hwclock --systohc --utc
ホスト名
# echo <hostname> > /etc/hostname
# vi /etc/hosts
...
#<ip-address> <hostname .domain.org=""> <hostname>
127.0.0.1 localhost.localdomain localhost <hostname>
::1 localhost.localdomain localhost <hostname>
...
initramfs
initramfsを作成
# vi /etc/mkinitcpio.conf
...
HOOKS="base udev autodetect modconf block encrypt lvm2 filesystems keyboard fsck"
...
# mkinitcpio -p linux
ユーザ設定
パスワードを設定
# passwd
一般ユーザを設定
# useradd -m -g users -G wheel -s /bin/bash <username>
# passwd <username>]
無線LANツールをインストールしておく
# pacman -S wireless_tools
# pacman -S wpa_supplicant
アーキテクチャ設定
# pacman -S intel-ucode
ブートローダ
ブートローダをインストール
lvmとluksを使用するためにはGRUBがdevice mapperをサポートする必要があります。
Then, we need to install Grub. Since we are using lvm and luks, we need Grub to support device mapper.
echo "sys-boot/grub device-mapper" >> /etc/portage/package.use/grub
emerge grub
# pacman -S grub dosfstools efibootmgr
以下を記述(GRUB_CMDLINE_LINUX項目は既存ですが、GRUB_ENABLE_CRYPTODISK項目は新しく記述します。)
cryptdeviceは通常の/dev/sdxなどでも記述可能ですが、新しいデバイスなどを追加すると順番が変更され、認識しなくなる恐れがあります。
# vi /etc/default/grub
...
GRUB_CMDLINE_LINUX="cryptdevice=/dev/disk/by-uuid/<UUId>:<luks-disk-name>"
...
GRUB_ENABLE_CRYPTODISK=y
GRUB2をESPにインストールします。
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck
# mkdir /boot/efi/EFI/boot
# cp /boot/efi/EFI/arch_grub/grubx64.efi /boot/efi/EFI/boot/bootx64.efi
# grub-mkconfig -o /boot/grub/grub.cfg
##chrootを抜けて、すべてアンマウントしてリブート
# exit
# umount -R /mnt
# reboot
# visudo
...
## Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL) ALL
...
無線LAN設定
# ip link show
# ip link set <interface> up
# iwlist <interface> scanning | grep ESSID
# wpa_supplicant -B -i <interface> -c <(wpa_passphrase <ESSID> <password>)
# dhcpcd
# ping google.com
CLIで使うツールのインストール
# pacman -S vim bash-completion
# timedatectl set-ntp true
# vim /etc/systemd/timesyncd.conf
...
[Time]
NTP=ntp1.jst.mfeed.ad.jp ntp2.jst.mfeed.ad.jp ntp3.jst.mfeed.ad.jp
FallbackNTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org
...
# systemctl -l status systemd-timesyncd
X
Xをインストールしてstartx
# pacman -S xorg-server xorg-server-utils xorg-xinit xorg-xclock xterm xorg-twm
# lspci | grep VGA
# pacman -S xf86-video-intel
# startx
GNOME
GNOMEをインストールしてリブート
# pacman -S gnome gnome-extra
# systemctl enable gdm.service
# reboot
色々インストールしとく
# vim /etc/pacman.conf
...
[archlinuxfr]
SigLevel = Never
Server = http://repo.archlinux.fr/$arch
# pacman -Syu
# pacman -S wget git expac jshon firefox guake gimp inkscape openssh rsync yaourt
# yaourt -Syu
日本語表示のため
$ yaourt -S packer
編集するか聞かれたらNoでいいと思います。
$ packer -S otf-ipaexfont
# vim /etc/fonts/conf.avail/71-no-embedded-bitmaps.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font">
<edit mode="assign" name="embeddedbitmap">
<bool>false</bool>
</edit>
<edit mode="assign" name="hintstyle">
<const>hintnone</const>
</edit>
</match>
</fontconfig>
# ln -s /etc/fonts/conf.avail/71-no-embedded-bitmaps.conf /etc/fonts/conf.d/71-no-embedded-bitmaps.conf
Fcitx-Mozcをインストール
# gsettings set org.gnome.settings-daemon.plugins.keyboard active false
# pacman -S fcitx fcitx-mozc fcitx-configtool fcitx-im
リブート
# reboot
$ vim ~/.xprofile
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export DefaultIMModule=fcitx
setxkbmap -model jp106 -layout jp
fcitx-autostart &
# vim /etc/X11/xorg.conf
Section "InputClass"
Identifier "evdev keyboard catchall"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
Option "XkbModel" "jp106"
Option "XkbLayout" "jp"
EndSection
gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/IMModule':<'fcitx'>}"
[Fcitx configuration]を起動
[Imput Method]に[Mozc]のみ表示させる
[Appearance]の[Status Panel Hide Mode]を[Show]にする
[Settings]を起動
[Region & Language]で[Input Method]にJapaneseを設定する
リブート
# reboot