MiracleJobLogo
エンジニアのエンジニアによるエンジニアのためのサイト
News 07/25 おすすめ情報に 『 【案件】Azure AD関連の認証設計/azureの基本設計 』 を追加しました。
会員登録するとキャリア診断やサイトに参加することができます。
あなたにおすすめな技術情報、資格、仕事などをお知らせします。

無料会員登録


パスワードを忘れた場合
LINEで送る
MiracleJobBanaLeft1
MiracleJobBanaLeft2


Arch Linux(VMware)
profile-img
投稿者: nac_fisさん
投稿日:2023/02/20 14:22
更新日:2023/02/20 14:43
like-img
分類
技術
テクノロジー
全般
キャリア
構築
投稿内容
Arch Linuxを使いたくなったのでVMware上に仮想マシンを設けることにしました。

環境:
Windows11
VMware workstation Pro 16
Playerでも同様に設定できる気がします。



新規VMの作成:
ISOファイルをダウンロードしてきたら、VMwareを起動し、
Create a New VM -> Typicalを選択して次に進みます。VersionはOther Linux 5.x kernel 64-bitを選択します。他名前や保存場所は適当に設定して、作成前でも後でもいいのでネットワークアダプターの接続をブリッジに変更しておきます。

あとはRAMやCPUをお好みで割り当てておきます。今回は
CPU:4コア
RAM:8GB
ROM:50GB
としました。

これで完了!...の前に作成したVMが保存されているフォルダまで行って、VM名.vmxファイルを何かしらで開きます。
そして「firmware="efi"」を追記して保存をしますが、文字コードをANSIにしておかないと文字化けしてVMが起動できなくなるらしいので注意が必要です。



インストール:
デフォルトのキー配列がUS ANSI配列になっているので、一般的なJISキーボードを使っている場合は
# loadkeys jp106
と入力しレイアウトを変更しておく必要があります。

この段階でsshdを起動しておくとクライアントから接続できるのでコードをコピペできて楽らしいです。
# systemctl start sshd

後公式では最初に時刻設定をしておくのを推奨していますが私はすっぽかしていたのでやっていません。
# timedatectl set-ntp true


システムをインストールするためにはパーティションを作成する必要があります。素のArch LinuxはUEFIを使うので、ESP・swap・データ用の3つが必要です。Red Hat曰くRAM容量が2~8GBの場合RAMと同じ要領のスワップ領域を確保することが推奨だそうですが、3GBくらいでいいという記述をどこかで見たことある気がするので、

ESP:512MB
swap:3GB
data:他全部

で行こうと思います。


コマンドを全部記載すると長くなるというか調べれば出てくるので簡潔にですが、
# gdisk /dev/sdaでディスクを開く
oオプションでディスクをクリア
nオプションで3つのパーティションを作成する
wオプションで変更を保存
という流れになります。
今回は
ESP:/dev/sda1
swap:/dev/sda2
data:/dev/sda3

になっています。

パーティション



パーティションを作成したらフォーマットが必要になります。
ESPはFAT32でフォーマットする必要があります。
# mkfs.fat -F 32 /dev/sda1
or
# mkfs.vfat -F32 /dev/sda1

(dataパーティションはext4でもBtrfsでもお好みで)


swapはボリューム作成後有効にする必要があります。
# mkswap /dev/sda2
# swapon /dev/sda2



さらにパーティションを使うにはマウントする必要があります。


まずルートボリュームをマウントします。

# mount /dev/sda3 /mnt


ESPは/mnt/bootにマウントしておかないといけません。
# mount --mkdir /dev/sda1 /mnt/boot

フォーマットとマウント



これでディスクが使えるようになったので、パッケージをインストールします。


ミラーリストを編集して日本のサーバーを選択するとインストールが速くなります。
# vi /etc/pacman.d/mirrolist
サーバーが列挙されている先頭に
Server = http://mirror.archlinuxjp.org/$repo/os/$archlinuxjpを追記

必須パッケージはbase・linuxですが、システムを完全に機能させるには他にも入れておいた方が良いものがあったりします。
今回は参考にさせていただいたサイトのまんまで
# pacstrap /mnt base base-devel linux linux-firmware btrfs-progs intel-ucode vi vim nano dosfstools efibootmgr openssh dhcpcd netctl ccache zsh zsh-completions zsh-syntax-highlighting wget man-db man-pages screenfetch
としました。



システム設定:
まずfstabを生成します。fstabはマウントの設定を記述しておくファイルです。
# genfstab -U /mnt >> /mnt/etc/fstab

設定を行うため先ほどシステムをインストールした/mntにchrootします。chrootすると/mntをルートディレクトリとして扱います。
# arch-chroot /mnt


タイムゾーンを設定します。私は日本在住なので東京に設定します。
# ln -sf /usr/share/zoninfo/Asia/Tokyo /etc/localetime
# hwclock --systohc



次にロケールを設定します。

/etc/locale.genを編集して使用する言語のコメントを外します。


日本語を使いたいので
en_US.UTF-8 UTF-8(必須)
ja_JP.UTF-8 UTF-8
をアンコメントし、
# locale-gen
を実行してロケールを生成します。

この段階で日本語に設定すると文字化けするらしいのでしばらくは英語に設定しておきます。
# echo LANG=en_US.UTF-8 . /etc/locale.conf


JISキーボードを使う場合はキーマップを変更しておきます。
# echo KEYMAP=jp106 > /etc/vconsole.conf


ホストネームを決めます。今回はarch64にしました。
# echo arch64 > /etc/hostname
/etc/hostsも設定します。
127.0.0.1   localhost
::1         localhost
127.0.1.1   arch64.lcaldomain arch64


パスワードも設定しておきます。
# passwd


ネットワークのためにsshd・systemd-networkd・systemd-resolved・dhcpcd.serviceデーモンの自動起動を有効にします。
# sysemctl enable <デーモン>


最後に、起動のためにはブートローダーが必要です。
ひとまず今回はGRUBを使いました。
# pacman -S grub

設定をします。
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck --debug
# grub-mkconfig -o /boot/grub/grub.cfg

chroot環境を抜けて再起動すれば一通りの作業は完了です。
# exit
# reboot



大概のディストリビューションならほとんど自動で行ってくれる作業ですが、自分でやってみるのもそれはそれで楽しいものだと思います。人によるでしょうが。


参考URL:

https://wiki.archlinux.jp/index.php/%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%82%AC%E3%82%A4%E3%83%89#.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB.E3.83.A1.E3.83.87.E3.82.A3.E3.82.A2.E3.81.AE.E6.BA.96.E5.82.99

https://qiita.com/nakayumc0278/items/dd800aaf8b31035d7be3

https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/storage_administration_guide/ch-swapspace


コメント


MiracleJobBanaRight1
MiracleJobBanaRight2
MiracleJobBanaRight3