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
を使ってみることにしました.
セクタ数とかは難しいので,
- 一度ntfsresizeで60GBに縮小
- gdiskでパーティション削除作成をして70GBにする
- 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再ビルドしてみたら失敗することがわかりました.
なるほど報告はされている.
このチケットによると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だけでは解決出来ません.
報告しようとしたら既にされていたのでそのうち治るでしょう.