• 作成:

GentooをXPS 13 9360に再インストールした時に詰まった所のメモ

前回のインストール.

XPS 13 9360(2016年発売)にgentooをインストール - ncaq

動機は容量が足りないためです. 次のXPS 15のアップデートまでこのPCで耐えしのぐつもりなのでやっていきます.

Windowsのパーティションが縮小できませんでした

「十分な空き領域がないのでこの操作を完了できません」と出てくる

前回のインストール時には縮小できる範囲が半分ぐらいだったのでちょうどそれぐらいで分割しましたが, 明らかに足りなくなってきたのがわかりました.

しかしWindows側も容量が足りていない.

しかし, Windows Updateを全て終わらせてからディスクのクリーンアップをしてみたら, 以前のWindowsの30GBを消せました.

よしこれでパーティションの縮小が出来るようになると思って,

Windows 10/8/7でCドライブを縮小できないことを解決!

などを見て

  • ページングファイルを無効化
  • メモリダンプを無効化

などを行ってみたら, 「ディスクの管理」は「このサイズまで縮小できます」と返事を返すようになりました.

しかし, いざ縮小してみると, 「十分な空き領域がないのでこの操作を完了できません」 と出てきてしまいます.

徒然事: ​ Windows 10で、特別なツールを使わずに、システムパーティションを縮小する

を見てdiskpartコマンドを使ってみることにします.

ディスクとパーティションを選択して, shrinkコマンドを実行したら,

やはり「指定された縮小サイズは大きすぎます」と出てきます.

shrink desired=43000

とちゃんとパラメータを設定してもダメです.

querymaxの実行結果完全にウソじゃないですか.

何もわからない. 別にWindowsに壊れたら困るデータ1つも入ってないしLinux側からntfsresizeかけてしまえば良いのではないか.

ntfsresizeでぶっ壊しました

と思ってntfsresizeを使ってみることにしました.

セクタ数とかは難しいので,

  1. 一度ntfsresizeで60GBに縮小
  2. gdiskでパーティション削除作成をして70GBにする
  3. ntfsresizeで自動調節して70GBにする

の手順をとってみることにしました.

見事Windowsが起動しなくなりました.

別のPCのWindowsを使って回復ツールをUSBメモリにインストールしてWindows自体を再インストールしました.

Gentooの再インストール

SystemRescueCDのダウンロード

SystemRescueCd - System Rescue Cd Homepage

最新版をダウンロードしました.

usb_inst.shが動きませんでしたがLANG=Cしたら動きました

% sudo ./usb_inst.sh
Device [/dev/sdc] detected as [BUFFALO  USB Flash Disk  ] is removable and size=3685MB
* Device [/dev/sdc] is not mounted
dialog: loadlocale.c:130: _nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' failed.
./usb_inst.sh: 491 : 11822 中止                  (コアダンプ) ${PROG_DIALOG} --infobox "$1" 20 75
dialog: loadlocale.c:130: _nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' failed.
./usb_inst.sh: 491 : 11833 中止                  (コアダンプ) ${PROG_DIALOG} --infobox "$1" 20 75

で動きませんでしたが,

LANG=C sudo ./usb_inst.sh

したら動きました.

とりあえずバグ報告しようと SystemRescueCd - Index page に投稿しようとしたのですがログイン画面は書いてますがサインアップが何処で出来るのか全くわからない.

ググって SystemRescueCd - User Control Panel - Information を直接打ち込んで閲覧したら

Creating a new account is currently not possible.

とか言われました… ええ…

フォーラムにログインできないとなると流石に詰みでしかない.

nvmeを認識しない

SystemRescueCdがNVMe SSDを認識しないのでGentoo公式のミニマルインストーラを使うことにしました.

これも認識したりしなかったりする時があるんですよね. 謎です. タイミング?

昔はUEFI対応のUSBブートメディア作るの大変だった記憶があるのですが, 今は普通にISOをddするだけで作成することが出来ました.

前回はext4でしたが今回はbtrfsを使います

透過圧縮とCoWで容量節約になりそうなので…

圧縮にはzstdを指定します.

スワップパーティションは作りません.

将来的にスワップファイルがbtrfsでもサポートされますし,

2018年12月13日 Btrfs,スワップファイルをふたたびサポートへ:Linux Daily Topics|gihyo.jp … 技術評論社

されなくてもループバックデバイスでどうにかなるので容量確保のために今回はスワップパーティションは作りませんでした.

dm-cryptは使わないことにしました

ラップトップPCのパフォーマンスが圧倒的に足りてないため. 全てを暗号化するとパフォーマンスが激落ちすることが予想されます.

encfsで秘密鍵とブラウザ鍵とソースコードさえ守れれば問題ないはず.

ntpで時刻を同期

さっきWindowsを再インストールしていたせいで時刻がlocalになってしまっていたので同期しました.

dbusがビルド失敗する

どうもconfigureで失敗しているらしいですね.

デスクトップでdbus再ビルドしてみたら失敗することがわかりました.

なるほど報告はされている.

674830 – sys-apps/dbus-1.12.12 with sys-devel/autoconf-archive-2019.01.06 - configure:18977: error: Unexpanded AX_ macro found. Please install GNU autoconf-archive

このチケットによるとautoconf-archiveをダウングレードすると良いらしい.

upstreamのバグらしいので上流がいつか直すでしょう.

sys-devel/autoconf-archiveを安定版の2018.03.13にダウングレードしたらビルドうまくいきました.

btrfsの圧縮にstableのgrubは対応していません

インストールを終えたらgrub rescueが起動してしまいます. どうも何かを間違えたらしいですね.

grub error:compression type 0x3 not supported

という文字だけを吐いてrescueに入ってしまいます.

grub2 - "Compression type 0x3 not supported" - Ask Ubuntu

なるほど~ grubはbtrfsには対応しててもzstdによる圧縮には対応してないんですね.

これみて/bootディレクトリだけ圧縮無効化すれば良いのかと思ってやってみたのですがダメ. えっここまで来てbootパーティション分けから再スタートする必要があるということ…?

Btrfs - ArchWikiに書いてある

btrfs filesystem defragment -v -clzo /boot/*

をやってみたんですがダメでした. もしかしてzstdと無関係な所でコケてたりするんでしょうか.

Stable GRUB and rEFInd currently lack support for zstd, either switch to grub-gitAUR, use a separate boot partition without zstd or reset compression of boot files to something supported using for example the command:

とか書いてるし9999を使えば起動できたりするんでしょうか.

grub-9999を使ってインストールしたらあっさり認識して起動しました.

ログインできたので消す前に取って置いたsquashfsのバックアップからホームディレクトリを復元

cpするだけ.

こういう時にsquashfsでバックアップをとっておくとマウントして必要なものだけコピーしてくることが出来るので非常に便利です. オススメです.

Wi-FiのNICを認識しません

起動ログを見てみたら

ath10k_pci failed to find firmware-N.bin

とか書いてますね.

Gentoo Forums :: View topic - [SOLVED] Kernel can't load firmware によると組み込みじゃなくてモジュールにしろと書いているのでそうしてみましょう.

解決しました.

keepassxcがビルドできない

どうもllvm関係のディレクトリを触りたがっているらしいですね.

- Configuring done
-- Generating done
-- Build files have been written to: /var/tmp/portage/app-admin/keepassxc-2.3.4/work/keepassxc-2.3.4_build
>>> Source configured.
 * --------------------------- ACCESS VIOLATION SUMMARY ---------------------------
 * LOG FILE: "/var/log/sandbox/sandbox-1.log"
 *

のようにエラーが出てきます.

仕方がないので一時的にmake.conf

FEATURES='-sandbox -usersandbox'

と書いて解決. sandboxだけでは解決出来ません.

報告しようとしたら既にされていたのでそのうち治るでしょう.

675272 – app-admin/keepassxc-2.3.4 Sandbox access violation mkdir,open_wr,unlink /usr/lib/llvm/7/share/man/