이전 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
이는 명시적 설정으로 재정의될 수 있습니다.