Apakah ada "restore point" di Linux (Debian / Ubuntu) seperti Windows?

17

Saya bekerja langsung di Ubuntu Virtual Machine (VM). Beberapa pembaruan (seperti kernel) tersedia di manajer pembaruan.

Jika saya tidak menggunakan VM, saya tidak akan memperbaruinya karena itu risiko untuk memecahkan sesuatu. Karena ini adalah VM, Anda dapat membuat Snapshot atau mengekspor alat dan mengembalikan jika terjadi kesalahan.

Misalkan saya tidak menggunakan VM dengan instalasi Debian / Ubuntu. Apakah ada pendekatan install-restore yang tidak bergantung pada konfigurasi VM untuk memulihkan sistem Anda tepat sebelum upgrade (Seperti "Restore Point" di Windows), yang mudah dikembalikan seperti alat VM?

(Saya tidak mencari "gambar hantu" atau sesuatu seperti itu (Norton Ghost, Clonezilla, dll), saya mencari sesuatu yang tertanam dalam Sistem Linux)

Seseorang masih menggunakan Anda MS-DOS
sumber
3
Saya tahu bahwa ini di luar topik, jadi saya menambahkannya sebagai komentar, tetapi OpenSolaris dapat membuat snapshot dari seluruh sistem file ZFS dan mengembalikannya nanti. Tidak memakan banyak ruang disk juga, karena deduplikasi. Sebenarnya cara standar untuk melakukan upgrade besar adalah dengan membuat snapshot FS baru dan menginstal upgrade di atasnya. Jika tidak berfungsi, Anda dapat menghapus yang lama. Jika tidak, Anda bisa kembali ke yang berfungsi.
AndrejaKo
3
@AndrejaKo: +1 Namun, ini adalah "klon" (snapshot yang dapat ditulis; snapshot normal hanya baca) dan fakta bahwa itu tidak membutuhkan banyak ruang tidak ada hubungannya dengan deduplikasi tetapi dengan cara snapshot dan klon ditangani dalam sistem file SAP. Yaitu Anda mendapatkan penghematan ruang disk yang sama pada kolam non-dedup, juga.
knweiss
@knweiss Ya, itu benar. Saya baru saja mencarinya!
AndrejaKo

Jawaban:

15

Tidak ada fitur serupa yang dibangun pada distribusi Linux yang saya ketahui. Ada beberapa alasan mengapa itu akan jauh lebih bermanfaat daripada untuk Windows.

  • Terutama, distribusi Linux jauh lebih serius daripada Microsoft tentang rilis stabil yang ditingkatkan hanya untuk memperbaiki bug penting dan dengan perubahan minimum. Misalnya, dengan Ubuntu dan Debian, Anda dapat memilih untuk hanya menerima pembaruan keamanan ( -security), atau hanya pembaruan keamanan dan perbaikan bug penting ( -updates).

  • Pembaruan kernel adalah yang paling berisiko, karena kemungkinan perubahan yang tampaknya menguntungkan akan menyebabkan masalah pada konfigurasi perangkat keras tertentu. Inilah sebabnya mengapa sebagian besar distribusi memungkinkan lebih dari satu versi kernel diinstal pada waktu yang sama; misalnya, pada saat saya menulis ini, Ubuntu 10.04 memiliki tiga versi kernel yang tersedia: 2.6.32.21.22dari rilis asli, 2.6.32.22.23dengan pembaruan keamanan, dan 2.6.32.23.24dengan pembaruan non-keamanan juga. Jika ... 24 rilis menyebabkan masalah pada komputer Anda, Anda dapat reboot di bawah ... 23 (dan bahkan menandai ... 24 sebagai dilarang untuk menginstal, setidaknya jika Anda menggunakan aptitude).

  • Tidak ada registri: semua data konfigurasi ada dalam file (dalam /etchierarki), yang dapat dengan mudah dipulihkan secara individual jika terjadi kesalahan. Meski begitu, pembaruan untuk rilis stabil jarang mempengaruhi file di bawah /etc.

  • Jika Anda menginstal paket dari beberapa sumber selain rilis stabil, maka Anda mungkin ingin menyimpan salinan paket versi yang lebih lama, dan menyimpan cadangan file konfigurasi Anda. Berikut adalah beberapa petunjuk tentang ini di Debian dan Ubuntu.

    • Paket yang diunduh disimpan di /var/cache/apt/archives. Jika Anda memiliki ruang disk, jangan hapus file paket lama sampai Anda memastikan versi yang lebih baru berfungsi untuk Anda.
    • Banyak sumber menyimpan versi yang lebih lama, sehingga Anda dapat menurunkan versi dengan mudah (baik dengan mengunduh dan menginstal versi yang lebih lama secara manual, atau dengan menggunakan preferensi apt). Untuk Debian, lihat snapshot.debian.org .
    • Ada cara yang sangat mudah untuk mengatur kontrol versi /etc: menginstal etckeeperpaket dan mengaktifkannya dengan perintah etckeeper init. (Saya melakukannya, tetapi bukan karena saya khawatir tentang pemutakhiran merusak sesuatu, melainkan karena saya khawatir tentang perubahan saya yang merusak sesuatu.)
Gilles 'SANGAT berhenti menjadi jahat'
sumber
Ya, tidak ada perbandingan antara stabilitas Windows dan Debian / stable. Bahkan jika sesuatu rusak (hampir selalu karena kesalahan pengguna yang jelas), ada banyak alat untuk debug dan memperbaiki masalah.
liori
2
"Peningkatan kernel adalah yang paling berisiko" - Itulah mengapa saya menyimpan salinan Knoppix di sebelah komputer saya. 5 dan bukan 6.
amphetamachine
Anda mungkin juga menemukan [rsnapshot] yang berguna (rsnapshot.org), sebuah utilitas snapshot sistem file berdasarkan rsync .
Pablo A
5

Ini tidak diperlukan, karena manajer paket menangani file mana dari paket mana, dan juga dapat mengembalikan pembaruan paket atau instalasi.

mbq
sumber
2
tetapi jika paket telah merusak sesuatu selama reboot, melakukan rollback bisa menjadi sulit (terutama yang berkaitan dengan revisi kernel)
warren
1
Itulah sebabnya biasanya kernel sebelumnya disimpan dan dapat dipilih untuk di-boot di grub.
mbq
1
Saya tidak setuju. Akan sangat berguna untuk dapat beralih antara pembaruan OS x dan pembaruan x +1 (perbedaannya bisa mencakup lebih dari satu paket kernel) dengan reboot sederhana. Ini dimungkinkan dengan OpenSolaris.
knweiss
Semuanya dimungkinkan dengan Solaris, kecuali menemukan driver yang stabil ;-)
mbq
5

Anda dapat mencoba menggunakan alat seperti dllkeeper . Alat ini hanya menyimpan file konfigurasi seluruh sistem dalam repositori kontrol versi dan membuatnya mudah untuk mengembalikan dan menerapkan kembali setiap perubahan.

Tapi, jujur ​​saja, saya tidak perlu mengembalikan perubahan apa pun yang datang dari pembaruan pada sistem debian / stable saya. Saya menggunakannya untuk memperbaiki kesalahan yang saya lakukan secara manual.

liori
sumber
Saya menggunakan etckeeper, tetapi sebenarnya lebih bermanfaat untuk melihat timeline perubahan daripada rollback (tentu saja Anda mendapatkan kedua kemampuan). Menggunakan server web bawaan backend's (mis. Hg, git, bzr, dll.) Seringkali merupakan yang termudah:sudo hg serve -R /etc
3

TMK, fitur pemulihan Windows hanya membalikkan perubahan pada registri dan beberapa direktori penting. Linux tidak memiliki ini.

Anda dapat mencoba pendekatan manual dengan cadangan. Cukup backup direktori home Anda dan daftar program dari Synaptic dan gunakan itu sebagai titik pemulihan.

TheLQ
sumber
3

Perhatikan bahwa Ubuntu secara khusus (tetapi mungkin juga Debian) tidak akan menghapus paket kernel lama ketika menginstal pembaruan, dan Anda dapat mengonfigurasi bootloader untuk menyajikan daftar kernel yang dapat dipilih saat boot.

Ini secara otomatis membuat "restore point" - hanya untuk kernel - karena Anda dapat memilih versi sebelumnya jika yang lebih baru menyebabkan masalah. Sejauh yang saya tahu, Windows tidak memiliki yang seperti ini untuk pembaruan kernelnya. (Dan terutama untuk pengguna rumahan, saya tidak akan mau membantu seseorang mendiagnosis dan memperbaiki sistem yang tidak dapat di-boot karena pembaruan kernel.)


sumber
3

Ada alat yang disebut Timeshift. ( http://www.teejeetech.in/p/timeshift.html ) Saya belum menggunakannya, tetapi terlihat menjanjikan dan saya sudah mendengar hal-hal baik tentang itu dari pengguna. Snapshots dirancang untuk menghindari duplikasi data. Dan jangan takut dengan situs web yang tampak tidak jelas. :)

pengguna31389
sumber
2

Jika Anda menggunakan Logical Volume Manager untuk mengelola konten hard disk Anda, maka Anda mendapatkannya secara gratis menggunakan snapshots. Mengutip HOWTO yang hebat : "Salah satu contoh adalah mengambil snapshot volume, pasang snapshot, dan coba program eksperimental yang mengubah file pada volume itu. Jika Anda tidak suka dengan apa yang dilakukan, Anda dapat meng-unmount snapshot, menghapusnya, dan pasang sistem file asli di tempatnya. "

vwegert
sumber
Saya ingin mencatat, partisi disk yang disarankan pada Ubuntu 12.04+ menggunakan LVM, jadi ini benar-benar saran terbaik.
kevinf
1

Bergantung pada teknologi VM Anda, Anda dapat menghentikan / menunda / menghentikan sementara VM, membuang inti dan menyalin gambar VM. Jika gagal, cukup pulihkan yang asli.

Jika Anda langsung pada volume logis, Anda dapat membuat snapshot LVM berdasarkan LV asli. Tes upgrade dan jika berhasil Anda ulang di VM asli (lihat lvcreate (8) -s)

Atau menggunakan tar tua emas (1). Anda membuat bola tar lengkap dari userspace, mengembalikan file dan menghapus file yang tidak ada di bola tar asli.

bclermont
sumber
Dari pertanyaan: "Apakah ada pendekatan install-restore yang tidak bergantung pada konfigurasi VM"?
Ben Voigt
1

Saat ini Linux tidak benar-benar menawarkan fitur seperti itu walaupun itu akan sangat berguna.

Namun, artikel Unbreakable upgrade, ZFS dan Apt menjelaskan fitur apt-clone dari distribusi penyimpanan Nexenta berbasis Linux dan menyarankan ...

Ada juga sistem file baru yang dibuat sebagian sebagai respons terhadap ZFS, yang disebut BTRFS, yang akan memiliki banyak keunggulan ZFS dan mungkin mampu mengaktifkan "pemutakhiran yang tidak dapat dipecahkan" untuk distribusi Linux rata-rata seperti Ubuntu di masa depan juga.

IMHO, pertama-tama kita memerlukan sistem file Copy-On-Write (COW) yang dapat digunakan untuk Linux sebelum fitur seperti itu dapat diimplementasikan di sistem installer / updaters dengan cara yang masuk akal.

Perhatian: Meskipun Nexenta berbasis Linux, Nexenta tidak menggunakan kernel Linux. Ini menggunakan kernel OpenSolaris dan ZFS.

knweiss
sumber
Saya tidak bermaksud memilih nits Anda, tetapi Berbasis Linux tanpa kernel Linux adalah sedikit oxymoron.
Seamus Connor