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 사용을 권장하지만, 저도 같은 문제가 있어서 이렇게 해결했습니다.

관련 정보