GNU/Linux >> Belajar Linux >  >> Ubuntu

Kembalikan ke Status Bekerja Dengan btrfs + apt-btrfs-snapshot Di Ubuntu 12.10

Tutorial ini menjelaskan bagaimana Anda dapat mengembalikan operasi apt yang gagal (seperti apt-get upgrade) dan memutar kembali ke status sistem sebelumnya dengan apt-btrfs-snapshot pada sistem Ubuntu 12.10 yang menggunakan sistem file btrfs. apt-btrfs-snapshot membuat snapshot sistem sebelum operasi apt. Mampu dengan mudah mengembalikan status sistem sebelumnya setelah operasi apt yang gagal menghilangkan banyak rasa sakit yang harus dihadapi administrator sistem secara normal dan merupakan salah satu fitur terbesar dari sistem file btrfs.

Saya tidak memberikan jaminan apa pun bahwa ini akan berhasil untuk Anda!

1 Catatan Awal

Dalam tutorial ini saya telah menginstal seluruh sistem pada sistem file btrfs, yaitu, tidak ada partisi /boot terpisah pada sistem file ext. Jika Anda menggunakan partisi /boot terpisah dan apt menginstal apa pun di partisi itu (seperti kernel baru), Anda tidak dapat membatalkan perubahan pada partisi /boot dengan apt-btrfs-snapshot- hanya perubahan pada partisi btrfs yang dapat dikembalikan.

Hard drive saya bernama /dev/sda dalam tutorial ini, partisi sistem saya adalah /dev/sda1.

Catatan untuk pengguna Ubuntu:

Karena kita harus menjalankan semua langkah dari tutorial ini dengan hak akses root, kita bisa menambahkan semua perintah dalam tutorial ini dengan string sudo, atau kita menjadi root sekarang dengan mengetik

sudo su

2 Instal apt-btrfs-snapshot

apt-btrfs-snapshot dapat diinstal sebagai berikut:

apt-get install apt-btrfs-snapshot

Untuk memeriksa apakah apt-btrfs-snapshot dapat membuat snapshot pada operasi apt, jalankan

apt-btrfs-snapshot didukung

Seharusnya menampilkan:

[dilindungi email]:~# apt-btrfs-snapshot didukung
Didukung
[dilindungi email]:~#

Jika tidak, tata letak subvolume btrfs Anda mungkin berbeda dari tata letak default Ubuntu yaitu sebagai berikut:

  • @ subvolume:dipasang ke /.
  • @home subvolume:dipasang ke /home.

Ini adalah tata letak subvolume default Ubuntu:

daftar subvolume btrfs /
[email protected]:~# btrfs subvolume list /
ID 256 top level 5 path @
ID 258 top level 5 path @home
[email protected]:~#

Jika apt-btrfs-snapshot mendukung sistem Anda, Anda dapat melanjutkan ke bab 3.

3 Lakukan Operasi yang tepat

Sekarang mari kita lakukan beberapa operasi apt seperti apt-get upgrade untuk menguji apakah kita dapat mengembalikan ke keadaan sebelumnya.

Perbarui basis data paket Anda...

apt-get update

... dan tingkatkan sistem Anda:

apt-get upgrade

[email protected]:~# apt-get upgrade
Membaca daftar paket... Selesai
Membuat pohon dependensi
Membaca informasi status... Selesai
Paket berikut telah disimpan kembali:
  linux-headers-generic linux-image-generic
Paket-paket berikut akan ditingkatkan:
  apport base-files isc-dhcp-client isc-dhcp-common libwhoopsie0 linux-generic lsb -base lsb-release python3-apport python3-distupgrade python3-problem-report python3.2 python3.2-minimal
  ubuntu-release-upgrader-core vim vim-common vim-runtime vim-tiny whoopsie
19 ditingkatkan, 0 baru diinstal, 0 untuk dihapus dan 2 tidak ditingkatkan.
Perlu untuk mendapatkan 14.4 MB arsip.
Setelah operasi ini, 3.072 B ruang disk tambahan akan digunakan.
Lakukan Anda ingin melanjutkan [Y/n]? <-- ENTER
Dapatkan:1 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main base-files amd64 6.5ubuntu12 [69.6 kB]
Dapatkan:2 http:/ /de.archive.ubuntu.com/ubuntu/ quantal-updates/main whoopsie amd64 0.2.7 [25.1 kB]
Dapatkan:3 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/ main libwhoopsie0 amd64 0.2.7 [7.054 B]
Dapatkan:4 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main lsb-base all 4.0-0ubuntu26.1 [10.3 kB]
Dapatkan:5 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main isc-dhcp-client amd64 4.2.4-1ubuntu10.1 [775 kB]
Dapatkan:6 http ://de.archive.ubuntu.com/ubuntu/ quantal-updates/main isc-dhcp-common amd64 4.2.4-1ubuntu10.1 [836 kB]
Dapatkan:7 http://de.archive. ubuntu.com/ubuntu/ quantal-updates/main lsb-release all 4.0-0ubuntu26.1 [10.7 kB]
Dapatkan:8 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main python3.2 amd64 3.2.3-6ubuntu3.1 [2,585 kB]
Dapatkan:9 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main python3.2-minimal amd64 3.2.3 -6ubuntu3.1 [1,798 kB]
Dapatkan:10 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main vim amd64 2:7.3.547-4ubuntu1.1 [1.051 kB]
Dapatkan :11 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main vim-tiny amd64 2:7.3.547-4ubuntu1.1 [413 kB]
Dapatkan:12 http://de .archive.ubuntu.com/ubuntu/ quantal-updates/main vim-runtime all 2:7.3.547-4ubuntu1.1 [6.317 kB]
Dapatkan:13 http://de.archive.ubuntu.com/ ubuntu/ quantal-updates/main vim-common amd64 2:7.3.547-4ubuntu1.1 [85.7 kB]
Dapatkan:14 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main ubuntu-release-upgrader-core all 1:0.190.4 [27.7 kB]
Dapatkan:15 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main python3-distupgrade all 1:0.190 .4 [141 kB]
Dapatkan:16 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main python3-problem-report all 2.6.1-0ubuntu6 [9.578 B]
Dapatkan:17 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main python3-apport semua 2.6.1-0ubuntu6 [85.7 kB]
Dapatkan:18 http://de.archive .ubuntu.com/ubuntu/ quan tal-updates/main apport all 2.6.1-0ubuntu6 [164 kB]
Dapatkan:19 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main linux-generic amd64 3.5.0.18. 21 [1.714 B]
Diambil 14.4 MB dalam 2 dtk (5.465 kB/dtk)
Didukung
Buat snapshot '/tmp/apt-btrfs-snapshot-mp-jnW7I_/@' di '/tmp/apt-btrfs-snapshot-mp-jnW7I_/@apt-snapshot-2012-11-22_11:50:38'
(Membaca database ... 52666 file dan direktori yang saat ini dipasang.)
Mempersiapkan untuk mengganti file dasar 6.5ubuntu11 (menggunakan .../base-files_6.5ubuntu12_amd64.deb) ...
Membongkar file dasar pengganti ...
Memproses pemicu untuk man-db .. .
Memproses pemicu untuk info pemasangan...
Memproses pemicu untuk plymouth-theme-ubuntu-text...
update-initramfs:menunda pembaruan (pemicu diaktifkan)
Memproses pemicu untuk initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-3.5.0-17-generic
Menyiapkan file dasar (6.5ubuntu12) ...
(Membaca database ... 52666 file dan direktori cu baru dipasang.)
Bersiap untuk menggantikan whoopsie 0.2.5 (menggunakan .../whoopsie_0.2.7_amd64.deb) ...
whoopsie stop/waiting
Membongkar penggantian whoopsie ...
Bersiap untuk mengganti libwhoopsie0 0.2.5 (menggunakan .../libwhoopsie0_0.2.7_amd64.deb) ...
Membongkar penggantian libwhoopsie0 ...
Bersiap untuk mengganti lsb-base 4.0-0ubuntu26 ( menggunakan .../lsb-base_4.0-0ubuntu26.1_all.deb) ...
Membongkar penggantian lsb-base ...
Memproses pemicu untuk ureadahead ...
ureadahead akan dilakukan reprofiled pada reboot berikutnya
Menyiapkan lsb-base (4.0-0ubuntu26.1) ...
(Membaca database ... 52666 file dan direktori yang saat ini diinstal.)
Bersiap untuk mengganti isc- dhcp-client 4.2.4-1ubuntu10 (menggunakan .../isc-dhcp-client_4.2.4-1ubuntu10.1_amd64.deb) ...
Membongkar penggantian isc-dhcp-client ...
Mempersiapkan untuk mengganti isc-dhcp-common 4.2.4-1ubuntu10 (menggunakan .../isc-dhcp-common_4.2.4-1ubuntu10.1_amd64.deb) ...
Membongkar penggantian isc-dhcp-common ...
Persiapan ing untuk mengganti lsb-release 4.0-0ubuntu26 (menggunakan .../lsb-release_4.0-0ubuntu26.1_all.deb) ...
Membongkar penggantian lsb-release ...
Bersiap untuk menggantikan python3 .2 3.2.3-6ubuntu3 (menggunakan .../python3.2_3.2.3-6ubuntu3.1_amd64.deb) ...
Membongkar penggantian python3.2 ...
Bersiap untuk mengganti python3.2 -minimal 3.2.3-6ubuntu3 (menggunakan .../python3.2-minimal_3.2.3-6ubuntu3.1_amd64.deb) ...
Membongkar penggantian python3.2-minimal ...
Bersiap untuk replace vim 2:7.3.547-4ubuntu1 (menggunakan .../vim_2%3a7.3.547-4ubuntu1.1_amd64.deb) ...
Membongkar replacement vim ...
Mempersiapkan untuk menggantikan vim-tiny 2:7.3.547-4ubuntu1 (menggunakan .../vim-tiny_2%3a7.3.547-4ubuntu1.1_amd64.deb) ...
Membongkar penggantian vim-tiny ...
Bersiap untuk menggantikan vim -runtime 2:7.3.547-4ubuntu1 (menggunakan .../vim-runtime_2%3a7.3.547-4ubuntu1.1_all.deb) ...
Membongkar penggantian vim-runtime ...
Mempersiapkan untuk ganti vim-common 2:7.3.547-4ubuntu1 (menggunakan .../vim-common_2%3a7.3.547-4ubuntu1.1_a md64.deb) ...
Membongkar penggantian vim-common ...
Mempersiapkan untuk menggantikan ubuntu-release-upgrader-core 1:0.190.1 (menggunakan .../ubuntu-release-upgrader- core_1%3a0.190.4_all.deb) ...
Membongkar penggantian ubuntu-release-upgrader-core ...
Mempersiapkan untuk menggantikan python3-distupgrade 1:0.190.1 (menggunakan .../python3 -distupgrade_1%3a0.190.4_all.deb) ...
Membongkar penggantian python3-distupgrade ...
Bersiap untuk mengganti python3-problem-report 2.6.1-0ubuntu3 (menggunakan .../python3- problem-report_2.6.1-0ubuntu6_all.deb) ...
Membongkar replacement python3-problem-report ...
Bersiap untuk mengganti python3-apport 2.6.1-0ubuntu3 (menggunakan .../python3- apport_2.6.1-0ubuntu6_all.deb) ...
Membongkar penggantian python3-apport ...
Mempersiapkan untuk menggantikan apport 2.6.1-0ubuntu3 (menggunakan .../apport_2.6.1-0ubuntu6_all.deb) ...
apport stop/waiting
Membongkar apport penggantian ...
Bersiap untuk menggantikan linux-generic 3.5.0.17.19 (menggunakan .../linux-generic_3.5.0.18.21_amd64 .deb ) ...
Membongkar pengganti linux-generic ...
Memproses pemicu untuk man-db ...
Memproses pemicu untuk mime-support ...
Memproses pemicu untuk ureadahead ...
Menyiapkan libwhoopsie0 (0.2.7) ...
Menyiapkan whoopsie (0.2.7) ...
whoopsie start/running, proses 7859
Menyiapkan isc-dhcp-common (4.2.4-1ubuntu10.1) ...
Menyiapkan isc-dhcp-client (4.2.4-1ubuntu10.1) ...
Menyiapkan lsb-release ( 4.0-0ubuntu26.1) ...
Menyiapkan python3.2-minimal (3.2.3-6ubuntu3.1) ...
Menyiapkan python3.2 (3.2.3-6ubuntu3.1) ...
Menyiapkan vim-common (2:7.3.547-4ubuntu1.1) ...
Menyiapkan vim-runtime (2:7.3.547-4ubuntu1.1) ...
Memproses /usr/share/vim/addons/doc
Menyiapkan vim (2:7.3.547-4ubuntu1.1) ...
Menyiapkan vim-tiny (2:7.3.547 -4ubuntu1.1) ...
Menyiapkan python3-distupgrade (1:0.190.4) ...
Menyiapkan ubuntu-release-upgrader-core (1:0.190.4) ...
Menyiapkan python3-problem-report (2.6.1-0ubuntu6) ...
Menyetel menyiapkan python3-apport (2.6.1-0ubuntu6) ...
Menyiapkan apport (2.6.1-0ubuntu6) ...
apport mulai/berjalan
Menyiapkan linux-generic ( 3.5.0.18.21) ...
Memproses pemicu untuk libc-bin ...
ldconfig pemrosesan ditangguhkan sekarang sedang berlangsung
[email protected]:~#

Seperti yang Anda lihat, apt-btrfs-snapshot secara otomatis dibuat sebagai snapshot dari sistem kami (disebut @apt-snapshot-2012-11-22_11:50:38 dalam contoh ini) sebelum peningkatan. Anda dapat memeriksanya dengan...

daftar subvolume btrfs /
[email protected]:~# btrfs subvolume list /
ID 256 top level 5 path @
ID 258 top level 5 path @home
ID 260 top level 5 path @apt- snapshot-2012-11-22_11:50:38
[dilindungi email]:~#

... dan:

daftar apt-btrfs-snapshot
[email protected]:~# apt-btrfs-snapshot list
Snapshot yang tersedia:
@apt-snapshot-2012-11-22_11:50:38
[email protected]:~#

4 Kembalikan

Sekarang mari kita asumsikan operasi apt terakhir mengubah sistem kerja kita menjadi sistem yang tidak berfungsi seperti yang diharapkan lagi. Itu sebabnya kami ingin memulihkan status sistem sebelumnya, yaitu, kami ingin melakukan rollback.

Oleh karena itu kami memasang sistem file btrfs ke lokasi terpisah, mis. /mnt:

mount /dev/sda1 /mnt

Kami sekarang dapat melihat subvolume kami di output dari:

ls -l /mnt/
[email protected]:~# ls -l /mnt/
total 0
drwxr-xr-x 1 root root 230 Nov 22 10:46 @
drwxr-xr-x 1 root root 230 22 Nov 10:46 @apt-snapshot-2012-11-22_11:50:38
drwxr-xr-x 1 root root  26 Nov 22 10:57 @home
[email protected ]:~#

@apt-snapshot-2012-11-22_11:50:38 adalah snapshot dari sistem file root kerja kami (@) sebelum operasi apt. Untuk membuat sistem boot dari snapshot yang berfungsi itu alih-alih dari subvolume saat ini, kami mengganti nama @ menjadi sesuatu yang lain dan kemudian @apt-snapshot-2012-11-22_11:50:38 menjadi @:

mv /mnt/@ /mnt/@_badroot
mv /mnt/@apt-snapshot-2012-11-22_11:50:38 /mnt/@

Sekarang reboot:

boot ulang

5 Periksa Apakah Rollback Berhasil

Setelah reboot kita harus memeriksa apakah rollback berhasil. Untuk melakukan ini, kami mengulangi operasi apt yang membuat sistem kami tidak dapat digunakan, mis.:

apt-get update
apt-get upgrade

Jika rollback berhasil, apt-get upgrade akan menampilkan paket yang sama yang tersedia untuk update seperti sebelumnya (karena ini hanya untuk memeriksa apakah rollback berhasil, jangan menginstal update lagi):

[email protected]:~# apt-get upgrade
Membaca daftar paket... Selesai
Membuat pohon dependensi
Membaca informasi status... Selesai
Paket berikut telah disimpan kembali:
  linux-headers-generic linux-image-generic
Paket-paket berikut akan ditingkatkan:
  apport base-files isc-dhcp-client isc-dhcp-common libwhoopsie0 linux-generic lsb -base lsb-release python3-apport python3-distupgrade python3-problem-report python3.2 python3.2-minimal
  ubuntu-release-upgrader-core vim vim-common vim-runtime vim-tiny whoopsie
19 ditingkatkan, 0 baru dipasang, 0 untuk dihapus dan 2 tidak ditingkatkan.
Perlu mendapatkan 0 B/14.4 MB arsip.
Setelah operasi ini, 3,072 B ruang disk tambahan akan digunakan.
Apakah Anda ingin melanjutkan [Y/n]? <-- n

6 Hapus @ Subvolume (Opsional)

Jika Anda yakin rollback berhasil dan Anda tidak memerlukan subvolume @ lama (sekarang bernama @_badroot) lagi, Anda dapat menghapusnya untuk mengosongkan beberapa ruang.

mount /dev/sda1 /mnt
ls -l /mnt/
[email protected]:~# ls -l /mnt/
total 0
drwxr-xr-x 1 root root 230 Nov 22 10:46 @
drwxr-xr-x 1 root root 230 Nov 22 10:46 @_badroot
drwxr-xr-x 1 root root  26 Nov 22 10:57 @home
[email protected]:~#
penghapusan subvolume btrfs /mnt/@_badroot
umount /mnt

  • btrfs:https://btrfs.wiki.kernel.org/index.php/Main_Page
  • Ubuntu:http://www.ubuntu.com/

Ubuntu
  1. Bluetooth Tidak Bekerja Di Ubuntu 16.04 Dengan [0cf3:3004] Adaptor Atheros?

  2. Ubuntu 18.04 Berhenti Bekerja Dengan Driver Nvidia?

  3. Elan Touchpad Tidak Bekerja Pada Lenovo Ideapad Dengan Ubuntu 16.04?

  1. Pulihkan sistem Anda dengan mode pengguna tunggal di Ubuntu / Ubuntu 11.10

  2. 5.1 Subwoofer Sistem Surround Tidak Berfungsi?

  3. Siapkan lingkungan chroot di Ubuntu dengan debootstrap

  1. Pemantauan Sistem Ubuntu 20.04 dengan widget Conky

  2. Usb 3.0 Hub Tidak Bekerja Dengan Beberapa Perangkat Di Ubuntu 18.04?

  3. R 3.5.0 Tidak Bekerja Di Ubuntu 18.04?