การติดตั้งพาร์ติชันเป็น 'sandbox'


9

ฉันสงสัยว่ามันเป็นไปได้ไหม ฉันต้องการตั้งค่าระบบ linux ที่ติดตั้ง/เครื่อง linux ระยะไกล/บนเครื่องท้องถิ่น อย่างไรก็ตามฉันต้องการให้การเปลี่ยนแปลงทั้งหมดในเครื่องท้องถิ่นถูกบันทึกลงในหน่วยความจำเพื่อไม่ให้ส่งผลกระทบต่อเครื่องระยะไกล เป็นการดีที่การเปลี่ยนแปลงจะไม่ถูกเขียนขึ้นดังนั้นเมื่อฉันรีบูตมันจะติดตั้ง/พาร์ติชั่นดั้งเดิมอีกครั้งโดยไม่คำนึงถึงการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นในช่วงเซสชั่นก่อนหน้า

เป็นไปได้ไหม?


ฉันไม่ได้ไปรอบ ๆ เพื่อทดสอบคำตอบของพวกคุณเลยยากที่จะเลือก 1 ข้อเพื่อเลือกวิธีแก้ปัญหา ดังนั้นฉันจะยกระดับพวกคุณทุกคน
Falmarri

คำตอบ:


7

ใช้ unionfs , aufs (ทั้งสองเป็น patch ภายนอกสำหรับเคอร์เนล) หรือunionfsfuse / funionfs (ใช้ FUSE) และสร้าง union โดยทำเครื่องหมายภายนอก / เป็น RO และระบบไฟล์ภายใน (ติดตั้งเป็น tmpfs / ramfs / พาร์ติชันเพิ่มเติมซึ่งถูกล้างในแต่ละครั้ง)

คุณสามารถใช้ระบบไฟล์หรือ LVM ด้วยสแนปชอตก็ได้ จากนั้นจะมีการเขียนการเปลี่ยนแปลง แต่คุณสามารถล้างข้อมูลสแน็ปช็อตในการบู๊ตแต่ละครั้ง


หรือใครสามารถใช้ประโยชน์จากคุณสมบัติการเพาะของ btrfs (ชี้ให้เห็นที่ < en.wikipedia.org/wiki/Btrfs#cite_ref-16> ) - เพื่อ seed fs อ่าน - เขียนที่มีฐานอ่านอย่างเดียว ถ้าฐาน fs เป็น btrfs ...
imz - Ivan Zakharyaschev

5

มีหลายวิธีที่จะไปเกี่ยวกับเรื่องนี้ การตั้งค่าที่ง่ายที่สุดจะใช้ระบบไฟล์รวมซึ่งแสดงมุมมองเดียวของต้นไม้ไดเรกทอรีสอง A และ B ดังนั้นการเปลี่ยนแปลงทั้งหมดจะถูกบันทึกไว้ที่ B ในกรณีของคุณ A จะเป็นจุดเมานต์ NFS / Samba / sshfs / … และ B จะเป็นไดเรกทอรีว่างเปล่าเริ่มต้นในระบบไฟล์ tmpfs

ลินุกซ์ไม่ได้มีในเคอร์เนลสหภาพระบบแฟ้ม แต่มีหลายFUSEการใช้งาน: funionfs , Unionfs ฟิวส์


3

หาก / เหมาะสมกับ RAM ของเครื่องโลคัลและออกจากพื้นที่เพียงพอสำหรับการรันแอปพลิเคชันแนวคิดพื้นฐานน่าจะเป็นการบูตระบบ Linux ขั้นต่ำบนเครื่องเป้าหมายแล้วสร้างดิสก์เสมือน ramfs โดยอัตโนมัติคัดลอก / จากระยะไกลลงในนั้น chroot เป็นใหม่ / หาก RAM ไม่เพียงพอคุณสามารถทำตามขั้นตอนเดียวกันได้ แต่ไม่ใช้ ramfs แต่เป็นพาร์ติชั่นดิสก์จริงที่มีเนื้อหาที่คุณต้องลบทิ้งก่อนทำการคัดลอก แทนที่จะล้างและทำสำเนาเต็มคุณสามารถใช้ rsync พร้อมตัวเลือกที่เหมาะสม


1

คุณสามารถไปได้Btrfsและเป็นคุณสมบัติ Copy-on-Write (CoW)

สิ่งที่คุณอาจกำลังมองหามีการอธิบายไว้ในBtrfs Wikiเป็นSeed-device :

แนวคิดพื้นฐานคือการสร้างพาร์ติชันที่มีข้อมูลดั้งเดิมเป็นแบบอ่านอย่างเดียวแทนที่จะ "เพิ่มเลเยอร์เพิ่มเติมที่ด้านบนของมัน" ซึ่งเป็นพาร์ติชันที่เขียนได้อื่น (คุณสามารถสร้างมันใน RAM เช่นบน/dev/shm) และติดตั้ง

btrfstune -S 1 /dev/RO #make it read-only
mount /dev/RO /mnt/temp
btrfs device add /dev/RW /mnt/temp
umount /mnt/temp

และจากช่วงเวลานั้นทุกครั้งที่คุณขี่

mount /dev/RW /mnt/test

การเปลี่ยนแปลงจะถูกบันทึกใน / dev / RW ในขณะที่ / dev / RO ยังคงไม่ถูกแตะต้อง

(ตัวอย่างอ้างอิงจากวิกิ )


0

สิ่งนี้สามารถเก็บถาวรได้ง่ายด้วยการบูต PXE ฉันใช้ระบบ xbmc สดผ่าน pxe tftp nfs boot การเปลี่ยนแปลงถูกเขียนด้วยการแบ่งปัน COW เป็น NFS

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