GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Torna a uno stato di lavoro con btrfs + apt-btrfs-snapshot su Ubuntu 12.10

Questo tutorial spiega come ripristinare le operazioni apt fallite (come apt-get upgrade) e tornare allo stato del sistema precedente con apt-btrfs-snapshot su un sistema Ubuntu 12.10 che utilizza il file system btrfs. apt-btrfs-snapshot crea un'istantanea del sistema prima dell'operazione apt. Essere in grado di ripristinare facilmente lo stato del sistema precedente dopo un'operazione apt fallita elimina gran parte del dolore che gli amministratori di sistema devono affrontare normalmente ed è una delle maggiori caratteristiche del file system btrfs.

Non garantisco che questo funzionerà per te!

1 Nota preliminare

In questo tutorial ho installato l'intero sistema su un file system btrfs, ovvero non esiste una partizione /boot separata su un file system ext. Se usi una partizione /boot separata e apt installa qualcosa in quella partizione (come un nuovo kernel), non puoi annullare le modifiche alla partizione /boot con apt-btrfs-snapshot:solo le modifiche sulla partizione btrfs possono essere ripristinate.

Il mio disco rigido si chiama /dev/sda in questo tutorial, la mia partizione di sistema è /dev/sda1.

Una nota per gli utenti di Ubuntu:

Poiché dobbiamo eseguire tutti i passaggi di questo tutorial con i privilegi di root, possiamo anteporre tutti i comandi in questo tutorial con la stringa sudo, oppure diventare root in questo momento digitando

sudo su

2 Installa apt-btrfs-snapshot

apt-btrfs-snapshot può essere installato come segue:

apt-get install apt-btrfs-snapshot

Per verificare se apt-btrfs-snapshot è in grado di creare istantanee sulle operazioni apt, esegui

apt-btrfs-snapshot supported

Dovrebbe visualizzare:

[email protected]:~# apt-btrfs-snapshot supported
Supported
[email protected]:~#

In caso contrario, il layout del tuo sottovolume btrfs probabilmente differisce dal layout predefinito di Ubuntu che è il seguente:

  • @ sottovolume:montato su /.
  • sottovolume @home:montato su /home.

Questo è il layout predefinito del sottovolume di Ubuntu:

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

Se apt-btrfs-snapshot supporta il tuo sistema, puoi procedere al capitolo 3.

3 Esegui un'operazione apt

Ora eseguiamo alcune operazioni apt come apt-get upgrade per verificare se possiamo tornare allo stato precedente.

Aggiorna il database dei tuoi pacchetti...

apt-get update

... e aggiorna il tuo sistema:

apt-get upgrade

[email protetta]:~# apt-get upgrade
Lettura elenchi pacchetti... Fatto
Costruzione dell'albero delle dipendenze
Lettura informazioni dello stato... Fatto
I pacchetti seguenti sono stati conservati indietro:
  linux-headers-generic linux-image-generic
I seguenti pacchetti verranno aggiornati:
  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 aggiornato, 0 appena installato, 0 da rimuovere e 2 non aggiornato.
È necessario ottenere 14,4 MB di archivi.
Dopo questa operazione, saranno utilizzati 3.072 B di spazio su disco aggiuntivo.
Eseguire vuoi continuare [S/n]? <-- ENTER
Ottieni:1 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main base-files amd64 6.5ubuntu12 [69.6 kB]
Ottieni:2 http:/ /de.archive.ubuntu.com/ubuntu/ quantal-updates/main whoopsie amd64 0.2.7 [25.1 kB]
Get:3 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/ main libwhoopsie0 amd64 0.2.7 [7,054 B]
Ottieni:4 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main lsb-base all 4.0-0ubuntu26.1 [10.3 kB]
Scarica:5 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main isc-dhcp-client amd64 4.2.4-1ubuntu10.1 [775 kB]
Scarica:6 http ://de.archive.ubuntu.com/ubuntu/ quantal-updates/main isc-dhcp-common amd64 4.2.4-1ubuntu10.1 [836 kB]
Get:7 http://de.archive. ubuntu.com/ubuntu/ quantal-updates/main lsb-release all 4.0-0ubuntu26.1 [10.7 kB]
Get:8 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main python3.2 amd64 3.2.3-6ubuntu3.1 [2,585 kB]
Get:9 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main python3.2-minimal amd64 3.2.3 -6ubuntu3.1 [1.798 kB]
Scarica:10 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main vim amd64 2:7.3.547-4ubuntu1.1 [1.051 kB]
Scarica :11 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main vim-tiny amd64 2:7.3.547-4ubuntu1.1 [413 kB]
Get:12 http://de .archive.ubuntu.com/ubuntu/ quantal-updates/main vim-runtime all 2:7.3.547-4ubuntu1.1 [6,317 kB]
Get:13 http://de.archive.ubuntu.com/ ubuntu/ quantal-updates/main vim-common amd64 2:7.3.547-4ubuntu1.1 [85.7 kB]
Get:14 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main ubuntu-release-upgrader-core all 1:0.190.4 [27.7 kB]
Get:15 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main python3-distupgrade all 1:0.190 .4 [141 kB]
Ottieni:16 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main python3-problem-report all 2.6.1-0ubuntu6 [9,578 B]
Ottieni:17 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main python3-apport all 2.6.1-0ubuntu6 [85.7 kB]
Ottieni:18 http://de.archive .ubuntu.com/ubuntu/ quan tal-updates/main apport all 2.6.1-0ubuntu6 [164 kB]
Get:19 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main linux-generic amd64 3.5.0.18. 21 [1.714 B]
Recuperato 14,4 MB in 2 s (5.465 kB/s)
Supportato
Crea uno snapshot di '/tmp/apt-btrfs-snapshot-mp-jnW7I_/@' in '/tmp/apt-btrfs-snapshot-mp-jnW7I_/@apt-snapshot-2012-11-22_11:50:38'
(Lettura database ... 52666 file e directory attualmente installate.)
Preparazione alla sostituzione dei file di base 6.5ubuntu11 (usando .../base-files_6.5ubuntu12_amd64.deb) ...
Decompressione dei file di base sostitutivi...
Elaborazione dei trigger per man-db.. .
Elaborazione trigger per info-installazione ...
Elaborazione trigger per plymouth-theme-ubuntu-text ...
update-initramfs: rinviare l'aggiornamento (trigger attivato)
Elaborazione trigger per initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-3.5.0-17-generic
Impostazione di file di base (6.5ubuntu12) ...
(Lettura database ... 52666 file e directory cu installato di recente.)
Preparazione alla sostituzione di whoopsie 0.2.5 (utilizzando .../whoopsie_0.2.7_amd64.deb) ...
whoopsie stop/waiting
Disimballaggio sostituzione whoopsie ...
Preparazione alla sostituzione di libwhoopsie0 0.2.5 (utilizzando .../libwhoopsie0_0.2.7_amd64.deb) ...
Disimballaggio della sostituzione libwhoopsie0 ...
Preparazione alla sostituzione di lsb-base 4.0-0ubuntu26 ( using .../lsb-base_4.0-0ubuntu26.1_all.deb) ...
Disimballaggio sostituzione lsb-base ...
Elaborazione trigger per ureadahead ...
ureadahead sarà riprofilato al prossimo riavvio
Configurazione lsb-base (4.0-0ubuntu26.1) ...
(Lettura database ... 52666 file e directory attualmente installate.)
Preparazione a sostituire isc- dhcp-client 4.2.4-1ubuntu10 (utilizzando .../isc-dhcp-client_4.2.4-1ubuntu10.1_amd64.deb) ...
Disimballaggio sostituzione isc-dhcp-client ...
Preparazione per sostituire isc-dhcp-common 4.2.4-1ubuntu10 (utilizzando .../isc-dhcp-common_4.2.4-1ubuntu10.1_amd64.deb) ...
Disimballaggio replacement isc-dhcp-common ...
Prepara ing per sostituire lsb-release 4.0-0ubuntu26 (utilizzando .../lsb-release_4.0-0ubuntu26.1_all.deb) ...
Disimballaggio replacement lsb-release ...
Preparazione a sostituire python3 .2 3.2.3-6ubuntu3 (utilizzando .../python3.2_3.2.3-6ubuntu3.1_amd64.deb) ...
Disimballaggio sostituzione python3.2 ...
Preparazione a sostituire python3.2 -minimal 3.2.3-6ubuntu3 (utilizzando .../python3.2-minimal_3.2.3-6ubuntu3.1_amd64.deb) ...
Disimballaggio sostituzione python3.2-minimal ...
Preparazione a replace vim 2:7.3.547-4ubuntu1 (using .../vim_2%3a7.3.547-4ubuntu1.1_amd64.deb) ...
Disimballaggio replacement vim ...
Preparazione alla sostituzione di vim-tiny 2:7.3.547-4ubuntu1 (utilizzando .../vim-tiny_2%3a7.3.547-4ubuntu1.1_amd64.deb) ...
Disimballaggio sostituzione vim-tiny ...
Preparazione a sostituire vim -runtime 2:7.3.547-4ubuntu1 (using .../vim-runtime_2%3a7.3.547-4ubuntu1.1_all.deb) ...
Disimballaggio sostituzione vim-runtime ...
Preparazione a sostituisci vim-common 2:7.3.547-4ubuntu1 (usando .../vim-common_2%3a7.3.547-4ubuntu1.1_a md64.deb) ...
Disimballaggio replacement vim-common ...
Preparazione a sostituire ubuntu-release-upgrader-core 1:0.190.1 (utilizzando .../ubuntu-release-upgrader- core_1%3a0.190.4_all.deb) ...
Disimballaggio replacement ubuntu-release-upgrader-core ...
Preparazione a sostituire python3-distupgrade 1:0.190.1 (utilizzando .../python3 -distupgrade_1%3a0.190.4_all.deb) ...
Disimballaggio replacement python3-distupgrade ...
Preparazione a sostituire python3-problem-report 2.6.1-0ubuntu3 (utilizzando .../python3- problem-report_2.6.1-0ubuntu6_all.deb) ...
Disimballaggio replacement python3-problem-report ...
Preparazione a sostituire python3-apport 2.6.1-0ubuntu3 (utilizzando .../python3- apport_2.6.1-0ubuntu6_all.deb) ...
Disimballaggio replacement python3-apport ...
Preparazione a sostituire apport 2.6.1-0ubuntu3 (utilizzando .../apport_2.6.1-0ubuntu6_all.deb) ...
apport stop/waiting
Disimballaggio replacement apport ...
Preparazione per sostituire linux-generic 3.5.0.17.19 (utilizzando .../linux-generic_3.5.0.18.21_amd64 .deb ) ...
Disimballaggio replacement linux-generic ...
Elaborazione trigger per man-db ...
Elaborazione trigger per supporto mime ...
Elaborazione trigger per ureadahead ...
Configurazione libwhoopsie0 (0.2.7) ...
Configurazione whoopsie (0.2.7) ...
whoopsie avvio/esecuzione, processo 7859
Configurazione isc-dhcp-common (4.2.4-1ubuntu10.1) ...
Configurazione isc-dhcp-client (4.2.4-1ubuntu10.1) ...
Configurazione lsb-release ( 4.0-0ubuntu26.1) ...
Configurazione di python3.2-minimal (3.2.3-6ubuntu3.1) ...
Configurazione di python3.2 (3.2.3-6ubuntu3.1) ...
Configurazione di vim-common (2:7.3.547-4ubuntu1.1) ...
Configurazione di vim-runtime (2:7.3.547-4ubuntu1.1) ...
Elaborazione /usr/share/vim/addons/doc
Impostazione vim (2:7.3.547-4ubuntu1.1) ...
Impostazione vim-tiny (2:7.3.547 -4ubuntu1.1) ...
Configurazione di python3-distupgrade (1:0.190.4) ...
Configurazione di ubuntu-release-upgrader-core (1:0.190.4) ...
Configurazione di python3-problem-report (2.6.1-0ubuntu6) ...
Imposta ting up python3-apport (2.6.1-0ubuntu6) ...
Configurazione di apport (2.6.1-0ubuntu6) ...
apport start/esecuzione
Configurazione di linux-generic ( 3.5.0.18.21) ...
Elaborazione trigger per libc-bin ...
ldconfig elaborazione differita ora in corso
[email protetta]:~#

Come vedi, apt-btrfs-snapshot è stato creato automaticamente come snapshot del nostro sistema (chiamato @apt-snapshot-2012-11-22_11:50:38 in questo esempio) prima dell'aggiornamento. Puoi verificarlo con...

btrfs subvolume list /
[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
[email protected]:~#

... e:

apt-btrfs-snapshot list
[email protected]:~# apt-btrfs-snapshot list
Available snapshots:
@apt-snapshot-2012-11-22_11:50:38
[email protected]:~#

4 Rollback

Ora supponiamo che l'ultima operazione apt abbia trasformato il nostro sistema funzionante in uno che non funziona più come previsto. Ecco perché vogliamo ripristinare lo stato del sistema precedente, ovvero vogliamo eseguire un rollback.

Pertanto montiamo il filesystem btrfs in una posizione separata, ad es. /mnt:

mount /dev/sda1 /mnt

Ora possiamo vedere i nostri sottovolumi nell'output di:

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 @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 è un'istantanea del nostro filesystem root funzionante (@) prima dell'operazione apt. Per fare in modo che il sistema si avvii da quell'istantanea funzionante invece che dal sottovolume corrente, rinominiamo @ in qualcos'altro e poi @apt-snapshot-2012-11-22_11:50:38 a @:

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

Ora riavvia:

reboot

5 Verifica se il rollback ha avuto successo

Dopo il riavvio dovremmo controllare se il rollback è andato a buon fine. Per fare ciò, ripetiamo l'operazione apt che ha reso inutilizzabile il nostro sistema, ad es.:

apt-get update
apt-get upgrade

Se il rollback ha avuto successo, apt-get upgrade dovrebbe mostrare gli stessi pacchetti disponibili per l'aggiornamento di prima (poiché questo è solo un controllo se il rollback ha avuto successo, non installare di nuovo gli aggiornamenti):

[email protetta]:~# apt-get upgrade
Lettura elenchi pacchetti... Fatto
Costruzione dell'albero delle dipendenze
Lettura informazioni dello stato... Fatto
I pacchetti seguenti sono stati conservati indietro:
  linux-headers-generic linux-image-generic
I seguenti pacchetti verranno aggiornati:
  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 aggiornato, 0 appena installato, 0 da rimuovere e 2 non aggiornato.
Necessità di ottenere 0 B/14,4 MB di archivi.
Dopo questa operazione, 3.072 B di spazio su disco aggiuntivo saranno utilizzati.
/>Vuoi continuare [S/n]? <-- n

6 Elimina il sottovolume @ (opzionale)

Se sei sicuro che il rollback abbia avuto successo e non hai più bisogno del vecchio sottovolume @ (ora chiamato @_badroot), puoi eliminarlo per liberare spazio.

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]:~#
btrfs subvolume delete /mnt/@_badroot
umount /mnt

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

Ubuntu
  1. Ripristina il tuo sistema con la modalità utente singolo in Ubuntu / Ubuntu 11.10

  2. Il Bluetooth non funziona in Ubuntu 16.04 con [0cf3:3004] Adattatore Atheros?

  3. Ubuntu 18.04 ha smesso di funzionare con i driver Nvidia?

  4. Il touchpad Elan non funziona su Lenovo Ideapad con Ubuntu 16.04?

  5. R 3.5.0 non funziona su Ubuntu 18.04?

Come monitorare le risorse di sistema con uno sguardo su Ubuntu 20.04

Lavorare con più schede di terminale in Ubuntu

Come ripristinare il tuo sistema Ubuntu Linux allo stato precedente

Come sostituire Gnome Screensaver con Xscreensaver su Ubuntu

Come sincronizzare l'ora di sistema con i server dell'ora Internet su Ubuntu 20.04

Come formattare una partizione del disco rigido con BTRFS su Ubuntu 20.04