ย้ายการติดตั้ง Linux โดยใช้ btrfs บน subvolume เริ่มต้น (subvolid = 0) ไปยัง subvolume อื่น


15

เมื่อทำการติดตั้งกับระบบไฟล์รูท btrfs ลีนุกซ์หลายรุ่นจะถูกติดตั้งไปยังซับวูฟเฟอร์เริ่มต้น หากไม่มีการแก้ไขเลย์เอาต์นี้จะบังคับให้สแนปชอตหรือไดรฟ์ย่อยที่จะสร้างภายในระบบไฟล์รูทซึ่งอาจไม่เป็นที่ต้องการ อีกรูปแบบที่เป็นไปได้คือการมีซับวูฟเฟอร์เริ่มต้นมีsnapshotsไดเรกทอรีและrootfsซับโวลูมซึ่งเป็นระบบไฟล์รูท ฉันจะเปลี่ยนการติดตั้ง btrfs เริ่มต้น distro เพื่อใช้รูปแบบ subvolume นี้โดยไม่ต้องทำการบูทจาก livecd ได้อย่างไร?

คำตอบ:


15

ก่อนอื่นเราจะสร้างเลย์เอาต์ที่เราต้องการใน subvolume เริ่มต้น:

btrfs subvolume snapshot / /rootfs
mkdir /snapshots

โปรดทราบว่า/rootfsจะเป็นระบบไฟล์รูทใหม่ของเราดังนั้นอย่าทำการเปลี่ยนแปลงใด ๆ กับไฟล์ปัจจุบันหลังจากขั้นตอนนี้

แก้ไข/rootfs/etc/fstabเพื่อให้ระบบใช้รูทีนย่อย rootfs ใหม่เป็นระบบไฟล์รูท เพื่อที่คุณจะต้องแก้ไขมันเพื่อรวมsubvol=rootfsตัวเลือก

ติดตั้งระบบไฟล์รูทใหม่ของเราที่ใดก็ได้ติดตั้งระบบไฟล์ที่เกี่ยวข้อง (dev, sys, proc, boot หากคุณมี), chroot ไปที่มันและอัพเดตด้วง:

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

แค่นั้นแหละ. รีบูทและระบบไฟล์รูทของคุณควรเป็นรูตย่อยรูท หากสิ่งนี้สำเร็จก็ไม่ควรมีไดเรกทอรีใด ๆ / snapshots ตอนนี้คุณสามารถลบเนื้อหาของระบบไฟล์รูทเก่าใน subvolume เริ่มต้น

หากคุณต้องการคุณสามารถสร้างจุดเชื่อมต่อถาวรสำหรับไดรฟ์ย่อยเริ่มต้น:

mkdir /media/btrfs/root

จากนั้นคุณสามารถmount -o subvolid=0 /dev/sdXX /media/btrfs/rootและสร้างสแน็ปช็อต / ไดรฟ์ย่อย


1
นอกจากนี้ทราบว่าแทนการติดตั้งและการปรับปรุง chrooting ด้วงคุณสามารถเพียงแค่ตั้ง subvolume เริ่มต้นที่จะ rootfs btrfs subvolume set-default ID /กับ IDสามารถพบได้โดยใช้ `btrfs subvolume list /
goncalopp

ฉันเพิ่มsubvol=/rootfs(หมายเหตุ/) เพื่อfstabเป็นที่ดูเหมือนว่าจะเป็น 'เหมาะสม' วิธีการที่อธิบายไว้ใน (btrfs วิกิพีเดีย) [ btrfs.wiki.kernel.org/index.php/Mount_options]
go2null

@ go2null ปัญหาการใช้งานsubvol=/rootfsคือโปรแกรมใด ๆ ที่ไม่ทราบถึงเลย์เอาต์ของคุณ (ตัวอย่างเช่นตัวติดตั้ง distro) จะทำการติดตั้ง subvolume เริ่มต้นแทน หากโปรแกรมคาดหวังว่าระบบไฟล์จะดูเหมือนระบบไฟล์ linux ถ้าจะล้มเหลวหรือแย่กว่านั้น - เติมซับวูฟเฟอร์เริ่มต้นของคุณด้วยสิ่งที่คุณไม่ต้องการ
goncalopp

อืมจะมีความคิดว่า progs ที่ยุ่งกับระบบไฟล์อย่างน้อยจะตรวจสอบfstabหรือกำหนดค่า bootloader
go2null
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.