"mount -t zfs -fw"는 ZFS 볼륨을 100% 마운트할 수 없습니다.

"mount -t zfs -fw"는 ZFS 볼륨을 100% 마운트할 수 없습니다.

실제로 매일 작동하는 FreeBSD 13.1-RELEASE 시스템이 ZFS 디스크 ada0에 설치되어 있습니다.

=>       40  976773088  ada0  GPT  (466G)

         40     532480     1  efi  (260M)

     532520       1024     2  freebsd-boot  (512K)

     533544        984        - free -  (492K)

     534528    4194304     3  freebsd-swap  (2.0G)

    4728832  972044288     4  freebsd-zfs  (464G)

  976773120          8        - free -  (4.0K)

대신 ada2 디스크에 ada0 드라이브에 설치된 대부분의 서비스와 애플리케이션을 설치했으며 때로는 이 시스템으로 전환합니다(13.1-RELEASE와 동일하지만 UFS2 fs에 있음).

=>       40  625142368  ada2  GPT  (298G)

         40     532480     1  efi  (260M)

     532520  616030208     2  freebsd-ufs  (294G)

  616562728    8388608     3  freebsd-swap  (4.0G)

  624951336     191072        - free -  (93M)

때때로 디스크 ada2에 설치된 시스템에 있을 때 /dev/ada0p4(디스크 ada0의 FreeBSD-ZFS)에 설치된 시스템의 루트 파티션을 마운트하고 싶을 때가 있습니다. 이를 위해 다음 명령을 사용합니다:

zfs mount -a
mount -t zfs -fw zroot/ROOT/31-03-2022-b /mnt/freebsd-zfs

문제는 무엇입니까? 문제는 여러 번 작동하지만 매번 작동하는 것은 아니며 그 이유를 이해할 수 없다는 것입니다. 때로는 지금처럼 다음과 같은 오류가 발생합니다. 100% 작동하도록 ZFS 파티션을 마운트하는 더 안전한 방법이 있습니까? 감사해요.

mount: zroot/ROOT/31-03-2022-b: No such file or directory

업데이트: 이것을 시도했는데 거의 효과가 있었지만 불행하게도 디스크에 저장된 모든 파일과 폴더가 표시되지는 않습니다.

# zpool import -f -R /mnt/freebsd-zfs zroot 
ls /mnt/freebsd-zfs tmp   
usr    var    zroot

이것도 작동하지 않습니다.

# zpool import -f -R /mnt/freebsd-zfs zroot/ROOT/31-03-2022-b 
cannot import 'zroot/ROOT/31-03-2022-b': no such pool available

"zroot/ROOT/31-03-2022-b" 경로를 마운트하고 싶습니다:

# sudo zfs list

NAME                      USED  AVAIL     REFER  MOUNTPOINT  

zroot                     216G   230G       96K  /mnt/freebsd-zfs/zroot
zroot/ROOT                203G   230G       96K  none
zroot/ROOT/31-03-2022-a   512K   230G     43.4G  /mnt/freebsd-zfs
zroot/ROOT/31-03-2022-b   203G   230G      175G  /mnt/freebsd-zfs
zroot/tmp                10.6M   230G     10.6M  /mnt/freebsd-zfs/tmp
zroot/usr                11.7G   230G       96K  /mnt/freebsd-zfs/usr
zroot/usr/home            192K   230G      192K  /mnt/freebsd-zfs/usr/home
zroot/usr/ports          8.33G   230G     8.33G  /mnt/freebsd-zfs/usr/ports
zroot/usr/src            3.36G   230G     3.36G  /mnt/freebsd-zfs/usr/src
zroot/var                1.26G   230G       96K  /mnt/freebsd-zfs/var
zroot/var/audit            96K   230G       96K  /mnt/freebsd-zfs/var/audit
zroot/var/crash          1.11G   230G     1.11G  /mnt/freebsd-zfs/var/crash
zroot/var/log            3.59M   230G     3.59M  /mnt/freebsd-zfs/var/log
zroot/var/mail            130M   230G      130M  /mnt/freebsd-zfs/var/mail
zroot/var/tmp            18.1M   230G     18.1M  /mnt/freebsd-zfs/var/tmp

답변1

altroot수영장의 속성을 다음으로 설정해 보세요 ./mnt/freebsd-zfs 앞으로가져오거나 zfs mount데이터 세트를 가져오세요.

에서 man zpoolprops:

altroot

대체 루트 디렉터리. 설정된 경우 이 디렉터리는 풀의 탑재 지점 앞에 추가됩니다. 이 기능은 마운트 지점을 신뢰할 수 없는 알 수 없는 풀을 확인할 때 또는 일반적인 경로가 유효하지 않은 대체 부팅 환경에서 사용할 수 있습니다.

altroot영구 속성이 아닙니다. 시스템이 시작될 때만 유효합니다.

명시적 설정을 사용하여 재정의할 수 있지만 설정의 altroot기본값은 을 사용하는 것입니다.cachefile=none

"라고 적혀 있으니 참고하세요.영구 속성이 아님풀을 가져오고 해당 데이터 세트를 ufs2 부트 환경에 마운트하려고 할 때마다 이 작업을 수행해야 합니다.

관련 정보