มีแอพพลิเคชั่น Deep Freeze-like สำหรับ Ubuntu หรือไม่?


10

ฉันต้องการทราบว่ามีทางเลือกอื่นสำหรับ Deep Freeze สำหรับ Linux ที่ยังอยู่ระหว่างการพัฒนาเพราะฉันได้อ่านบางสิ่งบนอินเทอร์เน็ตและดูเหมือนว่า บริษัท เดียวกันซึ่งพัฒนา Deep Freeze นั้นมีรุ่น Linux แต่ โครงการถูกยกเลิก


ทำไมคุณต้องการที่ ไม่อนุญาตให้ผู้ใช้ที่ไม่ใช่รูทเปลี่ยนไฟล์ระบบ
David Foerster

@DavidFoerster ฉันเพิ่งแก้ไขคำถามเพื่อตอบความเห็นของคุณ
Zignd

สวัสดีคุณสามารถลองใช้ทางเลือกนี้sourceforge.net/projects/dafturnofris-id

2
ผู้ใช้ "แขก" ปกติ (ไม่อยู่ในกล่อง) ผู้สร้างใน (ล่าสุด?) อูบุนตูถูกสร้างขึ้นทันทีมีที่อยู่อาศัย/tmpและทำความสะอาดหลังจากออกจากระบบ ... มันไม่เพียงพอหรือไม่
Rmano

คำตอบ:


8

OFRIS เป็นแอปพลิเคชั่นโอเพนซอร์ซที่สามารถหยุดการทำงานของลีนุกซ์ได้, มันเหมือนกับ Deep Freeze ในระบบปฏิบัติการ Microsoft Windows

สำหรับ Ubuntu เวอร์ชั่น 9.10, 10.04 และ 10.10 หากต้องการติดตั้ง OFRIS เพียงกดCtrl+ Alt+ Tบนแป้นพิมพ์เพื่อเปิด Terminal เมื่อเปิดขึ้นให้เรียกใช้คำสั่งด้านล่าง:

sudo add-apt-repository ppa:tldm217/tahutek.net -y
sudo apt-get update && sudo apt-get install ofris-en -y

สำหรับ Ubuntu รุ่น 11.04, 11.10, 12.04 และ 13.04 หากต้องการติดตั้ง OFRIS เพียงกดCtrl+ Alt+ Tบนแป้นพิมพ์เพื่อเปิด Terminal เมื่อเปิดขึ้นให้เรียกใช้คำสั่งด้านล่าง:

[คัดลอก fileformat]

if [ $(uname -m) == "x86_64" ]; then deb="http://goo.gl/DleLl"; else deb="http://goo.gl/V94Qs"; fi && wget -q $deb -O ofris.deb && sudo dpkg -i ofris.deb && rm ofris.deb

ภาพด้านล่างแสดง OFRIS ที่ทำงานบน 13.04

ป้อนคำอธิบายรูปภาพที่นี่

ที่มา: XGeek


ฉันติดตั้งโปรแกรมนี้ใน 15.10 จากนั้นฉันใช้ Freeze โดยกด 3 ยืนยันว่าระบบของฉันอยู่ในโหมดแช่แข็ง จากนั้นฉันรีบูตเครื่องฉันสร้างไฟล์ / var / tmp / myname ด้วยค่าจากนั้นอีกครั้งฉันรีบูตเครื่อง แต่ยังมีไฟล์อยู่ การแช่แข็งนี้เป็นอย่างไร

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

3

คำเตือน:ฉันได้ใช้งานโซลูชันนี้และใช้งานได้ แต่เวลาผสานเพื่อกลับไปที่สแน็ปช็อตอาจทำให้กระบวนการบู๊ตใช้เวลานานหากการเปลี่ยนแปลงขนาดใหญ่เกิดขึ้นกับระบบในระหว่างการบูตครั้งสุดท้าย ในช่วงระยะเวลารอนี้อาจปรากฏต่อผู้ใช้ว่าระบบหยุดทำงาน!

นอกจากนี้ระวังว่าใครก็ตามที่มีความรู้เพียงพอในการเมานต์สแนปชอตสามารถทำการเปลี่ยนแปลงสถานะ "แช่แข็ง" ได้ ฉันใช้ประโยชน์จากความเป็นไปได้นี้ในการอัปเดตระบบ "แช่แข็ง" แต่อีกครั้งสิ่งนี้สามารถเพิ่มเวลาที่ใช้ในการผสาน (เปลี่ยนกลับเป็น) ภาพรวม!


LVM snapshots + cron + script = สถานะ "แช่แข็ง"

ฉันเพิ่งเริ่มขุดเป็น LVM และมันเกิดขึ้นกับฉันที่หนึ่งสามารถสร้างสถานะ "แช่แข็ง" บนเครื่องโดยใช้ LVM และความสามารถในการจับภาพ แน่นอนวิธีนี้ต้องใช้ระบบที่กำหนดค่าโดยใช้ LVM (หรืออย่างน้อย LVM บนพาร์ติชั่นที่จะถูกแช่แข็ง)

สรุป:

  • ติดตั้งระบบบนพาร์ติชัน LVM ที่สำรองพื้นที่เพียงพอบน PV สำหรับสแน็ปช็อต
  • ให้ระบบกำหนดค่าตามที่คุณต้องการ
  • สร้างงาน cron ที่ทำงานเป็นรูทเมื่อบูตเพื่อรวมสแน็ปช็อตและสร้างสแน็ปช็อตใหม่เพื่อแทนที่งานที่ผสาน
  • การรีบูตที่ต่อเนื่องทั้งหมดจะเปลี่ยนกลับเป็นสแน็ปช็อต สแนปชอตทั้งหมดที่สร้างขึ้นมาจากระบบในสถานะที่คุณสร้างขึ้น
  • ในฐานะโบนัสที่เพิ่มเข้ามาภาพรวมสามารถติดตั้งและแก้ไขได้ (หากคุณมีสิทธิ์ใช้งานรูท) และสามารถอัปเดตสถานะ "แช่แข็ง" ได้หากต้องการ

หลักฐานของแนวคิด:ตรึงทุกอย่างยกเว้นหนึ่งพาร์ติชันจากการติดตั้งใหม่ทั้งหมด

การติดตั้ง:

  • บูตจากดิสก์ Ubuntu สด / USB และเลือกตัวเลือกเพื่อ "ลอง Ubuntu โดยไม่ต้องติดตั้ง" นี่เป็นสิ่งสำคัญสำหรับการกำหนดค่าพาร์ติชันด้วยตนเองด้วย LVM
  • เมื่อ Ubuntu โหลดพาร์ติชั่นดิสก์ของคุณโดยใช้เครื่องมือที่คุณเลือกเพื่อให้มีพาร์ติชั่นหนึ่งตัวที่ใช้พื้นที่ทั้งหมดของไดรฟ์ นี่คือสิ่งที่ฉันทำงานกับ:
    • /dev/sda (ขนาด 1T)
      • /dev/sda1 (ขนาด 1T)
  • ถัดไปในชุดขั้วขึ้น LVM /dev/sda1บน ฉันจะทำให้ระบบส่วนใหญ่ในพาร์ติชันเดียว แต่คุณไม่ต้อง
    • sudo pvcreate /dev/sda1
    • sudo vgcreate ubuntu-vg /dev/sda1
    • sudo lvcreate -n swap -L 1G ubuntu-vg
    • sudo lvcreate -n unfrozen -L 10G ubuntu-vg
    • sudo lvcreate -n root -l +50%free ubuntu-vg
  • ทีนี้ถ้าคุณต้องวิ่งsudo vgsตามด้วยsudo lvsคุณควรจะเห็นว่าจำนวนของพื้นที่ว่างที่เหลืออยู่ในกลุ่มวอลุ่ม "ubuntu-vg" (VFree ภายใต้เอาต์พุต vgs) เท่ากับจำนวนพื้นที่ที่ถ่ายโดยโลจิคัลวอลุ่ม "รูท" "(LSize ภายใต้เอาท์พุท lvs) ในกรณีของฉันฉันมี 506.44g ฟรีใน ubuntu-vg และพาร์ทิชันรูทของฉันมีขนาดใหญ่ 506.44g หากพื้นที่ว่างที่เหลืออยู่ในกลุ่มวอลุ่มเท่ากับขนาดของพาร์ติชันที่ฉันต้องการจะแช่แข็งฉันควรจะล้างพาร์ติชั่นทั้งหมดและยังสามารถกู้คืนได้ด้วยการรีบูต ออกจากส่วนที่เหลือของพื้นที่ว่างใน ubuntu-vg ที่ไม่ได้ใช้ตอนนี้ เราจะใช้มันในภายหลัง
  • ตอนนี้ติดตั้ง Ubuntu โดยใช้การแบ่งพาร์ติชันด้วยตนเอง image.png
  • เมื่อการติดตั้งเสร็จสิ้นแล้วให้ทำการรีบูตระบบที่เพิ่งติดตั้งใหม่
  • เมื่อบูทเข้าสู่ระบบใหม่ให้กำหนดค่าเพื่อให้เป็นไปตามที่คุณต้องการเมื่อคอมพิวเตอร์บูทในแต่ละครั้ง
    • หากคุณไม่ได้ตั้งใจเปลี่ยนสแน็ปช็อตและคุณไม่ต้องการให้สแนปชอตพาร์ติชันปรากฏในแถบเมนู ...
      • mkdir /steady
      • แก้ไข/etc/fstabโดยการเพิ่ม (นี่คือทั้งหมดหนึ่งบรรทัด) /dev/ubuntu-vg/steadystate /steady ext4 defaults,ro,nofail 0 1เป็นบรรทัดสุดท้ายของไฟล์
    • เนื่องจากสิ่งต่าง ๆ เช่นการอัพเดตจะถูกพัดหายไปในการรีบูตแต่ละครั้งคุณจึงอาจต้องการปิด
    • หากคุณมีพาร์ติชั่น unfrozen เหมือนของฉันที่ / unfrozen อย่าลืมที่จะเข้าถึงผู้ใช้ที่ต้องการเข้าถึงมัน
  • เมื่อคุณกำหนดค่าระบบตามที่คุณต้องการแล้วให้สร้างสคริปต์ต่อไปนี้ (คุณต้องมีสิทธิ์ใช้งานรูท) และบันทึกเช่นเดียว/root/steadystate.shกับโปรแกรมแก้ไขที่คุณชื่นชอบ โปรดทราบว่าหากคุณเปลี่ยนชื่อกลุ่มวอลุ่มเมื่อตั้งค่า LVM คุณจะต้องอัปเดตในสคริปต์ด้านล่างเช่นกัน
    #!/bin/bash
    LOG=/dev/kmsg

    # wait for merge in progress
    echo -n "Reverting to snapshot if present... " | tee -a $LOG
    merging=1
    while [ "$merging" == "1" ];
    do
        /usr/sbin/service lightdm stop #prevent the auto-login/login screen from loading
        [ "$(sudo lvs -a | grep steadystate)" == "" ] && merging=0
        sleep 1
    done

    # create snapshot
    echo -n "Creating new snapshot... " | tee -a $LOG
    /sbin/lvcreate -s -n steadystate -l +100%free /dev/ubuntu-vg/root

    # make sure root comes online before trying to merge
    while [ ! -e /dev/mapper/ubuntu--vg-root];
    do
        sleep .5;
    done
    echo -n "Scheduling reset to snapshot... " | tee -a $LOG
    /sbin/lvconvert --merge /dev/ubuntu-vg/steadystate

    echo -n "Starting lightdm... " | tee -a $LOG
    /usr/sbin/service lightdm start
  • ในที่สุดรันsudo crontab -eเลือกเอดิเตอร์และวาง@reboot /bin/bash /root/steadystate.shที่ส่วนท้ายของไฟล์ บันทึกและปิด ( Ctrl+ X; คำตอบYเพื่อบันทึก)
  • รีบูทและคุณควรมีระบบที่ถูกแช่แข็งยกเว้นพาร์ติชั่นที่เมาท์ที่ / unfrozen

วิธีนี้ใช้งานได้เนื่องจากสแน็ปช็อตถูกสร้างขึ้นในเวลาบูตและแม้ว่าเราจะส่งคำสั่งเพื่อรวมสแน็ปช็อตทันทีหลังจากนั้นสแน็ปช็อตจะไม่สามารถผสานได้ในขณะที่โลจิคัลวอลุ่มสำหรับรูทใช้งานอยู่ ดังนั้นจึงเลื่อนการดำเนินการผสานออกไปจนกว่าจะมีการเปิดใช้งาน / dev / ubuntu-vg / root ครั้งถัดไปซึ่งเป็นการรีบูตครั้งถัดไป การดำเนินการนี้จะถูกเรียกใช้หากระบบถูกบูตจาก USB สด

เพียงเพื่อเตะฉันไปหลังจากรีบูตและวิ่งsudo apt remove --purge firefox* libreoffice-* unity*ซึ่งปกติฉันจะไม่แนะนำให้ทำเพราะมันลบบางโปรแกรมที่มีประโยชน์และทำให้ระบบในสิ่งที่อาจจะน้อยกว่ารัฐที่ต้องการ! broken.png ระบบจะไม่ปิดการทำงานอย่างถูกต้องจาก GUI ดังนั้นหนึ่งจะแก้ไขได้อย่างไร Reboot! rebooted.png เมื่อรีบูตเครื่องทุกอย่างกลับเป็นระเบียบเรียบร้อย Firefox, LibreOffice และ Unity ล้วน แต่กลับมาอยู่ในจุดที่ตนเป็นเจ้าของ

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

หากคุณต้องการที่จะทำการเปลี่ยนแปลงคุณสามารถ (อีกครั้ง) เมานต์สแน็ปช็อตด้วยสิทธิ์ rw แล้ว chroot ไปที่มันและทำการเปลี่ยนแปลงใด ๆ ที่คุณต้องการที่จะยังคงอยู่อย่างถาวร มันไม่ได้ไร้ที่ติ แต่มันเป็นข้อพิสูจน์ถึงแนวคิด


1

ตามค่าเริ่มต้นอูบุนตูและ Unices อื่น ๆ ส่วนใหญ่จะปฏิเสธผู้ใช้ทั่วไป (นักเรียน, แขก) ที่เขียนการเข้าถึงไฟล์ระบบ เฉพาะผู้ดูแลระบบที่ได้รับอนุญาตอย่างถูกต้อง (ชื่อผู้ใช้และรหัส) สามารถติดตั้งซอฟต์แวร์เปลี่ยนการตั้งค่าระบบหรือลบพาร์ติชัน

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

หากคุณต้องการความมั่นใจเป็นพิเศษให้ติดตั้งพาร์ติชันระบบแบบอ่านอย่างเดียวและวางพาร์ติชันaufs ไว้เหนือพาร์ติชันนั้นเพื่อบันทึกการเปลี่ยนแปลงในหน่วยความจำหลัก


1

fsprotect เป็นชุดของสคริปต์ที่ป้องกันระบบไฟล์ที่มีอยู่ fsprotect นั้นยอดเยี่ยมสำหรับคอมพิวเตอร์สาธารณะเช่นในห้องสมุดอินเทอร์เน็ตคาเฟ่เป็นต้น

การใช้ auf พวกมันจะบรรจุระบบไฟล์ tmpfs เพื่อบังคับให้การเปลี่ยนแปลงถูกเขียนไปยังระบบไฟล์ tmpfs

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

หากต้องการติดตั้ง fsprotect ใน Ubuntu ทุกรุ่นที่รองรับในปัจจุบันให้เปิดเทอร์มินัลแล้วพิมพ์:

sudo apt-get install fsprotect

ประโยชน์ของการใช้ fsprotect คือ:

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

ข้อเสียของการใช้ fsprotect คือ:

  • การเปลี่ยนแปลงระบบไฟล์ต้องไม่เกินขีด จำกัด ที่กำหนดไว้ล่วงหน้าเป็นไบต์ (กำหนดโดยคุณ)
  • เนื่องจากมีการใช้ tmpfs อย่างหนักคุณต้องมีพื้นที่สว็อปเพียงพอ

การติดตั้งล้มเหลวบน Ubuntu 16.04.2 ปัญหาคือการอ้างอิงที่ไม่ดีtouchในสคริปต์ initram มันชี้ไปมากกว่า/usr/bin/touch /bin/touchสิ่งนี้สามารถบังคับให้ทำงานได้ แต่แม้เมื่อติดตั้งแล้วเครือข่ายจะหยุดทำงาน
b_laoshi

เครือข่ายหยุดทำงานอาจเป็นเพราะคุณใช้เคอร์เนลไม่ดีหรือเคอร์เนลโดยไม่มีไฟล์ส่วนหัว เมื่อคอมพิวเตอร์รีบูตรอจนกระทั่งหน้าจอเริ่มต้นของผู้ผลิตหายไปจากนั้นกดปุ่ม Shift เพื่อแสดงตัวเลือกการบูต GRUB จากหน้าจอ GRUB สีม่วงเลือกตัวเลือกขั้นสูงสำหรับ Ubuntuและกด Enter หน้าจอสีม่วงใหม่จะปรากฏขึ้นเพื่อแสดงรายการของเมล็ด เลือกเคอร์เนลอื่นแล้วกด Enter
karel

เป็นการติดตั้งใหม่พร้อมการอัปเดตทั้งหมด ฉันลองเคอร์เนลเก่าและในตอนแรกมันบู๊ตด้วยเครือข่าย แต่แล้วฉันก็รู้ว่า fsprotect ไม่ได้รวมอยู่ในเคอร์เนลเก่า ฉันอัปเดตทุกเมล็ดและตอนนี้ฉันไม่มีเครือข่ายเมื่อฉันบูตจากเคอร์เนล
b_laoshi

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