GNU/Linux >> Znalost Linux >  >> Ubuntu

Návrat do pracovního stavu pomocí btrfs + apt-btrfs-snapshot na Ubuntu 12.10

Tento tutoriál vysvětluje, jak můžete vrátit neúspěšné operace apt (jako je upgrade apt-get) a vrátit se zpět do předchozího stavu systému pomocí apt-btrfs-snapshot na systému Ubuntu 12.10, který používá systém souborů btrfs. apt-btrfs-snapshot vytvoří snímek systému před operací apt. Možnost snadného obnovení předchozího stavu systému po neúspěšné operaci apt odstraňuje mnoho bolesti, se kterou se správci systému musí běžně vypořádat, a je jednou z největších funkcí souborového systému btrfs.

Neposkytuji žádnou záruku, že to pro vás bude fungovat!

1 předběžná poznámka

V tomto tutoriálu jsem nainstaloval celý systém na souborový systém btrfs, tj. v systému souborů ext není žádný samostatný oddíl /boot. Pokud použijete samostatný oddíl /boot a apt na tento oddíl cokoli nainstaluje (např. nové jádro), nemůžete vrátit změny v oddílu /boot pomocí apt-btrfs-snapshot- lze vrátit pouze změny na oddílu btrfs.

Můj pevný disk se v tomto návodu jmenuje /dev/sda, můj systémový oddíl je /dev/sda1.

Poznámka pro uživatele Ubuntu:

Protože musíme všechny kroky z tohoto tutoriálu spustit s právy root, můžeme buď před všechny příkazy v tomto tutoriálu přidat řetězec sudo, nebo se staneme rootem hned teď zadáním

sudo su

2 Nainstalovat apt-btrfs-snapshot

apt-btrfs-snapshot lze nainstalovat následovně:

apt-get install apt-btrfs-snapshot

Chcete-li zkontrolovat, zda je apt-btrfs-snapshot schopen vytvářet snímky operací apt, spusťte

podporováno apt-btrfs-snapshot

Mělo by se zobrazit:

[e-mail chráněný]:~# apt-btrfs-snapshot podporován
Podporováno
[e-mail chráněn]:~#

Pokud ne, vaše rozvržení subvolume btrfs se pravděpodobně liší od výchozího rozvržení Ubuntu, které je následující:

  • @ subvolume:připojen k /.
  • @home subvolume:připojen k /home.

Toto je výchozí rozložení dílčího svazku Ubuntu:

seznam dílčích svazků btrfs /
[e-mail chráněný]:~# seznam podsvazků btrfs /
ID 256 cesta nejvyšší úrovně 5 @
cesta ID 258 nejvyšší úrovně 5 @home
[e-mail chráněný]:~#

Pokud apt-btrfs-snapshot podporuje váš systém, můžete přejít ke kapitole 3.

3 Proveďte apt operaci

Nyní proveďte nějakou operaci apt, jako je upgrade apt-get, abychom otestovali, zda se můžeme vrátit do předchozího stavu.

Aktualizujte databázi balíčků...

aktualizace apt-get

... a upgradujte svůj systém:

upgrade apt-get

[email protected]:~# apt-get upgrade
Čtení seznamů balíčků... Hotovo
Vytváření stromu závislostí
Čtení informací o stavu... Hotovo
Následující balíčky byly uchovány zpět:
  linux-headers-generic linux-image-generic
Následující balíčky budou upgradovány:
  appport base-files isc-dhcp-client isc-dhcp-common libwhoopsie0 linux-generic -base lsb-release python3-apport python3-distupgrade python3-problem-report python3.2 python3.2-minimal
  ubuntu-release-upgrader-core vim vim-common> vim-runtime hoopsie-tiny 19 upgradováno, 0 nově instalovaných, 0 k odstranění a 2 neupgradováno.
Potřebujete získat 14,4 MB archivů.
Po této operaci bude 3 072 B dalšího místa na disku spotřebováno br / . chcete pokračovat [A/n]? <-- ENTER
Získat:1 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main base-files amd64 6.5ubuntu12 [69,6 kB]
Získat: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/ hlavní libwhoopsie0 amd64 0.2.7 [7 054 B]
Získat:4 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main lsb-base vše 4.0-0ubuntu26.1 [10,3 kB]
Get:5 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main isc-dhcp-client amd64 4.2.4-1ubuntu10.1 [775 kB]
Get: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]
Získat:10 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main vim amd64 2:7.3.547-4ubuntu1.1 [1 051 kB]
Získat :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 vše 1:0.190 .4 [141 kB]
Získat:16 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main python3-problem-report vše 2.6.1-0ubuntu6 [9 578 B]
Získejte:17 http://de.archive.ubuntu.com/ubuntu/ quantal-updates/main python3-apport vše 2.6.1-0ubuntu6 [85,7 kB]
Získejte:18 http://de.archive .ubuntu.com/ubuntu/ quan tal-updates/main appport vše 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]
Načteno 14,4 MB za 2 s (5 465 kB/s)
Podporováno
Vytvořte snímek '/tmp/apt-btrfs-snapshot-mp-jnW7I_/@' '/tmp/apt-btrfs-snapshot-mp-jnW7I_/@apt-snapshot-2012-11-22_11:50:38'
(Čtení databáze ... 52666 souborů a adresářů aktuálně nainstalovaných.)
Příprava na nahrazení základních souborů 6.5ubuntu11 (pomocí .../base-files_6.5ubuntu12_amd64.deb) ...
Rozbalování náhradních základních souborů ...
Zpracování spouštěčů pro man-db ... .
Zpracování spouštěčů pro informace o instalaci ...
Zpracování spouštěčů pro plymouth-theme-ubuntu-text ...
update-initramfs: odložení aktualizace (spouštěč aktivován)
Zpracovávání spouštěče pro initramfs-tools ...
update-initramfs: Generování /boot/initrd.img-3.5.0-17-generic
Nastavení základních souborů (6.5ubuntu12) ...
(Čtení databáze ... 52666 souborů a adresářů cu právě nainstalováno.)
Příprava na výměnu whoopsie 0.2.5 (pomocí .../whoopsie_0.2.7_amd64.deb) ...
whoopsie stop/čekání
Rozbalení náhrady hoopsie ...
Příprava na nahrazení libwhoopsie0 0.2.5 (pomocí .../libwhoopsie0_0.2.7_amd64.deb) ...
Rozbalení náhrady libwhoopsie0 ...
Příprava na nahrazení lsb-0ubunt 2. 4. pomocí .../lsb-base_4.0-0ubuntu26.1_all.deb) ...
Rozbalení náhradní lsb-base ...
Zpracování spouštěčů pro ureadahead ...
ureadahead bude reprofiled při příštím rebootu
Nastavení lsb-base (4.0-0ubuntu26.1) ...
(Čtení databáze ... 52666 souborů a adresářů aktuálně instalovaných.)
Příprava na výměnu isc- dhcp-client 4.2.4-1ubuntu10 (pomocí.../isc-dhcp-client_4.2.4-1ubuntu10.1_amd64.deb) ...
Rozbalení náhrady isc-dhcp-client ...
Příprava k nahrazení isc-dhcp-common 4.2.4-1ubuntu10 (pomocí.../isc-dhcp-common_4.2.4-1ubuntu10.1_amd64.deb) ...
Rozbalení náhrady isc-dhcp-common ...
Příprava ing na nahrazení lsb-release 4.0-0ubuntu26 (pomocí .../lsb-release_4.0-0ubuntu26.1_all.deb) ...
Rozbalení náhrady lsb-release ...
Příprava na 3 výměnu py .2 3.2.3-6ubuntu3 (pomocí .../python3.2_3.2.3-6ubuntu3.1_amd64.deb) ...
Rozbalení náhrady python3.2 ...
Příprava na nahrazení pythonu3.2 -minimal 3.2.3-6ubuntu3 (pomocí.../python3.2-minimal_3.2.3-6ubuntu3.1_amd64.deb) ...
Rozbalení náhrady python3.2-minimal ...
Příprava na nahradit vim 2:7.3.547-4ubuntu1 (pomocí .../vim_2%3a7.3.547-4ubuntu1.1_amd64.deb) ...
Rozbalení náhrady vim ...
Příprava na výměnu vim-tiny 2:7.3.547-4ubuntu1 (pomocí .../vim-tiny_2%3a7.3.547-4ubuntu1.1_amd64.deb) ...
Rozbalení náhrady vim-tiny ...
Příprava na výměnu vim -runtime 2:7.3.547-4ubuntu1 (pomocí .../vim-runtime_2%3a7.3.547-4ubuntu1.1_all.deb) ...
Rozbalení náhrady vim-runtime ...
Příprava na nahradit vim-common 2:7.3.547-4ubuntu1 (pomocí.../vim-common_2%3a7.3.547-4ubuntu1.1_a md64.deb) ...
Rozbalení náhrady vim-common ...
Příprava na výměnu ubuntu-release-upgrader-core 1:0.190.1 (pomocí .../ubuntu-release-upgrader- core_1%3a0.190.4_all.deb) ...
Rozbalení náhrady ubuntu-release-upgrader-core ...
Příprava na nahrazení python3-distupgrade 1:0.190.1 (pomocí.../python3 -distupgrade_1%3a0.190.4_all.deb) ...
Rozbalení náhrady python3-distupgrade ...
Příprava na nahrazení python3-problem-report 2.6.1-0ubuntu3 (pomocí .../python3- problem-report_2.6.1-0ubuntu6_all.deb) ...
Rozbalení náhrady python3-problem-report ...
Příprava na nahrazení python3-apport 2.6.1-0ubuntu3 (pomocí .../python3- apport_2.6.1-0ubuntu6_all.deb) ...
Rozbalení náhrady python3-apport ...
Příprava na nahrazení appport 2.6.1-0ubuntu3 (pomocí .../apport_2.6.1-0ubuntu)6_all.deb ...
appport stop/waiting
Rozbalení náhradní aplikace ...
Příprava na nahrazení linux-generic 3.5.0.17.19 (pomocí .../linux-generic_3.5.0.18.21_amd64 .deb ) ...
Rozbalení náhrady linux-generic ...
Zpracování spouštěčů pro man-db ...
Zpracování spouštěčů pro podporu mime ...
Zpracování spouštěčů pro ureadahead ...
Nastavení libwhoopsie0 (0.2.7) ...
Nastavení whoopsie (0.2.7) ...
whoopsie spuštění/spuštění, proces 7859
Nastavení isc-dhcp-common (4.2.4-1ubuntu10.1) ...
Nastavení isc-dhcp-client (4.2.4-1ubuntu10.1) ...
Nastavení lsb-release ( 4.0-0ubuntu26.1) ...
Nastavení python3.2-minimal (3.2.3-6ubuntu3.1) ...
Nastavení python3.2 (3.2.3-6ubuntu3.1) ...
Nastavení vim-common (2:7.3.547-4ubuntu1.1) ...
Nastavení vim-runtime (2:7.3.547-4ubuntu1.1) ...
Zpracování /usr/share/vim/addons/doc
Nastavení vim (2:7.3.547-4ubuntu1.1) ...
Nastavení vim-tiny (2:7.3.547 -4ubuntu1.1) ...
Nastavení python3-distupgrade (1:0.190.4) ...
Nastavení ubuntu-release-upgrader-core (1:0.190.4) ...
Nastavení python3-problem-report (2.6.1-0ubuntu6) ...
Nastavit ting up python3-apport (2.6.1-0ubuntu6) ...
Nastavení apport (2.6.1-0ubuntu6) ...
apport spuštění/spuštění
Nastavení linux-generic ( 3.5.0.18.21) ...
Zpracovávání spouštěčů pro libc-bin ...
Právě probíhá odložené zpracování ldconfig
[email protected]:~#

Jak vidíte, apt-btrfs-snapshot se před upgradem automaticky vytvořil jako snímek našeho systému (v tomto příkladu nazvaný @apt-snapshot-2012-11-22_11:50:38). Můžete to zkontrolovat pomocí...

seznam dílčích svazků btrfs /
[e-mail chráněný]:~# seznam subvolume btrfs /
ID 256 cesta nejvyšší úrovně 5 @
cesta ID 258 nejvyšší úrovně 5 @home
ID 260 cesta nejvyšší úrovně 5 @apt- snapshot-2012-11-22_11:50:38
[e-mail chráněný]:~#

... a:

seznam apt-btrfs-snapshot
[chráněno e-mailem]:~# seznam snímků apt-btrfs
Dostupné snímky:
@apt-snapshot-2012-11-22_11:50:38
[chráněno e-mailem]:~#

4 vrácení

Nyní předpokládejme, že poslední operace apt změnila náš pracovní systém na systém, který již nefunguje podle očekávání. Proto chceme obnovit předchozí stav systému, tj. chceme provést vrácení zpět.

Proto připojíme souborový systém btrfs na samostatné místo, např. /mnt:

připojit /dev/sda1 /mnt

Nyní můžeme vidět naše podsvazky ve výstupu:

ls -l /mnt/
[e-mail chráněn]:~# ls -l /mnt/
celkem 0
drwxr-xr-x 1 kořenový kořen 230 listopad 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 protected ]:~#

@apt-snapshot-2012-11-22_11:50:38 je snímek našeho pracovního kořenového souborového systému (@) před operací apt. Aby se systém spustil z tohoto funkčního snímku namísto z aktuálního podsvazku, přejmenujeme @ na něco jiného a poté @apt-snapshot-2012-11-22_11:50:38 na @:

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

Nyní restartujte:

restartovat

5 Kontrola, zda bylo vrácení úspěšné

Po restartu bychom měli zkontrolovat, zda bylo vrácení úspěšné. Abychom to udělali, zopakujeme operaci apt, která učinila náš systém nepoužitelným, např.:

aktualizace apt-get
upgrade apt-get

Pokud bylo vrácení úspěšné, upgrade apt-get by měl zobrazovat stejné balíčky dostupné pro aktualizaci jako dříve (protože jde pouze o kontrolu, zda bylo vrácení úspěšné, aktualizace znovu neinstalujte):

[email protected]:~# apt-get upgrade
Čtení seznamů balíčků... Hotovo
Vytváření stromu závislostí
Čtení informací o stavu... Hotovo
Následující balíčky byly uchovány zpět:
  linux-headers-generic linux-image-generic
Následující balíčky budou upgradovány:
  appport base-files isc-dhcp-client isc-dhcp-common libwhoopsie0 linux-generic -base lsb-release python3-apport python3-distupgrade python3-problem-report python3.2 python3.2-minimal
  ubuntu-release-upgrader-core vim vim-common> vim-runtime hoopsie-tiny 19 upgradováno, 0 nově instalovaných, 0 k odstranění a 2 neupgradováno.
Potřebuji získat 0 B/14,4 MB archivů.
Po této operaci bude 3 072 B dodatečného místa na disku použito. />Chcete pokračovat [A/n]? <-- n

6 Smazat @ Subvolume (volitelné)

Pokud jste si jisti, že vrácení bylo úspěšné a starý @ subvolume (nyní pojmenovaný @_badroot) již nepotřebujete, můžete jej smazat, abyste uvolnili místo.

připojit /dev/sda1 /mnt
ls -l /mnt/
[e-mail chráněn]:~# ls -l /mnt/
celkem 0
drwxr-xr-x 1 kořenový kořen 230 listopad 22 10:46 @
drwxr-xr-x 1 root 230 Nov 22 10:46 @_badroot
drwxr-xr-x 1 root root  26 Nov 22 10:57 @home
[e-mail chráněný]:~#
Btrfs subvolume delete /mnt/@_badroot
umount /mnt

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

Ubuntu
  1. Bluetooth nefunguje v Ubuntu 16.04 s [0cf3:3004] adaptérem Atheros?

  2. Ubuntu 18.04 přestal pracovat s ovladači Nvidia?

  3. Touchpad Elan nefunguje na Lenovo Ideapad s Ubuntu 16.04?

  1. Obnovte svůj systém pomocí režimu jednoho uživatele v Ubuntu / Ubuntu 11.10

  2. 5.1 Surround System Subwoofer nefunguje?

  3. Nastavte chroot prostředí na Ubuntu pomocí debootstrap

  1. Monitorování systému Ubuntu 20.04 s widgety Conky

  2. Rozbočovač USB 3.0 nefunguje s některými zařízeními na Ubuntu 18.04?

  3. R 3.5.0 nefunguje na Ubuntu 18.04?