기본 하위 볼륨 (subvolid = 0)에서 btrfs를 사용하여 Linux 설치를 다른 하위 볼륨으로 이동


15

루트 btrfs 파일 시스템에 설치하면 많은 Linux 배포판이 기본 하위 볼륨에 설치됩니다. 수정하지 않은 상태로두면이 레이아웃은 모든 스냅 샷 또는 하위 볼륨이 루트 파일 시스템 내에 작성되도록하므로 바람직하지 않을 수 있습니다. 또 다른 가능한 레이아웃은 기본 하위 볼륨에 snapshots디렉토리와 rootfs하위 파일 (루트 파일 시스템)이 포함되도록하는 것입니다. livecd에서 부팅하지 않고이 하위 볼륨 레이아웃을 사용하도록 distro-default btrfs 설치를 어떻게 변경합니까?

답변:


15

먼저 기본 하위 볼륨에서 원하는 레이아웃을 만듭니다.

btrfs subvolume snapshot / /rootfs
mkdir /snapshots

/rootfs우리의 새로운 루트 파일 시스템이 될 것이다, 그래서이 단계 이후의 현재를 변경하지 않습니다.

/rootfs/etc/fstab시스템이 새로운 rootfs 서브 볼륨을 루트 파일 시스템으로 사용하도록 편집하십시오 . 이를 위해서는 subvol=rootfs옵션 을 포함하도록 수정해야합니다 .

새 루트 파일 시스템을 어딘가에 마운트하고 관련 파일 시스템 (dev, sys, proc, 부트가있는 경우 부트)을 마운트 한 후 chroot하고 grub을 업데이트하십시오.

mount -o subvol=rootfs /dev/sdXX /media/temporary
cd /media/temporary
mount -o bind /dev  dev
mount -o bind /sys  sys
mount -o bind /proc proc
mount -o bind /boot boot
chroot .
update-grub
exit

그게 다야. 재부팅하면 루트 파일 시스템은 rootfs 하위 볼륨이어야합니다. 이것이 성공하면 / snapshots 디렉토리가 없어야합니다. 이제 기본 하위 볼륨에서 이전 루트 파일 시스템의 내용을 삭제할 수 있습니다.

원하는 경우 기본 하위 볼륨에 대한 영구 마운트 지점을 만들 수 있습니다.

mkdir /media/btrfs/root

그런 다음 mount -o subvolid=0 /dev/sdXX /media/btrfs/root스냅 샷 / 하위 볼륨을 만들 수 있습니다 .


1
또한 grub을 마운트, chrooting 및 업데이트하는 대신 기본 하위 볼륨을 rootfs로 간단히 설정할 수 있습니다 btrfs subvolume set-default ID /. ID`btrfs subvolume list /
goncalopp

I 첨가 subvol=/rootfs(참고를 /위해) fstab즉 (btrfs를 위키)에 기재된 바와 같이 "적절한"방법이 보인다 btrfs.wiki.kernel.org/index.php/Mount_options] .
go2null

@ go2null 사용의 문제는 subvol=/rootfs레이아웃을 모르는 프로그램 (예 : 디스트로 설치 프로그램)이 기본 하위 볼륨을 대신 마운트한다는 것입니다. 프로그램이 파일 시스템이 리눅스 파일 시스템처럼 보일 것으로 예상한다면 실패하거나 더 나빠질 것입니다-원하지 않는 것들로 기본 하위 볼륨을 채우십시오
goncalopp

흠, 파일 시스템을 어지럽히는 프로그램은 최소한 fstab부트 로더 설정을 확인 하거나 할 것이라고 생각했을 것 입니다.
go2null
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.