ManjaroとWindows10をデュアルブート構成にした

ずっとLinux MintとWindows10のデュアルブートにしていたんだけど,Mint20が出たタイミングで,19 -> 20に上げるくらいなら別のOSに入れ替えようと思い立った.なので,このLinux MintManjaroに入れ替えた.のでメモ.

Linux Mintをキレイにする

まずいきなりLinux Mintをフォーマットしてしまうと,ブートレコードが残ったままになってしまう.というわけで先にブートレコードを削除してから,パーティションをフォーマットする必要がある.

ちなみにこの作業はWindows10側で行う.

bi.biopapyrus.jp

これを参考にして,bcdeditでubuntu というブートメニューを削除する.ちなみにLinux MintUbuntu派生なので,ブートメニューは ubuntu という名前になっていた.

あとはEFIが入っていそうなボリュームをdiskpartで探し出して,マウントしたら, /EFI/ubuntuディレクトリを削除すれば良い.

細かいコマンドについては,上記参考サイトの通り.

ここまで終わったら,コンピュータの管理からディスクの管理を開き,今までLinux Mintが入っていたパーティションを削除する.未割り当て状態になったら,いよいよ次のOSを入れる.

Manjaroのインストールメディアを作る

manjaro.org

公式ページから好きなバージョンのisoをダウンロードしてくる.

適当なUSBメモリを適当にフォーマットしておく.

$ sudo fdisk -l

して,該当のUSBのデバイス名を確認しておく.ここでは /dev/sdd だったとしよう.

マウントされてたら,umountしておく.

$ sudo umount /dev/sdd1

で, dd コマンドで/dev/sddにisoを入れる. ここで別のデバイスにインストールするとまじで悲劇なので,間違えないように.

$ sudo dd if=./manjaro-cinnamon-20.0.3-20200606-linux56.iso of=/dev/sdd bs=1048576

しばらく待つとできあがるので,あとはUSBメモリ抜く.

Manjaroのインストール

GUIインストーラなので,ここで細かく手順の説明はしない.

注意点として,Manjaro自体は日本語で利用することが可能だが,Manjaroのインストーラは日本語化が追いついておらず,インストーラの言語を日本語にするとほんとんどの項目が表示できなくなるので,インストーラだけは英語で我慢しよう

もう一点,Partitionの項目は毎回迷うところだが,今回のケースではReplace a partition を選択し,かつてLinux Mintが入っていた,今は未割り当ての領域を選択しよう.

そして,Boot Loader Locationはインストール先のパーティションが存在するディスクにしよう.OSのインストール先が /dev/sdaであるなら,/dev/sdaとしておく.

また,最後に確認項目が出てくるが,このときにパーティションはしっかり確認しよう.Windows10の領域に変更が入らないことを見ておく. あと, Boot Loader Locationを /dev/sda にしたが,確認画面では,/boot/efiEFIパーティションがマウントされ,そこがBoot Loader Locationになっていることを確認しよう. これが間違っていると,たとえManjaroのインストールが成功したとしても,grubによりManjaroとWindows10のkリイ変えができなくなる場合がある.

Manjaroインストール後

いつもどおりのLinuxセットアップだが,少し詰まったところがあるので書いておく.

emacs-mozcはPKGBUILDを編集しないと入らない

これはArch Wikiにも書かれていることだが,emacs-mozcは

$ yay -S emacs-mozc

としただけではインストールが成功しない.おそらく

$ yay -S emacs-mozc
...
Could not find PKGDEST for: emacs-mozc

というエラーになる.

wiki.archlinux.jp

ここに書いてあるとおり,PKGBUILDを編集する必要がある.

まず,適当なディレクトリに移動した後

$ yay -G emacs-mozc

とすると,emacs-mozcのPKGBUILDをダウンロードだけしてくれる.

$ cd mozc/emacs-mozc
$ ls -lha
total 28K
drwxr-xr-x  3 h3poteto h3poteto 4.0K  75 01:30 .
drwx------ 37 h3poteto h3poteto 4.0K  75 01:30 ..
-rw-r--r--  1 h3poteto h3poteto  370  75 01:30 emacs-mozc.install
drwxr-xr-x  8 h3poteto h3poteto 4.0K  75 01:30 .git
-rw-r--r--  1 h3poteto h3poteto 6.8K  75 01:30 PKGBUILD
-rw-r--r--  1 h3poteto h3poteto 1.9K  75 01:30 .SRCINFO

ここで,PKGBUILDを編集し,

## If you will be using mozc.el on Emacs, uncomment below.
_emacs_mozc="yes"

となるようにしておく.

で,

$ makepkg -si

でインストールが完了する.

albertじゃなくてulauncherを使ってみた

いつもランチャーはalbertを使っていたのだが,

$ yay -S albert

自体は成功するものの,

$ albert
albert: /usr/lib/libQt5Core.so.5: version `Qt_5.15' not found (required by /usr/lib/libQt5Charts.so.5)

というエラーが出るようになってしまった.そういえばqtはまともにセットアップしていない…….のだが,それはともかくとして,qtをコンパイルするのは結構めんどくさい.加えて,ibusを使おうと思うとibus-qtも入れる必要がある.いい加減qtに頼らないランチャーが欲しくなったので,ランチャーをulauncher に変えてみた.

だいたい同じ感じで使えるので非常に良い.

トラブルシューティング

フォーマットせずにReplace a partitionしちゃダメ

手抜きをして,Linux Mintのブートメニューを消したたところで,Manjaroのインストールをしようとしたのだが,この場合 /boot/efiEFIをマウントする設定が,インストール時に入らない. つまり,Manjaroを起動してもgrubのメニューが表示されない.

このとき,Manjaro側の /boot/efiは存在するが,/boot/efi/EFI が存在しない.そのため,Manjaroが入っているパーティションを起動してもgrubのブートメニューは出てこない.

ちゃんと,ブートメニューを消した後に,Windows10側でパーティションを削除し,未割り当て状態にすることで,その後のインストールにより /boot/efi のマウント設定が入り,/boot/eif/EFI/Manjaro が作成された.

nvidiaのドライバを入れてもなおnouveauが無効化されない

本来,nvidiaのドライバをインストールした時点で,nouveauを無効化する設定が入るのだが,まぁ入らないこともあるかもしれない. とりえあず俺の場合はmodprobe.dにblacklistは作られていなかった. そのため,

$ lspci -k | grep -A 2 -E "(VGA|3D)"
26:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB] (rev a1)
        Subsystem: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB]
        Kernel driver in use: nouveau

となっていた.

modprobe.d に追加してもいいんだけど,とりあえずカーネルパラメータを起動コマンドに追加してみた.

/etc/default/grub の,

GRUB_CMDLINE_LINUX_DEFAULT="text apparmor=1 security=apparmor udev.log_priority=3"

なってるあたりに,nouveau.modeset=0 を追加する.

GRUB_CMDLINE_LINUX_DEFAULT="text apparmor=1 security=apparmor udev.log_priority=3 nouveau.modeset=0"

で,

$ sudo update-grub

してやる.これで再起動すれば,

$ lspci -k | grep -A 2 -E "(VGA|3D)"
26:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB] (rev a1)
        Subsystem: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB]
        Kernel driver in use: nvidia

となる.

時刻がずれてた

TimeZoneの指定をちゃんとしているにもかかわらず,PCの時刻がずれていて,こいつが自動修正されなかったので,

$ timedatectl set-ntp 1
$ timedatectl status
               Local time: 日 2020-07-05 21:58:36 JST
           Universal time: 日 2020-07-05 12:58:36 UTC
                 RTC time: 日 2020-07-05 12:58:36
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

としておいた.

これで再起動後はちゃんと時刻同期が行われていた.

使い勝手について

デスクトップはCinnamonにしてしまっているので,Mintのとき,もっというと昔のUbuntuを使っていたときからそれほど変化はなく対応できている.

MintやUbuntuの場合,aptに存在しないマイナーなパッケージや,個人が作っているものはだいたい自前ビルドする必要がある. しかしyayは公式・非公式含めて非常に多くのパッケージが存在するので,多くの場合において自分でビルドすることなくインストールでき,さらにそれらを安全にアップデートできている. おかげでいつもなら手動ビルドしていたパッケージの大部分がyayで入れることができた.

Manjaroの好きなところとして,Kernelの選択画面があることが挙げられる.

f:id:h3poteto:20200705231255p:plain

これにより,たとえばカーネルはLTSしか使わないというような管理が楽にできる.こればっかりはpacmanで最新を問答無用で入れるのは怖いので,こういう管理画面になっているのはありがたい.

基本的に困ったことはArch wikiで解決できるので非常に安心感がある.