이것은 이것과 관련이 있습니다질문. 내 노트북에는 Fedora 32가 설치된 3개의 하드 드라이브가 있습니다 /dev/sdb
. /dev/sda
이는 /dev/sdc
ext4 형식의 추가 저장소일 뿐입니다. 이제 각 부팅은 1분 이상 걸리지만 Fedora 31에서는 20초도 채 걸리지 않습니다. 원인은 부팅 시간이 너무 길기 때문인 것 같습니다 lvm2-monitor.service
. journalctl
보여주다:
-- Reboot --
Jun 09 01:36:48 localhost.localdomain lvm[696]: WARNING: Device /dev/sda not initialized in udev database even after waiting 10000000 microseconds.
Jun 09 01:36:58 localhost.localdomain lvm[696]: WARNING: Device /dev/sda1 not initialized in udev database even after waiting 10000000 microseconds.
Jun 09 01:37:18 localhost.localdomain lvm[696]: 3 logical volume(s) in volume group "fedora_localhost-live" monitored
Jun 09 01:37:18 localhost.localdomain systemd[1]: Finished Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling.
그렇다면 재부팅 후에도 작동하는 udev 데이터베이스에 블록을 수동으로 추가하려면 어떻게 해야 합니까?
답변1
이것은 LVM의 알려진 버그입니다. 루트 다이어그램다음과 같은 솔루션이 제안됩니다.:
- 위에 표시된 대로 vgscan을 사용하십시오(가장 쉬운 솔루션).
- /dev/VG/root를 사용하는 대신 UUID 또는 레이블로 설치하십시오. findfs가 /dev/dm-42에 만족하기 때문에 작동합니다.
- -udev USE 플래그를 사용하여 LVM 바이너리를 빌드합니다(특히 initramfs의 경우!)
- initramfs에 최소한의 /etc/lvm/lvm.conf를 포함하여 udev 종속성을 비활성화합니다.
`/usr/src/initramfs/etc/lvm/lvm.conflvm.conf에서 udev 비활성화
devices {
# Disable scanning udev for md/multipath components.
# This is required with recent versions of lvm2, even if you use another solution for
# your LV device nodes; without it lvm commands will stall for minutes waiting for udev.
multipath_component_detection = 0
md_component_detection = 0
}
activation {
# Set to 0 to disable udev synchronisation (if compiled into the binaries).
udev_sync = 0
# Set to 0 to disable the udev rules installed by LVM2
udev_rules = 0
}