두 개의 운영 체제를 사용하는 대체 ZFS 풀

두 개의 운영 체제를 사용하는 대체 ZFS 풀

이전 Ubuntu 설치에서 새 설치로 전환 중입니다. 전환할 때 이전 운영 체제와 새 운영 체제에서 동일한 풀을 사용할 수 있기를 바랍니다.

새 운영 체제는 다른 디스크에 있습니다. 부팅 시 운영 체제를 선택합니다. 주어진 시간에 하나의 운영 체제만 풀을 사용합니다.

이것이 가능한가? 데이터가 손상되거나 전체 풀이 손실될 위험이 있습니까?

답변1

종료 중에 풀을 내보내고 한 번에 하나의 시스템에서만 사용되는 한,논의하는 내용에는 문제가 없어야 합니다.

ZFS 정말 정말진짜-o readonly=on읽기 전용 모드( 주어진 ) 에서도 동시에 여러 시스템의 동일한 풀을 사용하는 팬은 아니지만 zpool import이는 귀하의 경우에는 적용되지 않는 것 같습니다.

두 버전 간의 호환성을 유지하려면 다음 사항을 확실히 해야 합니다.아니요최신 설치에서 실행 zpool upgrade하거나 특히 실행하십시오. zfs upgrade이들 중 하나는 이전 설치를 실행할 때 풀 또는 파일 시스템 액세스가 손실될 수 있지만 업그레이드된 ZFS 디스크 버전을 지원하는 시스템을 실행할 때는 풀 또는 파일 시스템이 손실되지 않습니다.

업그레이드가 완료되면 필요에 따라 zpool upgrade풀을 최신 디스크 형식 및 기능으로 사용 및/또는 업그레이드 할 수 있습니다 zfs upgrade.

답변2

풀에서 시스템 루트를 실행하는 대신 풀을 데이터 저장소로 사용하는 것에 대해 이야기한다고 가정하면 괜찮습니다.

현재 두 개의 시스템이 설치되어 있습니다. 하나는 EXT4 파티션에, 다른 하나는 EXT4 파티션에 있습니다 sudo zfs set mountpoint=/ tank/my/dataset. EXT4 시스템에서 이 풀에 액세스하는 것은 루트 디렉터리에 마운트할 방법이 없기
때문에 어렵습니다 . zfs mount -a그래서 세 가지 방법을 제시합니다.

두 방법 모두 풀을 자동으로 탑재하지 않고 가져와야 합니다.

sudo zpool import tank -N

가) 속성 수정

sudo mkdir /mnt/mydataset
sudo zfs set mountpoint=/mnt/mydataset tank/my/dataset
sudo zfs mount tank/my/dataset
# [do stuff in /mnt/mydataset]
# ...
sudo zfs unmount tank/my/dataset
# restore mountpoint so that the other system is able to boot from it
sudo zfs set mountpoint=/ tank/my/dataset

나) 피하라zfs mount

마운트 지점을 앞뒤로 설정하는 것이 귀찮다면 다음 방법도 효과가 있다는 것을 알았습니다. 이것이 얼마나 해킹되었는지 보장할 수 없습니다.

sudo mkdir /mnt/mydataset
sudo mount -t zfs -o zfsutil tank/my/dataset /mnt/mydataset
# [do stuff in /mnt/mydataset]
# ...
sudo umount /mnt/mydataset

이 옵션 B) chroot를 사용한 다음 다른 시스템에서 zfs 명령을 사용할 때 /mnt/mydataset몇 가지 문제가 있다는 점에 유의하십시오. 이 질문들이 관련이 있는지 모르겠습니다. 그런 짓만 안 하면 괜찮을 것 같아요.

다) 대체근

altroot풀에 대한 속성을 지정할 수 있습니다 .

대체 루트
대체 루트 디렉터리. 설정된 경우 이 디렉터리는 풀의 탑재 지점 앞에 추가됩니다. 이 기능은 마운트 지점을 신뢰할 수 없는 알 수 없는 풀을 확인할 때 또는 일반적인 경로가 유효하지 않은 대체 부팅 환경에서 사용할 수 있습니다.
altroot영구 속성이 아닙니다. 시스템이 시작될 때만 유효합니다. altroot 설정은 기본적으로 를 사용하는 것으로 설정되지만 cachefile = none이는 명시적 설정으로 재정의될 수 있습니다.

관련 정보