Apakah ada aplikasi Deep Freeze-like untuk Ubuntu?

10

Saya ingin tahu apakah ada alternatif untuk Deep Freeze untuk Linux yang masih dalam pengembangan, karena saya sudah membaca beberapa hal di internet dan sepertinya perusahaan yang sama yang mengembangkan Deep Freeze memiliki versi Linux, tetapi proyek dihentikan.

Zignd
sumber
Mengapa Anda ingin itu? Hanya saja, jangan izinkan pengguna non-root untuk mengubah file sistem.
David Foerster
@ DavidFoerster Saya baru saja mengedit pertanyaan untuk menjawab komentar Anda.
Zignd
2
Pengguna "guest" yang normal (out-of-the-box) di (baru-baru ini?) Ubuntu dibuat on-the-fly, memiliki rumah mereka /tmp, dan dibersihkan setelah keluar ... tidakkah ini cukup?
Rmano

Jawaban:

8

OFRIS adalah aplikasi open source yang dapat membekukan Linux Anda, seperti Deep Freeze di sistem operasi Microsoft Windows.

Untuk Ubuntu versi 9.10, 10.04 dan 10.10. Untuk menginstal OFRIS, cukup tekan Ctrl+ Alt+ Tdi keyboard Anda untuk membuka Terminal. Saat terbuka, jalankan perintah di bawah ini:

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

Untuk versi Ubuntu 11.04, 11.10, 12.04, dan 13.04. Untuk menginstal OFRIS, cukup tekan Ctrl+ Alt+ Tdi keyboard Anda untuk membuka Terminal. Saat terbuka, jalankan perintah di bawah ini:

[COPY-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

Gambar di bawah ini menunjukkan OFRIS berjalan pada 13,04

masukkan deskripsi gambar di sini

Sumber: XGeek

Mitch
sumber
Saya menginstal ini di 15.10 kemudian saya menerapkan Freeze dengan menekan 3 itu menegaskan sistem saya dalam mode beku. Kemudian saya reboot, saya membuat file / var / tmp / myname dengan nilai, sekali lagi saya reboot tetapi masih ada file. Bagaimana pembekuan ini?
Apa maksudmu sebenarnya? Saya juga perlu memeriksa untuk melihat apakah ini berfungsi pada 15.10. Pembekuan sistem mengatur ulang segalanya seperti sebelum dibekukan. Tolong beritahu saya.
Mitch
2

Peringatan: Saya telah menerapkan solusi ini dan itu berfungsi, tetapi waktu penggabungan untuk kembali ke snapshot dapat menyebabkan proses boot membutuhkan waktu lama jika perubahan besar dibuat ke sistem selama boot terakhir. Selama masa tunggu ini, mungkin tampak bagi pengguna bahwa sistem sedang hang!

Berhati-hatilah juga bahwa siapa pun yang memiliki pengetahuan yang cukup untuk memasang snapshot, dapat membuat perubahan pada status "beku". Saya telah memanfaatkan kemungkinan ini untuk memperbarui sistem "beku", tetapi sekali lagi, ini juga dapat meningkatkan waktu yang diperlukan untuk menggabungkan (kembali ke) snapshot!


Snapshots LVM + cron + script = "beku" status

Saya baru-baru ini mulai menggali ke dalam LVM dan terlintas dalam benak saya bahwa orang bisa membuat keadaan "beku" pada mesin menggunakan LVM dan kemampuan snapshot-nya. Tentu saja, metode ini membutuhkan sistem yang dikonfigurasi menggunakan LVM (atau setidaknya LVM pada partisi yang akan dibekukan).

Ringkasan:

  • Instal sistem pada partisi LVM yang menyediakan ruang yang cukup pada PV untuk snapshot
  • Dapatkan sistem dikonfigurasi seperti yang Anda inginkan.
  • Buat pekerjaan cron yang dijalankan sebagai root saat boot untuk menggabungkan snapshot dan membuat snapshot baru untuk menggantikan yang digabungkan
  • Semua reboot berturut-turut kembali ke snapshot. Semua foto yang dibuat diambil dari sistem di negara tempat Anda membuatnya.
  • Sebagai bonus tambahan, foto itu dapat dipasang dan dimodifikasi (asalkan Anda memiliki hak akses root) dan keadaan "beku" dapat diperbarui jika diperlukan.

Bukti konsep: Bekukan semuanya kecuali satu partisi dari instalasi yang bersih

Instal:

  • Boot dari disk Ubuntu langsung / USB dan pilih opsi untuk "Coba Ubuntu tanpa menginstal." Ini penting untuk mengkonfigurasi partisi secara manual dengan LVM
  • Ketika Ubuntu memuat partisi disk Anda menggunakan alat pilihan Anda sehingga memiliki satu partisi yang memakan seluruh ruang drive. Inilah yang saya kerjakan:
    • /dev/sda (ukuran 1T)
      • /dev/sda1 (ukuran 1T)
  • Selanjutnya di terminal mengatur LVM aktif /dev/sda1. Saya akan meletakkan sebagian besar sistem pada satu partisi, tetapi Anda tidak harus melakukannya.
    • 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
  • Sekarang jika Anda menjalankan sudo vgsdiikuti oleh sudo lvsAnda harus dapat melihat bahwa jumlah ruang kosong yang tersisa di grup volume "ubuntu-vg" (VFree di bawah vgs output) sama dengan jumlah ruang yang diambil oleh volume logis "root" "(LSize dalam keluaran lvs). Dalam kasus saya, saya memiliki 506.44g gratis di ubuntu-vg dan partisi root saya berukuran besar 506.44g. Jika ruang kosong yang tersisa di grup volume sama dengan ukuran partisi yang ingin saya beku, saya harus dapat menghapus seluruh partisi dan masih dapat memulihkan dengan reboot. Biarkan sisa ruang kosong di ubuntu-vg tidak digunakan untuk saat ini. Kami akan menggunakannya nanti.
  • Sekarang instal Ubuntu menggunakan partisi manual image.png
  • Ketika instalasi selesai, lanjutkan dan reboot ke sistem yang baru diinstal.
  • Setelah boot ke sistem baru Anda, konfigurasikan agar sesuai persis seperti yang Anda inginkan ketika komputer melakukan booting setiap kali.
    • Jika Anda tidak sengaja mengubah snapshot dan Anda tidak ingin partisi snapshot muncul di menu bar ...
      • mkdir /steady
      • Edit /etc/fstabdengan menambahkan (ini semua satu baris) /dev/ubuntu-vg/steadystate /steady ext4 defaults,ro,nofail 0 1sebagai baris terakhir file
    • Karena hal-hal seperti pembaruan akan terhapus dengan setiap reboot, Anda mungkin ingin mematikannya.
    • Jika Anda memiliki partisi yang tidak beku seperti milik saya di / unfrozen, jangan lupa membuatnya dapat diakses oleh pengguna yang membutuhkan akses ke sana
  • Setelah sistem dikonfigurasikan persis seperti yang Anda inginkan, buat skrip berikut (Anda akan memerlukan root privilege) dan simpan seperti /root/steadystate.shdengan editor favorit Anda. Perhatikan bahwa jika Anda mengubah nama grup volume saat mengatur LVM, Anda harus memperbarui itu dalam skrip di bawah ini juga.
    #!/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
  • Terakhir jalankan sudo crontab -e, pilih editor dan letakkan @reboot /bin/bash /root/steadystate.shdi akhir file. Simpan dan tutup ( Ctrl+ X; jawab Yuntuk menyimpan)
  • Reboot, dan Anda harus memiliki sistem yang dibekukan kecuali untuk partisi yang dipasang di / unfrozen

Ini berfungsi karena snapshot dibuat pada saat boot, dan meskipun kami melewati perintah untuk menggabungkan snapshot tepat setelah itu, snapshot tidak dapat digabungkan sementara volume logis untuk root aktif. Karena itu menunda aksi penggabungan sampai waktu berikutnya / dev / ubuntu-vg / root diaktifkan yang berada di reboot berikutnya. Tindakan ini juga akan dipicu jika sistem di-boot dari USB langsung.

Hanya untuk iseng, saya masuk setelah reboot dan berlari sudo apt remove --purge firefox* libreoffice-* unity*yang biasanya tidak saya sarankan untuk dilakukan karena menghapus beberapa program yang berguna dan menempatkan sistem dalam kondisi yang mungkin kurang diinginkan! broken.png Sistem bahkan tidak mau mematikan dengan benar dari GUI. Jadi bagaimana cara memperbaikinya? Nyalakan kembali! rebooted.png Setelah reboot, semuanya kembali beres. Firefox, LibreOffice, dan Unity semuanya kembali ke tempatnya semula.

Saya juga mencoba menghapus linux *. Ini membuat mesinnya tidak dapat boot, namun, hanya boot dari disk Ubuntu langsung sepertinya membuat penggabungan berlangsung. Restart lagi meninggalkan sistem dalam keadaan "beku"

Jika Anda ingin dapat membuat perubahan, Anda dapat (me-mount kembali) snapshot dengan hak istimewa dan kemudian chroot untuk itu dan membuat perubahan yang Anda ingin tetap permanen. Ini bukan tanpa cacat, tetapi itu adalah bukti konsep.

b_laoshi
sumber
1

Secara default Ubuntu dan kebanyakan Unix lainnya menolak pengguna biasa (siswa, tamu) menulis akses ke file sistem. Hanya administrator dengan otorisasi yang tepat (nama pengguna dan kunci) yang dapat menginstal perangkat lunak, mengubah pengaturan sistem, atau menghapus partisi.

Pengguna biasa dapat, secara default, hanya menulis di direktori home mereka dan direktori sementara sistem. Cara umum untuk menangani sesi tamu satu kali adalah dengan meletakkan direktori home mereka di dalam direktori temp, dan direktori temp di memori utama.

Jika Anda ingin lebih yakin, pasang partisi sistem read-only dan letakkan partisi aufs di atasnya yang menyimpan perubahan dalam memori utama.

David Foerster
sumber
1

fsprotect adalah sekumpulan skrip yang melindungi sistem file yang ada. fsprotect sangat baik untuk komputer umum seperti yang ada di perpustakaan, kafe internet, dll.

Menggunakan aufs mereka mengemas sistem file tmpfs yang memaksa perubahan ditulis ke sistem file tmpfs.

Sistem file root dilindungi oleh skrip initramfs. Sistem file lain dilindungi oleh skrip init. Semua sistem file yang dilindungi menjadi hanya-baca memastikan imutabilitasnya bahkan saat dimatikan.

Untuk menginstal fsprotect di semua versi Ubuntu yang saat ini didukung buka terminal dan ketik:

sudo apt-get install fsprotect

Manfaat menggunakan fsprotect adalah:

  • Filesystem dilindungi dan tidak ada perubahan yang pernah ditulis ke disk.
  • Sistem file yang dilindungi dipasang hanya-baca. Ini berarti bahwa mereka tidak rusak ketika komputer dimatikan dengan tidak benar.
  • Sangat mudah digunakan.
  • Dalam beberapa kasus itu membuat akses sistem file lebih cepat.

Kelemahan dari menggunakan fsprotect adalah:

  • Perubahan sistem file tidak boleh lebih dari batas yang telah ditentukan dalam byte (ditetapkan oleh Anda).
  • Karena tmpfs banyak digunakan, Anda perlu memiliki ruang swap yang memadai.
karel
sumber
Instal gagal di Ubuntu 16.04.2. Masalah adalah referensi yang buruk touchdalam skrip initram. Itu menunjuk ke /usr/bin/touchdaripada /bin/touch. Ini bisa dipaksa untuk bekerja, tetapi bahkan ketika diinstal, jaringan berhenti bekerja.
b_laoshi
Jaringan berhenti berfungsi mungkin karena Anda menggunakan kernel yang buruk atau kernel tanpa file header. Ketika komputer dinyalakan ulang menunggu hingga layar splash pabrikan menghilang, lalu tekan tombol Shift untuk menampilkan opsi boot GRUB. Dari layar GRUB ungu, pilih Opsi lanjutan untuk Ubuntu dan tekan Enter. Layar ungu baru akan muncul menampilkan daftar kernel. Pilih kernel lain dan tekan Enter.
karel
Ini praktis instalasi baru dengan semua pembaruan. Saya mencoba kernel lama, dan pada awalnya boot dengan jaringan, tetapi kemudian saya menyadari bahwa fsprotect tidak dibundel dalam kernel lama. Saya memperbarui semua kernel dan sekarang saya tidak memiliki jaringan ketika saya boot dari kernel.
b_laoshi
1
Menghapus opsi fsprotect dari grub dan memperbarui initramfs tentu saja menonaktifkan fsprotect, dan jaringan kembali berfungsi. Jelas itu adalah sesuatu dalam fsprotect yang merusak jaringan.
b_laoshi