Archは起動時にbtrfs配列をマウントしません。

Archは起動時にbtrfs配列をマウントしません。

データパーティションとしてマルチディスクbtrfsファイルシステムがあります。私のルートディスクはext4です。

安定したテーブル:

UUID=290624c6-6b95-41fd-94a1-923ebca64b83   /           ext4        rw,relatime,data=ordered    0 1
/dev/sdc    /mnt/btrfs  btrfs   rw,relatime,compress-force=zlib,autodefrag  0   0

デバイスを起動すると、1分30秒待ってから次のメッセージが表示されます。

A start job is running for dev-sdc.device

以来

Dependency failed for /mnt/btrfs

ログインすればできます。

mount /mnt/btrfs
systemctl default

動作します。システムが正常に起動します。

まず、mkinitcpioフックで何かをする必要があるかもしれませんが、このページ説明する:

Archのデフォルトのmkinitcpioパッケージには、マルチデバイス(RAID)サポートに十分な標準btrfsフックが含まれています。これに加えて、カーネルはフックなしで単一のデバイスbtrfsルートを起動できます。

したがって、すべてがすぐに機能するはずです。

なぜうまくいかず、問題を解決するにはどうすればよいですか?

答え1

コメント2件。まず、デバイスの代わりにタグやUUIDでマウントしてみてください。デバイス名は随時変更されることがあります。

それ以外の場合は、コンピュータのファイルシステムについて学ぶために最初の電話がbtrfs必要です。私はこれを処理できることを望みましたが、それのサービスファイルを作成して次の場所に置くまでは何とかできました。brtfs device scanbtrfsarch/etc/systemd/system/local-fs-pre.target.wants/btrfs-dev-scan.service

[Unit]
Description=Btrfs scan devices
Before=local-fs-pre.target
DefaultDependencies=false

[Service]
Type=oneshot
ExecStart=/usr/bin/btrfs device scan

[Install]
WantedBy=local-fs-pre.target

DefaultDependencies=falseそうでなければ、ブーツが汚れてしまいます。 (Arch以外のユーザーは代わりbtrfsに配置できます)/sbin/usr/bin

これはフックで処理する必要がありますがbtrfs(後で見つけました)、まだ問題がある可能性があります。

しかし、他に質問があるかもしれません。これはDependency failed、一部の初期必須サービスが開始されなかったことを示します。それが何なのかわかりません。自分のことを確認し、依存関係のjournalctl -b苦情を検索する必要があります。一般的に、正確に何が欠けているかが記載されています。または、少なくとも一連の失敗した依存関係を取得します。依存関係の失敗は伝播する可能性があります...

systemd-analyze plot > boot.svgシーケンスが開始される順序を正確に生成して確認することもできます。何が間違っているかを推測できます。誰が誰を待っていますか?それにsystemctl --failed何と言ったの?

答え2

フックを追加することでmkinitcpio保証できます。

btrfs device scan

ルートファイルシステムをマウントする前に、起動中に実行されます。

/etc/mkinitcpio.conf行を修正して検索した後、先頭に配置してHOOKSこのbtrfsフックを含めることができますudev

修正後は必ずinitramfsを再生成してください。mkinitcpio -p linux

Arch Wikiでは実際にudevHookを使用することをお勧めしますが、私も同じ問題がありました。

関連情報