Arch Linux

Arch Linuxでext4のrootfsをLUKSで暗号化する

既存のファイルシステムを暗号化もできるらしい。 とりあえず使い捨ての環境でやってみたのでメモしておく。使ってる環境でやるならバックアップ取ってからやった方がいいと思う。 まず、Arch のインストールメディアで起動する。 ここでは /dev/nvme0n1p2 に rootfs があって、それ以上は分割されていないものとする。 複数のパーティションを 1 つの暗号化パーティションに入れることができるかは分からない。 LUKS のヘッダ分のスペースを空けないといけないので、まず ext4 のファイルシステムを縮小する。 僕はデータが入り切る最小サイズまで縮小した。計算が得意な人はギリギリのサイズに縮小してもいいと思うけど、 ext4 だとデータはあんまりバラけてないはず(多分)なのでどのくらい意味があるのかは不明。 (あと、僕はどうせミスる)

Arch Linuxを暗号化したディスクにインストールする

Arch Linux を LVM on LUKS の root filesystem にインストールしたのでメモ。 LVM を使うこと自体は完全にオプションで、LUKS の上に ext4 のファイルシステムを作っても別に良い(はず)。 これがどういう構成かというと、物理パーティションの上に LUKS で暗号化したパーティションを作り、 その上の LVM2 の LV の上の ext4 のパーティションに rootfs を作るというもの(オフチョベットしたテフをマブガッドしてリットにしてそうな説明)。 (意外にもとハマらずにできたので情報としての価値は低めです。) インストールガイド に従ってパーティションを切るところまでやる。 パーティションはこんな感じで切った。 ディレクトリ 範囲 説明 /boot 1 MiB–1 GiB ブートローダとか諸々用 / 残り全部 残りのディレクトリ用。暗号化する。LVMを使うので後で分割も可能。 /boot 大きめっすね。

QEMUで雑に作るArch Linux ARMビルド環境

QEMU で起動するのが楽な Alpine Linux で aarch64 な Linux 環境を作り、 その中でブートストラップした Arch Linux ARM に chroot して使ってやろうというもの。 Alpine も Arhc も小さいのでビルドしようとするものによるが、tmpfs だけで戦える可能性が十分ある。 bazel と mozc のビルドをやったが、16 GB メモリのマシンで tmpfs しか使わずに作業が終わった (ビルド後にいらなくなった一時ファイルを消したりはしたが)。 準備 aarch64 の仮想マシンの実行には qemu-arch-extra が必要なので事前に入れておく。 Alpine のイメージを公式サイトから落としておく。 多分どれでもいいが、今回は standard を使った。 UEFI を使うため、edk2-armvirt を入れる。 QEMU のイメージの準備 サイズとかは適当に。後で拡張したりできるので大袈裟に気にすることはない (ちょっとめんどくさいが)。 $ qemu-img create -f qcow2 alpine.qcow2 8G インストール ダウンロードした Alpine のイメージを CD-ROM として使って QEMU を起動する。

Chromebook を購入し (て Crostini に Arch Linux を入れ) た話

使ってた iPad のボタンの調子が悪かったので移行先を探していたのですが、 「そういや 2-in-1 の Chromebook とかでいいじゃん」てことで Chromebook 1 を購入しました。 CPU が遅かったり aarch64 だったりで、Linux をちゃんと使おうとすると辛さがあるような気がしているので、 開発環境として使いたかったら x86 系のものを買っておいたほうが良いと思います。 操作感 iPad のかわりにしたくて買ったということもあり、タブレットとして使えるかは割と不安だったんですが、 割といい感じです。キーボードを外すとタッチ用の UI になり、少なくとも最近の Android を使ったことがある人は 操作で迷うということはないと思います。UI 自体もけっこう Android に近い。 Arch Linux を入れる 操作感とかはどうでもよくてこっちが本題です。

Arch LinuxでWindowsの起動USBを作る方法

Windows のイメージは Microsoft のサイトからダウンロードできるが、 クソデカファイルが含まれているので、そのまま焼いても (USB の作成は成功したように見えるが) 壊れた起動 USB ができている。 FAT32 は 1 ファイルのサイズには 4 GiB の制限があるが、ISO ファイルには 5 GiB 超の ファイルが入っているのでそのまま焼くことができない。 このクソデカファイルを分割することで、この制限を突破することができるので、 その方法で起動用の USB を作成する。 1. USB を FAT32 でフォーマットする 普通。コマンドでやるなら下みたいな感じかな。 # parted /dev/sdb (parted) mklabel msdos (parted) mkpart primary fat32 0% 100% (parted) q # mkfs.fat -F32 /dev/sdb1 sources/install.wim 以外をコピーする ダウンロードしてきたイメージをマウントし、中のファイルをコピーする。 cp でやるなり rsync 使うなりお好みで。

ArchLinux のフォント設定

なんかおかしいな〜と思いつつ何もやってなかった。 Noto の CJK フォントはインストールするだけじゃなくて自分で symbolic link 作ってやる必要あり。 $ ln -s /etc/fonts/conf.avail/70-noto-cjk.conf /etc/fonts/conf.d/. これをやっていなかったので,あらゆるフォントが Noto Sans CJK JP で描画されていて, ソースコード部分に web font 使ってないサイト(つまり自分のブログ)のソースコードとかが死んでた。

iBusのアップデートでGNOMEのIMEの問題が直った

GitHub のプロジェクトのページを見ている感じではリリースは夏ごろかなと思っていたのだが, 今日 ArchLinux でアップデートが来た. Wayland でインプットメソッドが使えない問題も直ったので,Xorg から Wayland に切り替えることができた. Wayland に切り替えて何が嬉しいかというと,割と簡単に小数単位のスケーリングができることだ. 先日,ThinkPad X1 Carbon が届いたのだが,今回はちゃんとフルハイの解像度のを選んだので 画面の表示が小さすぎて辟易していた.それで今日のアップデートで大きく表示できるようになったので 快適になった. ただ,この小数単位でのスケーリングは問題もはらんでいるようで,GNOME のアプリ以外の多くのアプリは の解像度が低いままで拡大されてしまう.たぶん GTK のバージョンの問題だと思うが.

rootfs に NTFS を使う?

しかも ArchLinux でやってる。エモい。 https://github.com/nikp123/ntfs-rootfs/wiki 正気か?POSIX のパーミッションをサポートしてないので無理な気がしたけど 非公式のサポートがあるらしい。誰得なんだろ。 安定しているの? シャットダウンできないことを除けばとても安定している。 :thinking_face: パーミッション周りをゴニョゴニョやってるせいでパフォーマンスは悪いらしい。