Kapitola 4. Aktualizace z Debianu 5.0 (Lenny)

Obsah

4.1. Příprava na aktualizaci systému
4.1.1. Záloha dat a konfigurace
4.1.2. Informujete uživatele s předstihem
4.1.3. Připravte se na výpadek služeb
4.1.4. Připravte si plán B
4.1.5. Příprava záchranné sítě
4.1.6. Odstranění konfliktních balíků
4.2. Kontrola stavu systému
4.2.1. Kontrola naplánovaných akcí ve správci balíků
4.2.2. Zákaz vypichování balíků
4.2.3. Kontrola stavu balíků
4.2.4. Navrhované aktualizace (proposed-updates)
4.2.5. Neoficiální zdroje a backporty
4.3. Příprava zdrojů pro APT
4.3.1. Nastavení APT pro aktualizaci přes Internet
4.3.2. Nastavení APT pro aktualizaci z lokálního archivu
4.3.3. Nastavení APT pro aktualizaci z CD nebo DVD
4.4. Aktualizace balíků
4.4.1. Nahrávání sezení
4.4.2. Aktualizace seznamu balíků
4.4.3. Ujistěte se, že máte pro aktualizaci dostatek místa
4.4.4. Minimální aktualizace systému
4.4.5. Aktualizace jádra a udev
4.4.6. Aktualizace systému
4.5. Možné problémy během aktualizace
4.5.1. Podpora cryptoloop již není součástí linuxových jader
4.5.2. Očekávaná odstranění
4.5.3. Chyby při běhu apt-get nebo aptitude
4.5.4. Konflikty a cykly v předzávislostech
4.5.5. Konflikty souborů
4.5.6. Změny v konfiguračních souborech
4.5.7. Změny konfigurace
4.5.8. Zvýšená ostražitost u specifických balíků
4.6. Aktualizace jádra a okolních balíků
4.6.1. Instalace metabalíku jádra
4.6.2. Změna ve výčtu zařízení
4.6.3. Problémy s časováním při zavádění
4.7. Systém se zasekne na Waiting for root file system
4.7.1. Jak se vyhnout problému dříve, než nastane
4.7.2. Jak se vypořádat s problémem po aktualizaci
4.8. Příprava na příští vydání
4.8.1. Přechod na GRUB2
4.9. Zapovězené komponenty
4.10. Zastaralé balíky
4.10.1. Prázdné balíky

4.1. Příprava na aktualizaci systému

Před aktualizací systému je velmi vhodné vytvořit úplnou záložní kopii dat, nebo přinejmenším zálohovat data a konfigurační soubory, které byste jen neradi ztratili. Nástroje pro aktualizaci systému jsou zcela spolehlivé, ale například selhání hardware během aktualizace by mohlo mít nedozírné důsledky a mohlo by vést až k poškození systému.

Doporučujeme se podívat také na problémy explicitně vypsané v kapitole 5 – „Na co si dávat pozor u Squeeze. Kapitola se sice přímo nezabývá procesem aktualizace, ale některé body mohou být i přesto relevantní a je dobré je vědět předem.

4.1.1. Záloha dat a konfigurace

Nejdůležitější pro vás zřejmě bude zazálohovat obsah /etc, /var/lib/dpkg, /var/lib/apt/extended_states a rovněž výstup z dpkg --get-selections "*" (uvozovky jsou důležité). Používáte-li pro správu balíků aptitude, je vhodné zazálohovat i /var/lib/aptitude/pkgstates.

Aktualizace samotná v domovských adresářích uživatelů nic nemění, avšak existují aplikace (např. části balíku Mozilla a desktopových prostředí KDE a GNOME), které při spuštění nové verze přepisují stará nastavení novými výchozími hodnotami. Jako prevenci můžete zkusit zazálohovat všechny skryté soubory a adresáře (tzv. tečkové soubory) z uživatelských adresářů, což pomůže při případné obnově.

Instalační procedura musí být vykonána s privilegii superuživatele. Je tedy nutné buďto se přihlásit jako uživatel root, nebo nabýt jeho práv prostřednictvím programů su nebo sudo.

4.1.2. Informujete uživatele s předstihem

Je dobré informovat uživatele o změnách, které v sytému vlivem aktualizace nastanou. Je to vhodné i v případě, že se uživatelé na váš systém přihlašují vzdáleně (pomocí ssh) a vůbec nemusí změny během aktualizace systému postřehnout.

Pokud chcete systém aktualizovat obzvlášť bezpečně, zazálohujte nebo odpojte před aktualizací oblast pro domovské adresáře (/home).

Při přechodu na Squeeze se aktualizuje jádro, takže bude vyžadován restart systému.

4.1.3. Připravte se na výpadek služeb

Pokud jsou s aktualizovanými balíky spojeny nějaké služby (třeba webový server), mohu být tyto služby během aktualizace pozastaveny po dobu, než se balíky nahradí za novou verzi a než proběhne jejich konfigurace.

Přesná doba výpadku služeb se bude lišit podle počtu aktualizovaných balíků a mimo jiné je také závislá na tom, jak rychle bude správce systému odpovídat na konfigurační otázky ostatních balíků (jestliže takové budou). Pokud necháte aktualizaci běžet bez dozoru a systém během ní bude vyžadovat odpověď na nějakou otázku, čas výpadku se samozřejmě prodlouží o dobu, než někdo přijde a odpoví[4].

Jestliže aktualizovaný systém poskytuje kritické nebo síťové služby[5], můžete zmenšit výpadek služeb tím, že nejprve provedete minimální aktualizaci systému podle 4.4.4 – „Minimální aktualizace systému“ následovanou aktualizací jádra a restartem (viz 4.4.5 – „Aktualizace jádra a udev“). Poté aktualizujte kritické služby a teprve následně aktualizujte celý zbytek systému podle 4.4.6 – „Aktualizace systému“. Tím zajistíte, že kritické služby nepoběží jen po nezbytně nutnou dobu a hlavně budou k dispozici během hlavní části aktualizace, která zabírá nejvíce času.

4.1.4. Připravte si plán B

Kvůli mnoha změnám, které se v jádře udály mezi Lennym a Squeezem v oblasti ovladačů, rozpoznávání hardwaru a pojmenování a uspořádání zařízení, zde existuje opravdové riziko, že po aktualizaci při restartu systému zaznamenáte problémy. Mnoho potenciálních změn je zachyceno v této a následujících kapitolách.

Z tohoto pohledu dává smysl připravit záchrannou cestu, pomocí které budete moci systém obnovit v případě, že se nepodaří následný restart, resp. že se u vzdálených systémů nepodaří nahodit síťování.

Při vzdálené aktualizaci přes ssh se doporučuje mít záložní plán (alias konzoli na sériové lince) pro případ, že se něco nepovede. Je totiž jistá šance, že se po aktualizaci jádra a následném restartu změní jména některých zařízení (viz část 4.6.2 – „Změna ve výčtu zařízení“) a bude nutné opravit konfiguraci přes lokální konzoli. To stejné platí pro případ, že počítač omylem během aktualizace restartujete.

Snad každého napadne zkusit znovu restartovat s původním jádrem. Z mnoha důvodů, které jsou porůznu roztroušeny v těchto poznámkách, není zaručeno, že se to povede.

Pokud staré jádro selže, musíte nalézt alternativní způsob, jak zavést svůj systém, abyste jej mohli následně opravit. Jednou z možností je použití speciálního záchranného obrazu, nebo nějakého linuxového live CD. Po zavedení náhradního systému byste měli být schopni připojit svůj kořenový souborový systém a chrootovat se do něj, což vám umožní prozkoumání a opravení problému.

Jinou možností je použití záchranného režimu instalačního systému Squeeze. Výhodou použití instalačního systému je to, že si z mnoha různých instalačních metod můžete vybrat tu, která se pro vaši situaci hodí nejvíce. Více informací naleznete v osmé kapitole instalační příručky a v Debian Installer FAQ.

4.1.4.1. Ladicí shell při zavádění pomocí initrd

initramfs-tools přidávají do vytvářeného initrd malý shell[6], který se dá použít pro ladění. Jestliže se například nepovede připojit kořenový souborový systém, budete vhozeni do tohoto ladicího shellu, který obsahuje základní příkazy, které umožní vysledovat problém a v lepším případě jej i opravit.

Mezi základní věci, které byste měli zkontrolovat, patří: přítomnost správných souborů zařízení v /dev; které moduly jsou zavedeny (cat /proc/modules); výstup dmesg ohledně chyb při nahrávání ovladačů. Výstup dmesg také prozradí, které soubory zařízení byly přiřazeny kterým diskům; to byste měli porovnat proti výstupu příkazu echo $ROOT, čímž se ujistíte, zda se kořenový souborový systém nachází na očekávaném zařízení.

Podaří-li se vám problém opravit, příkazem exit ukončete ladicí shell a zavádění bude pokračovat v místě, kde bylo přerušeno. Následně byste měli opravit příčinu problému a znovu vygenerovat initrd, aby již příští zavádění neselhalo.

4.1.5. Příprava záchranné sítě

Aktualizaci distribuce je možné provést lokálně z textové virtuální konzoly (resp. z přímo napojeného sériového terminálu), nebo vzdáleně pomocí ssh spojení.

[Důležité]Důležité

Používáte-li VPN služby (jako třeba tinc), nemusí být tyto během aktualizace dostupné. Více informací naleznete v kapitole 4.1.3 – „Připravte se na výpadek služeb“.

Jako další pojistku doporučujeme instalovat ve virtuální konzoli programu screen, který umožňuje bezpečné odpojení a nové připojení ke stávajícímu sezení. Díky tomu zajistí nepřerušený proces aktualizace i v případech, kde se vám rozpadne spojení.

[Důležité]Důležité

Během aktualizace systému byste neměli používat služby telnet, rlogin, ani rsh. Rovněž byste systém neměli aktualizovat ze sezení spravovaného programem xdm běžícím na témže systému. To platí i pro varianty wdm, gdm a kdm, protože tyto služby mohou být během aktualizace přerušeny. Přerušení během aktualizace systému je samozřejmě problematické. V horším případě může vyústit až do nedostupného a nekonzistentně nainstalovaného systému.

4.1.6. Odstranění konfliktních balíků

Kvůli chybě #512951 je třeba před aktualizací vyčistit systém od balíku splashy.

# apt-get purge splashy
      

4.2. Kontrola stavu systému

Aktualizační proces popsaný v této kapitole byl navržen pro přechod z „čistého“ systému Lenny bez balíků třetích stran. Jestliže máte takové balíky nainstalovány, je rozumné je dočasně odinstalovat, což zvýší spolehlivost aktualizace.

Používáte-li starší systém než Debian 5.0 (Lenny), musíte nejprve přejít na verzi 5.0 a teprve potom pokračovat dále. Přechod na verzi 5.0 popisuje dokument Debian GNU/Linux 5.0 - Poznámky k vydání.

Také se předpokládá, že byl systém aktualizován na poslední verzi Lennyho. Pokud si nejste jisti, následujte pokynů v A.1 – „Aktualizace systému Lenny“.

4.2.1. Kontrola naplánovaných akcí ve správci balíků

V některých případech se může stát, že pokud byly balíky instalovány pomocí apt-get místo aptitude, aptitude to občas zmate a označí je k odstranění, protože si myslí, že je nikdo nepoužívá. Obecně byste se měli přesvědčit, že je systém před velkou aktualizací plně aktualizovaný a „čistý“.

Proto je potřeba ověřit, zda se ve správci balíků aptitude nevyskytují nějaké naplánované akce. Pokud totiž existují balíky naplánované k odstranění, může to negativně ovlivnit průběh aktualizace. Mějte prosím na paměti, že tento postup je možný pouze v případě, pokud váš sources.list ukazuje stále na lenny a ne na stable nebo squeeze; více viz A.2 – „Kontrola zdrojů balíků“.

Spusťte tedy aptitude v interaktivním režimu a stiskněte g. Pokud se zobrazí nějaké naplánované akce, měli byste je zkontrolovat a buď je provést, nebo vrátit zpět. Jestliže žádné akce naplánovány nebyly, zobrazí se hláška „Žádné balíky nejsou označeny k instalaci, aktualizaci nebo odstranění“.

4.2.2. Zákaz vypichování balíků

Pokud máte nastaven APT, aby instaloval vybrané (vypíchnuté) balíky z jiné, než stabilní distribuce (např. testovací), budete možná muset změnit pravidla pro vypichování (v souboru /etc/apt/preferences) tak, abyste povolili aktualizace balíků na nové verze balíků ve stabilní verzi. Podrobnosti o vypichování balíků naleznete v apt_preferences(5).

4.2.3. Kontrola stavu balíků

Nehledě na metodu aktualizace systému se nejdříve doporučuje zkontrolovat stav všech balíků a prověřit, jestli jsou všechny balíky schopny aktualizace. Pomocí následujícího příkazu je možné vypsat seznam balíků, jenž mají buďto status Half-Installed, Failed-Config, nebo jsou v jiném chybovém stavu.

# dpkg --audit
      

Stav všech balíků lze prohlédnout rovněž pomocí programu dselect, aptitude, nebo příkazem

# dpkg -l | pager
      

nebo

# dpkg --get-selections "*" > ~/curr-pkgs.txt
      

Doporučuje se, abyste před aktualizací odstranili u balíků status podržení v aktuálním stavu („on hold“). Pokud bude mít kterýkoliv z významných balíků nastaven tento příznak, nebude jej možné aktualizovat a tím pádem celý proces skončí neúspěchem.

aptitude používá pro označení balíků v podrženém stavu odlišný způsob než apt-get a dselect. Balíky s příznakem „on hold“ lze pro aptitude zobrazit příkazem

# aptitude search "~ahold" | grep "^.h"
      

Chcete-li vypsat podržené balíky pro apt-get, použijte

# dpkg --get-selections | grep hold
      

Pokud v systému udržujete vlastní změněné balíky, to jest balíky vzniklé změnou a překladem standardního balíku z distribuce, měli byste jej označit příznakem „on hold“. Tímto preventivním opatřením zajistíte jeho setrvání v aktuálním stavu -- novější balík z distribuce jej nenahradí.

Příznak „on hold“ můžete nastavit pro apt-get příkazem

# echo balík hold | dpkg --set-selections
      

Příznak odeberete analogicky, stačí nahradit hold za install.

V této fázi je lepší se přesvědčit, že sources.list stále ukazuje na předchozí stabilní verzi pro případ, že byste potřebovali něco spravit. Viz část A.2 – „Kontrola zdrojů balíků“.

4.2.4. Navrhované aktualizace (proposed-updates)

Jestliže máte ve svém souboru /etc/apt/sources.list uveden odkaz na proposed-updates, dočasně jej před aktualizací zakomentujete. Jedná se o preventivní opatření s cílem snížit pravděpodobnost konfliktů mezi balíky.

4.2.5. Neoficiální zdroje a backporty

Máte-li v systému nainstalované balíky odjinud než z Debianu, může se stát, že budou kvůli konfliktům během aktualizace odstraněny. Pokud jste je nainstalovali ze zdroje balíků v /etc/apt/sources.list, podívejte se, zda daný archiv nabízí balíky sestavené pro Squeeze, a poté se změnou zdrojů oficiálních balíků příslušně změňte i tyto zdrojové řádky.

Někteří uživatelé mohou mít neoficiální verze „novějších“ balíků, které jsou v Debianu obsaženy ve verzích běžně dostupných v distribuci Lenny. Tyto balíky pravděpodobně způsobí konflikty mezi soubory[7]. Část 4.5 – „Možné problémy během aktualizace“ obsahuje některé informace o řešení těchto problémů.

4.3. Příprava zdrojů pro APT

Před zahájením aktualizace systému musíte nastavit konfigurační soubor se zdroji pro apt (/etc/apt/sources.list).

apt při aktualizaci či instalaci uvažuje pouze balíky, které může nalézt prostřednictvím zdrojů uvedených v konfiguračním souboru a začínajících na „deb“. Instalován je balík s nejvyšší dostupnou verzí, přitom zdroje uvedené na předcházejících řádcích mají vždy vyšší prioritu než jejich následníci. (Prakticky lze v souboru uvést nejdříve například zdroje z lokálního pevného disku, dále CD-ROM a na poslední místo uvést zdroje z vnější počítačové sítě.)

Vydání může být odkazováno svým kódovým jménem (např. lenny, squeeze) nebo svým stavovým jménem (tj. oldstable, stable, testing, unstable). Odkazování na vydání jeho kódovým jménem má tu výhodu, že nikdy nebudete překvapeni novou verzí a proto je to doporučený postup. To ovšem také znamená, že budete muset sledovat ohlášení o nové verzi sami. Použijete-li stavové jméno, poznáte novu verzi podle toho, že okamžitě po vydání vám najednou bude k dispozici spousty aktualizací.

4.3.1. Nastavení APT pro aktualizaci přes Internet

Výchozí nastavení obsahuje údaje pro instalaci z našich hlavních archivů v Internetu, to však můžete lehce změnit. Po úpravě souboru /etc/apt/sources.list je možné používat i jiné zdroje, především archivy, které jsou k vám na síti blíže a budou mít rychlejší odezvu a větší přenosové rychlosti.

Adresy FTP a HTTP archivů Debianu je možné najít na http://www.debian.org/distrib/ftplist (hledejte část „list of Debian mirrors“). HTTP zrcadla bývají obvykle rychlejší než FTP zrcadla.

Předpokládejme například, že váš nejbližší archiv je http://mirrors.kernel.org. Při jeho prohledávání pomocí WWW prohlížeče nebo pomocí FTP klienta jste zjistili, že hlavní adresáře jsou:

http://mirrors.kernel.org/debian/dists/squeeze/main/binary-i386/...
http://mirrors.kernel.org/debian/dists/squeeze/contrib/binary-i386/...

Pokud se rozhodnete používat tento archiv, přidejte do souboru sources.list následující řádek:

deb http://mirrors.kernel.org/debian squeeze main contrib

Podadresář „dists“ je do cesty přidán implicitně a argumenty za názvem distribuce jsou určeny pro rozšíření takto specifikované cesty do několika adresářů.

Poté, co do souboru sources.list přidáte nové zdroje balíků, zakomentujte předchozí údaje. To jest na začátek všech řádků začínajících „deb“ vložte symbol hash (#).

4.3.2. Nastavení APT pro aktualizaci z lokálního archivu

Místo používání FTP nebo HTTP zrcadel budete možná chtít použít lokální archiv, a upravit soubor /etc/apt/sources.list pro použití zrcadla na lokálním disku (nebo třeba na souborovém systému exportovanému pomocí NFS).

Předpokládejme, že vaše balíky jsou například v adresáři /var/ftp/debian/ a mají následující hlavní adresáře:

/var/ftp/debian/dists/squeeze/main/binary-i386/...
/var/ftp/debian/dists/squeeze/contrib/binary-i386/...

Do souboru sources.list je nutné přidat následující řádek:

deb file:/var/ftp/debian squeeze main contrib

Podadresář dists je do cesty přidán implicitně a argumenty za názvem distribuce jsou určeny pro rozšíření takto specifikované cesty do několika adresářů.

Poté co do souboru sources.list přidáte nové zdroje balíků, zakomentujte předchozí údaje. To jest na začátek všech řádků začínajících „deb“ vložte symbol hash (#).

4.3.3. Nastavení APT pro aktualizaci z CD nebo DVD

Pokud chcete používat výhradně sadu CD, zakomentujte v souboru /etc/apt/sources.list existující řádky začínající „deb“ tím, že na jejich začátek vložíte znak hash (#).

Přesvědčte se, že je ve vašem souboru /etc/fstab řádek umožňující připojit CD-ROM mechaniku na adresář /cdrom (pro metodu apt-cdrom je nutné mít adresář pro připojení CD-ROM právě /cdrom). Pokud je vaše CD-ROM mechanika například /dev/hdc, měl by soubor /etc/fstab obsahovat obdobný řádek:

/dev/hdc /cdrom auto defaults,noauto,ro 0 0

Ve čtvrtém sloupci nesmí být mezi slovy defaults,noauto,ro žádné mezery.

Pokud chcete ověřit funkčnost, vložte do mechaniky CD a spusťte

# mount /cdrom    # připojí CD do adresáře
# ls -alF /cdrom  # vypíše obsah CD
# umount /cdrom   # odpojí CD
      

Dále spusťte:

# apt-cdrom add

      

pro každé binární CD z vaší sady debianích CD. Tím se přidají data o každém médiu do vaší APT databáze.

4.4. Aktualizace balíků

Doporučený nástroj pro přechod na vyšší verzi Debian GNU/Linuxu se nazývá apt-get. Dřívější vydání pro tento účel doporučovala nástroj aptitude, ale novější verze apt-get poskytují srovnatelnou funkcionalitu a hlavně podávají konzistentnější výsledky s ohledem na zamýšlený výsledek.

Nezapomeňte připojit všechny potřebné diskové oblasti (zejména oblasti s kořenovým souborovým systémem a adresářem /usr) pro čtení i zápis (read-write) příkazem:

# mount -o remount,rw /adresář
    

Dále byste se měli (raději dvakrát) přesvědčit, že zdroje v /etc/apt/sources.list ukazují na „squeeze“ nebo na „stable“. Neměl by tam být žádný záznam ukazující na lenny.

[Poznámka]Poznámka

Záznamy pro CD mohou občas ukazovat na „unstable“, ale nenechte se tím zmást a neměňte je, je to v pořádku.

4.4.1. Nahrávání sezení

Důrazně doporučujeme zaznamenat průběh aktualizace systému pomocí programu /usr/bin/script. Jestliže se objeví nějaký problém, minimálně budete mít záznam o tom, co se stalo. Navíc po dokončení instalace můžete podat přesné hlášení chyby (bug report). Záznam je možné zahájit příkazem:

# script -t 2>~/upgrade-squeeze.time -a ~/upgrade-squeeze.script
      

nebo podobným. Poznamenejme, že není vhodné umísťovat soubor se záznamem do dočasného adresáře jako je /tmp nebo /var/tmp. Obsah těchto adresářů může být během aktualizace nebo restartu systému smazán.

Typescript vám také pomůže najít informaci, která už z obrazovky dávno zmizela. Jste-li u systému, přepněte se na druhou konzoli (klávesami Alt+F2) a po přihlášení si můžete soubor prohlížet příkazem less -R ~root/upgrade-squeeze.script.

Po dokončení aktualizace je rozumné script zastavit příkazem exit na příkazovém řádku.

Jestliže jste při zaznamenávání použili přepínač -t, můžete celé sezení přehrát programem scriptreplay:

# scriptreplay ~/upgrade-squeeze.time ~/upgrade-squeeze.script
      

4.4.2. Aktualizace seznamu balíků

Nejprve je nutno stáhnout soubor, který obsahuje výčet balíků patřících do nové verze Debianu. To provedete příkazem:

# apt-get update
      

4.4.3. Ujistěte se, že máte pro aktualizaci dostatek místa

Před kompletní aktualizací svého systému podle kapitoly 4.4.6 – „Aktualizace systému“ se ujistěte, že máte na disku dostatek volného místa. Nejprve budete potřebovat dostatek volného místa na oblasti, která hostí /var/, protože sem se dočasně stáhnou balíky, které se pak budou instalovat. (Balíky se stahují do /var/cache/apt/archives/partial a po úspěšném stažení se přesunou o adresář výš.) Poté budete potřebovat další místo v oblastech, do kterých se budou aktualizované a nové balíky instalovat. Aktualizované balíky mohou obsahovat větší programy nebo více dat, nové balíky mohou být vyžadovány kvůli splnění nových závislostí. Pokud váš systém nemá dostatek volného místa, může aktualizace skončit někde v půli cesty a nemusí být snadné se dostat zpět do použitelného stavu.

apt-get i aptitude poskytují podrobné informace o místu nutném k instalaci. Ještě před instalací můžete získat odhad vyžadovaného místa spuštěním:

# apt-get -o APT::Get::Trivial-Only=true dist-upgrade
[ ... ]
XXX aktualizováno, XXX nově instalováno, XXX k odstranění a XXX neaktualizováno.
Potřebuji stáhnout xxxB archivů.
Po této operaci bude na disku použito dalších yyyB.
      
[Poznámka]Poznámka

Jak je popsáno dále, spuštění tohoto příkazu na začátku aktualizace může skončit chybou. V takovém případě musíte s příkazem pro zjištění potřebného místa počkat až provedete minimální aktualizaci (4.4.4 – „Minimální aktualizace systému“) a aktualizujete jádro.

Nemáte-li k aktualizaci dostatek místa, apt-get vás bude varovat následující hláškou:

V /var/cache/apt/archives nemáte dostatek volného místa.
      

V takovém případě bude třeba nějaké místo uvolnit. Můžete:

  • Odstranit soubory s balíky, které byly staženy do vyrovnávací paměti (/var/cache/apt/archive) příkazem apt-get clean nebo aptitude clean.

  • Odstranit staré balíky, které již nepoužíváte. Máte-li nainstalován popularity-contest, můžete vypsat největší nepoužívané balíky příkazem popcon-largest-unused. S vyhledáním nepotřebných balíků pomohou i programy deborphan nebo debfoster (viz 4.10 – „Zastaralé balíky“). Jinou možností je spustit aptitude v celoobrazovkovém režimu, kde naleznete staré balíky ve větvi „Zastaralé a lokálně vytvořené balíky“.

  • Odstranit balíky, které zabírají zbytečně mnoho místa a pro které nemáte momentální uplatnění (vždycky si je můžete znovu doinstalovat). Seznam nejobjemnějších balíků můžete získat programem dpigs (součástí balíku debian-goodies) nebo wajig (spuštěním wajig size).

    Velké nepoužívané balíky vám může pomoci odhalit také aptitude. Spusťte ji v celoobrazovkovém režimu a zvolte nabídku PohledyNový plochý seznam balíků, stiskněte l a zadejte ~i, potvrďte klávesou Enter, stiskněte S a zadejte ~installsize. Tímto získáte seznam instalovaných balíků řazený podle velikosti.

  • Odstranit ze systému nepoužívané překlady a lokalizační soubory. S tím vám pomůže balík localepurge, který se dá nastavit tak, aby v systému ponechal pouze několik vybraných locales. Tímto se zredukuje použité místo v adresáři /usr/share/locale.

  • Odstranit nebo dočasně přesunout na jiný systém systémové logy ve /var/log/

  • Použijte dočasný /var/cache/apt/archives: Protože tento adresář slouží jako dočasná vyrovnávací paměť, která je skutečně potřeba jen po čas instalace, můžete dočasně využít kapacitu odjinud (USB klíčenka, dočasný pevný disk, souborový systém obvykle používaný pro něco jiného, ...)

    [Poznámka]Poznámka

    Nepoužívejte souborový systém připojený přes NFS, protože se může stát, že se během instalace spojení přeruší.

    Například pokud máte USB zařízení (disk, klíčenku) přípojené na /media/usbkey, pak:

    1. Odstraňte balíky stažené při dřívějších instalacích:

      # apt-get clean

    2. Zkopírujte adresář /var/cache/apt/archives na USB zařízení:

      # cp -ax /var/cache/apt/archives /media/usbkey/

    3. Připojte dočasný adresář z USB zařízení namísto stávající vyrovnávací paměti balíků:

      # mount --bind /media/usbkey/archives /var/cache/apt/archives

    4. Po přechodu na Squeeze obnovte původní adresář /var/cache/apt/archives:

      # umount /media/usbkey/archives

    5. Odstraňte dočasné balíky z /media/usbkey/archives.

    Obdobný trik můžete provést s libovolným souborovým systémem, který máte v počítači k dispozici.

  • Proveďte nejprve minimální aktualizaci systému podle 4.4.4 – „Minimální aktualizace systému“, vyprázdněte vyrovnávací paměť balíků a teprve pak aktualizujte zbytek systému. Zbytek systému také můžete zkusit aktualizovat po menších částech (postupnou aktualizací vybraných balíků a jejich závislostí) a před každým krokem vyrovnávací paměť balíků vyprázdnit.

Pro bezpečné odstranění balíků se doporučuje přepnout sources.list zpátky na lenny, jak popisuje část A.2 – „Kontrola zdrojů balíků“.

4.4.4. Minimální aktualizace systému

Protože některé klíčové balíky mezi sebou mohou ve verzích pro Lennyho a Squeeze kolidovat, mohla by plná aktualizace (popsaná níže) odstranit mnoho balíků, které si nejspíš chcete ponechat. Doporučujeme přechod uskutečnit dvoufázově. V první fázi se provede minimální aktualizace, při které se vyřeší zmíněné konflikty a ve druhé fázi potom následuje plná aktualizace popsaná v kapitole 4.4.6 – „Aktualizace systému“.

Pro minimální aktualizaci spusťte

# apt-get upgrade
      

Tím se aktualizují ty balíky, které mohou být aktualizovány bez instalace nebo odstranění jiných balíků.

Minimální aktualizace systému se také může hodit v případech, kdy má systém nedostatek místa pro plnou aktualizaci.

4.4.5. Aktualizace jádra a udev

Verze udev ve Squeeze vyžaduje jádro 2.6.26 a novější, ve kterém je zakázána volba CONFIG_SYSFS_DEPRECATED a naopak povoleny volby CONFIG_INOTIFY_USER a CONFIG_SIGNALFD. Standardní jádro z Lennyho se sice pyšní vhodnou verzí (2.6.26), ale bohužel má zapnutou volbu CONFIG_SYSFS_DEPRECATED. K tomu přidejme, že udev v Lennym nefunguje správně s novějšími jádry, protože neposkytuje veškerou funkcionalitu, kterou novější jádra očekávají a je o zábavu postaráno.

Při zavedení jádra 2.6.26 z Lennyho na systému používajícím udev ze Squeeze se bude většina programů tvářit, jako že normálně funguje, ale některá pravidla se nenahrají, což se může projevit tak, že se nepřiřadí správné názvy síťovým zařízením, nebo že se blokovým zařízením nepřiřadí dodatečná oprávnění (například přístup pro skupinu disk). Z tohoto důvodu je nyní doporučeno aktualizovat jádro, aby bylo k dispozici ještě před instalací udev.

Jádro aktualizujete příkazem:

# apt-get install linux-image-2.6-varianta
      

S rozhodováním, kterou variantu jádra si máte nainstalovat, vám pomůže 4.6.1 – „Instalace metabalíku jádra“.

Používáte-li zavaděč grub, měli byste se ujistit, že během aktualizace jádra proběhl i příkaz update-grub. Pokud ne, spusťte jej ručně.

Okamžitě po aktualizaci jádra byste měli nainstalovat nový udev, abyste snížili riziko dalších nekompatibilit mezi starým udev a novějším jádrem[8]

# apt-get install udev
      

Po aktualizaci jádra i udev byste měli systém restartovat.

4.4.6. Aktualizace systému

Po splnění předchozích kroků byste měli být připraveni aktualizovat hlavní část systému. Příkaz

# apt-get dist-upgrade
      

zahájí kompletní aktualizaci systému, to jest nainstaluje nejnovější verze dostupných balíků a vyřeší všechny možné problémy mezi balíky z rozdílných distribucí. Pokud to bude nezbytné, nainstalují se další nové balíky (zpravidla nové verze knihoven nebo přejmenované balíky), a odstraní se konfliktní starší balíky.

Pokud aktualizujete systém ze sady CD nebo DVD, budete během aktualizace na různých místech vybídnuti ke vložení konkrétního disku. Je možné, že budete muset vložit jeden disk i několikrát, protože některé balíky závisejí na jiných, jenž jsou uloženy na jiném médiu.

Nové balíky, které nemohou být instalovány beze změny instalačního stavu jiných balíků budou ponechány ve svých původních verzích (zobrazováno jako „přidržení“). To můžete vyřešit programem aptitude, kde tyto balíky vyberete k instalaci, nebo můžete zkusit příkaz apt-get -f install balík.

4.5. Možné problémy během aktualizace

Následující kapitoly popisují známé problémy, která by se mohly během aktualizace na Squeeze vyskytnout.

4.5.1. Podpora cryptoloop již není součástí linuxových jader

Podpora pro šifrovaná zařízení využívající cryptoloop byla z balíků linuxového jádra v Debianu 6.0 odstraněna. Stávající instalace využívající cryptoloop musí být před aktualizací převedeny na dm-crypt.

4.5.2. Očekávaná odstranění

Během aktualizace na Squeeze můžete být požádáni o odstranění některých nainstalovaných balíků. Přesný seznam závisí na tom, které balíky máte zrovna nainstalované. V těchto poznámkách naleznete spíše obecná doporučení, tudíž doporučujeme před každou akcí odstraňující balíky věnovat seznamu zvýšenou pozornost.

Mezi typické balíky, u kterých se očekává jejich odstranění, patří: autofs (nahrazen balíkem autofs5), dhcp3 (nahrazen balíkem isc-dhcp), madwifi-source, python-setuptools a python2.4 (nahrazen novějším python2.6). Více o balících, které jsou v Squeeze považovány za zastaralé, naleznete v 4.10 – „Zastaralé balíky“.

4.5.3. Chyby při běhu apt-get nebo aptitude

Pokud aptitude, apt-get nebo dpkg selže s chybou

E: Dynamic MMap ran out of room
      

znamená to, že máte malou cache paměť. Problém můžete obejít tak, že v /etc/apt/sources.list zakomentujete řádky které nepoužíváte, nebo zvýšíte velikost vyrovnávací paměti. Velikost vyrovnávací paměti můžete zvýšit volbou APT::Cache-Limit v souboru /etc/apt/apt.conf. Následující příklad nastaví dostatečně velkou hodnotu:

# echo 'APT::Cache-Limit "12500000";' >> /etc/apt/apt.conf
      

To ovšem předpokládá, že jste tuto proměnnou v daném souboru ještě nenastavovali.

4.5.4. Konflikty a cykly v předzávislostech

Někdy je potřebné pro APT nastavit parametr APT::Force-LoopBreak. Tím se umožní dočasné smazání nezbytného balíku způsobené cyklem Koliduje/Předzávisí. apt-get vás o podobné situaci informuje a přeruší aktualizaci celého systému. V takovém případě spusťte apt-get s parametrem -o APT::Force-LoopBreak=1.

Je možné, že systém závislostí mezi balíky bude natolik poškozen, že si situace vyžádá ruční opravu. To obvykle znamená spustit apt-get nebo

# dpkg --remove jméno_balíku
      

pro odstranění pochybných balíků, nebo

# apt-get -f install
# dpkg --configure --pending
      

V extrémním případě možná budete muset znovu vynutit reinstalaci balíku příkazem


# dpkg --install /cesta/k/balíku.deb
      

4.5.5. Konflikty souborů

Jestliže jste instalovali neoficiální backportované verze balíků, může nastat konflikt souborů, který vypadá nějak takto:

Rozbaluji <balík-foo> (z <balík-foo-soubor>) ...
dpkg: chyba při zpracování <balík-foo> (--install):
 zkouším přepsat soubor <název-souboru>,
 který je také v balíku <balík-bar>
dpkg-deb: podproces paste byl zabit signálem (Broken pipe)
 Při zpracování nastaly chyby:
 <balík-foo>
      

Konflikt můžete zkusit vyřešit tak, že násilně odstraníte balík zmíněný na posledním řádku chybové hlášky:

# dpkg -r --force-depends balík
      

Po těchto krocích byste měli být opět schopni pokračovat v aktualizaci systému pomocí dříve popsané metody pomocí apt-get.

4.5.6. Změny v konfiguračních souborech

Během aktualizace budete vyzváni ke konfiguraci nebo opětovnému nastavení některých balíků. Pokud budete vyzváni, zdali nahradit nějaký soubor v adresáři /etc/init.d nebo soubor /etc/manpath.config verzí od správce balíku, měli byste odpovědět kladně, abyste zaručili konzistenci systému. Ke starším verzím souborů se vždy můžete vrátit, jelikož budou uloženy s příponou .dpkg-old.

Pokud si nevíte rady, poznamenejte si jméno balíku nebo souboru a nechte jeho konfiguraci na později. Můžete si pak prohlédnout výstup z programu script a podívat se na údaje, které byly na obrazovce během aktualizace systému.

4.5.7. Změny konfigurace

Aktualizujete-li systém z lokální konzoly, může se během aktualizace stát, že se konzole přepne do jiného pohledu a ztratíte tak přehled o probíhající aktualizaci. Jednou takovou situací je restart daemona gdm.

Pro návrat na konzoli s aktualizací se můžete vrátit klávesovou zkratkou Ctrl+Alt+Fx (z grafického prostředí) nebo Alt+Fx (z textové konzole), kde x je číslo virtuálního terminálu, na kterém probíhá aktualizace. Mezi textovými konzolemi se můžete přepínat také klávesovými zkratkami Alt+šipka vlevo a Alt+šipka vpravo.

4.5.8. Zvýšená ostražitost u specifických balíků

Ve většině případů by měl přechod z Lennyho na Squeeze proběhnout hladce, nicméně existují drobné případy, kdy je potřeba nějakého ručního zásahu před nebo během aktualizace.

4.5.8.1. Evolution

Evolution, výchozí poštovní klient desktopového prostředí GNOME, byl povýšen z verze 2.22 na verzi 2.30. Ta mění formát lokálně uložených dat a pokud by evolution běžela, mohlo by to způsobit ztrátu dat. Pouhé ukončení aplikace nemusí stačit, protože různé komponenty mohou Evolution využívat na pozadí. Abyste předešli potenciálním problémům, je doporučeno ještě před aktualizací úplně ukončit desktopové prostředí.

Během aktualizace balíku evolution ještě proběhne dvoufázová kontrola, zda běží potenciálně rušivé procesy. Pokud ano, tak v první fázi vyzve uživatele k jejich ukončení, ve druhé fázi přímo nabídne jejich násilné ukončí nebo přerušení aktualizace.

4.6. Aktualizace jádra a okolních balíků

Tato část vysvětluje, jak aktualizovat jádro a upozorňuje na potenciální problémy s tím spojené. Jádro můžete nainstalovat buď pomocí jednoho z připravených balíků linux-image-*, nebo kompilací upraveného jádra ze zdrojových textů.

Mnoho informací v této části je založeno na předpokladu, že použijete jedno z modulárních jader dodávaných s Debianem společně s balíky initramfs-tools a udev. Použijete-li vlastní jádro, které nevyžaduje initrd, nebo pokud zvolíte jiný generátor initrd, je možné, že některé informace nebudou relevantní.

4.6.1. Instalace metabalíku jádra

Při přechodu z Lennyho na Squeeze, je důrazně doporučeno nainstalovat nový metabalík linux-image-2.6-*. Je možné, že se tento balík nainstaluje rovnou během dist-upgrade, což můžete ověřit příkazem:

# dpkg -l "linux-image*" | grep ^ii
      

Nevidíte-li žádný výstup, znamená to, že musíte nainstalovat balík linux-image ručně. Seznam dostupných metabalíků získáte příkazem:

# apt-cache search linux-image-2.6- | grep -v transition
      

Nejste-li si jisti, který balík vybrat, zavolejte uname -r a hledejte balík s podobným jménem. Například pokud se vypíše „2.6.26-2-686“, doporučujeme nainstalovat linux-image-2.6-686. Ve výběru nejlepšího jádra vám může pomoci i dlouhý popis každého balíku. Například:

# apt-cache show linux-image-2.6-686
      

Zvolené jádro pak nainstalujete jako každý jiný balík příkazem apt-get install. Aby se jádro zavedlo, musíte při nejbližší vhodné příležitosti restartovat počítač.

Dobrodružnějším uživatelům nabízíme možnost přeložit si vlastní jádro přímo v distribuci Debian GNU/Linux. K tomu je potřeba nainstalovat balík kernel-package a přečíst si dokumentaci v souboru /usr/share/doc/kernel-package. Alternativou jsou zdrojové texty jádra z balíku linux-source-2.6 a sestavení binárního balíku pomocí makefile pravidla deb-pkg. Mezi oběma přístupy jsou drobné rozdíly, o nichž si můžete přečíst v dokumentaci jednotlivých balíků.

Pokud je to možné, bývá lepší aktualizovat jádro odděleně od hlavního dist-upgrade, protože se minimalizuje doba, kdy se systém nachází v dočasně nezaveditelném stavu. Pamatujte, že aktualizace jádra by měla následovat až po minimální aktualizaci popsané v 4.4.4 – „Minimální aktualizace systému“.

4.6.2. Změna ve výčtu zařízení

Počínaje Lennym používá jádro robustnější mechanismus pro rozpoznávání hardwaru. Protože to může změnit pořadí, ve kterém jsou zařízení v systému objevena, ovlivní to i pořadí, ve kterém jsou zařízením přiřazeny názvy. Například pokud používáte dvě síťové karty, které jsou obsluhovány různými ovladači, mohou být názvy karet (eth0 a eth1) prohozeny.

U síťových zařízení se můžete vyhnout změnám názvů použitím pravidel systému udev v souboru /etc/udev/rules.d/70-persistent-net.rules. Protože tato pravidla existovala už v Lennym, mělo by při přechodu na Squeeze všechno fungovat dle očekávání. Výjimkou by mohl být případ, kdy zároveň měníte síťový adaptér, protože jména zařízení jsou spojena s konkrétním hardwarem, takže nová karta získá nové jméno. Chcete-li, aby nová karta zdědila původní jméno nahrazené karty, budete muset z /etc/udev/rules.d/70-persistent-net.rules smazat příslušný záznam.

U úložných zařízení můžete předejít přejmenování tím, že použijete initramfs-tools a nastavíte je tak, aby nahrávaly moduly k úložným zařízením ve stejném pořadí, v jakém se moduly nahrávaly dosud. Nicméně vzhledem k dalším změnám v linuxovém jádře, o kterých se dočtete v části 5.1.1 – „Přechod od IDE ovladačů k PATA“, není vynaložené úsilí adekvátní a je doporučeno přejít na pojmenovávání zařízení univerzálně unikátními identifikátory (UUID), u kterých je garance, že se s časem nemění[9]. Tyto unikátní identifikátory naleznete v adresářích /dev/disk/by-uuid/ a /dev/mapper/.

4.6.3. Problémy s časováním při zavádění

Jestliže je pro zavádění systému použit initrd vytvořený pomocí initramfs-tools, mohou se v některých případech vytvořit soubory zařízení příliš pozdě na to, aby na ně mohly zaváděcí skripty zareagovat.

Obvyklé příznaky jsou, že se kořenový souborový systém nepodaří připojit, že jste následně vhozeni do ladicího shellu a když zpětně zkoumáte adresář /dev, vidíte v něm všechna potřebná zařízení. Takové chování bylo pozorováno na systémech, kde byl kořenový souborový systém na USB disku nebo na RAID (obzvláště při použití zavaděče LILO).

Problém se dá obejít zaváděcím parametrem rootdelay=9. Je možné, že hodnotu v sekundách bude třeba upravit.

4.7. Systém se zasekne na Waiting for root file system

Jak přežít změnu /dev/hda na /dev/sda

Někteří uživatelé hlásili, že po přechodu na Squeeze a následném restartu systému nemohlo jádro najít kořenový souborový systém. Zavádění systému se zastavilo na hlášce

Waiting for root file system ...

a po několika sekundách se objevil prompt busyboxu.

Tento problém se může projevit v případech, kdy jádro uvede novou generaci ovladačů pro IDE zařízení. Původní konvence pojmenování IDE disků byla hda, hdb, hdc, hdd. Nové ovladače tyto disky přejmenují na sda, sdb, sdc, sdd.

Problém se objeví v okamžiku, kdy se při aktualizaci nevytvoří nový soubor /boot/grub/menu.lst, který by bral do úvahy toto přejmenování. Během zavádění totiž předává Grub jádru název oblasti s kořenovým souborovým systémem a kvůli jinému jménu ji jádro nenajde. Něco podobného můžete zaznamenat i u připojování souborových systémů, pokud se příslušně neaktualizoval soubor /etc/fstab. Přechod na Squeeze by však měl obě situace řešit automaticky.

Pokud jste během přechodu na Squeeze na tento problém narazili, přeskočte na část 4.7.2 – „Jak se vypořádat s problémem po aktualizaci“. Chcete-li se tomuto problému vyhnout předem, čtěte dále.

4.7.1. Jak se vyhnout problému dříve, než nastane

Jak se vyhnout problému použitím neměnného identifikátoru. Existují dva základní postupy, jak označit kořenový souborový systém tak, aby se značka mezi restarty nezměnila. První pojmenuje souborový systém, druhý použije univerzální unikátní identifikátor (UUID). Oba způsoby jsou v Debianu dostupné od vydání Etche.

Každý způsob má svá pro a proti. Pojmenování souborového systému je čitelnější, ale může způsobit problémy, pokud se v počítači potkají více souborových systémů se stejným jménem. Použití UUID nevypadá nijak pěkně, ale je robustnější a pravděpodobnost, že se potkají dva stejné UUID, je téměř nulová.

V příkladech níže předpokládáme, že se kořenový souborový systém nachází na oblasti /dev/hda6, je naformátován jako ext2 nebo ext3 a že v systému funguje udev.

Postup pro pojmenování souborového systému:

  1. Pojmenujte kořenový souborový systém (jméno musí být kratší než 16 znaků) příkazem e2label /dev/hda6 rootfilesys

  2. Upravte soubor /boot/grub/menu.lst a změňte řádek

    # kopt=root=/dev/hda6 ro

    na

    # kopt=root=LABEL=rootfilesys ro

    [Poznámka]Poznámka

    Neodstraňujte znak # na začátku řádku, je to tak v pořádku.

  3. Nechte aktualizovat řádky začínající na kernel v souboru menu.lst spuštěním příkazu update-grub.

  4. Upravte soubor /etc/fstab a změňte řádek, který definuje připojení kořenového souborového systému (/), např:

    /dev/hda6     /     ext3  defaults,errors=remount-ro 0 1

    na

    LABEL=rootfilesys     /     ext3  defaults,errors=remount-ro 0 1

    Stačí upravit první sloupec, zbytek řádku není v tomto okamžiku důležitý.

Postup pro použití UUID:

  1. Nejprve zjistěte univerzální unikátní identifikátor kořenového souborového systému příkazem ls -l /dev/disk/by-uuid | grep hda6 nebo blkid /dev/hda6

    V prvním případě byste měli získat řádek podobný tomuto:

    lrwxrwxrwx 1 root root 24 2008-09-25 08:16
    d0dfcc8a-417a-41e3-ad2e-9736317f2d8a -> ../../hda6

    ve druhém:

    /dev/hda6: UUID="d0dfcc8a-417a-41e3-ad2e-9736317f2d8a" TYPE="ext3"

    kde UUID je jméno symbolického odkazu ukazujícího na /dev/hda6, tj. v tomto případě d0dfcc8a-417a-41e3-ad2e-9736317f2d8a.

    [Poznámka]Poznámka

    UUID vaší oblasti bude odlišné.

  2. Upravte soubor /boot/grub/menu.lst a změňte řádek

    # kopt=root=/dev/hda6 ro

    aby místo starého jména používal UUID:

    # kopt=root=UUID=d0dfcc8a-417a-41e3-ad2e-9736317f2d8 ro

    [Poznámka]Poznámka

    Neodstraňujte znak # na začátku řádku, je to tak v pořádku.

  3. Nechte aktualizovat řádky začínající na kernel v souboru menu.lst spuštěním příkazu update-grub.

  4. Upravte soubor /etc/fstab a změňte řádek, který definuje připojení kořenového souborového systému (/), např:

    /dev/hda6     /     ext3  defaults,errors=remount-ro 0 1

    na

    UUID=d0dfcc8a-417a-41e3-ad2e-9736317f2d8  /  ext3  defaults,errors=remount-ro 0 1

    Stačí upravit první sloupec, zbytek řádku není v tomto okamžiku důležitý.

4.7.2. Jak se vypořádat s problémem po aktualizaci

4.7.2.1. Řešení 1

Tento postup se dá použít v případě, že vám Grub nabídne menu pro výběr operačního systému, který chcete spustit. Pokud se takové menu neobjeví, zkuste ho zobrazit stisknutím klávesy Esc chvíli před zavedením jádra. Jestliže se menu nezobrazí, zkuste řešení popsaná v 4.7.2.2 – „Řešení 2“ nebo 4.7.2.3 – „Řešení 3“.

  1. Menu Grubu označte záznam, který chcete zavést a stiskněte klávesu e pro úpravu záznamu. Zobrazí se něco jako

    root (hd0,0)
    kernel /vmlinuz-2.6.32-5-686 root=/dev/hda6 ro
    initrd /initrd.img-2.6.32-5-686

  2. Označte řádek začínající kernel

    kernel /vmlinuz-2.6.32-5-686 root=/dev/hda6 ro

    a opět stiskněte e. Nahraďte hdX za sdX (kde X je písmeno, typicky a, b, c nebo d, závisí na vašem systému). v našem příkladu tedy:

    kernel /vmlinuz-2.6.32-5-686 root=/dev/sda6 ro

    Potvrďte úpravu klávesou Enter. Pokud vidíte ještě nějaké řádky obsahující řetězec hdX, změňte je dle stejné logiky. Neměňte řádky root (hd0,0). Po skončení všech úprav stiskněte klávesu b a systém by měl nastartovat jako obvykle.

  3. Po přihlášení do systému byste měli tento problém opravit trvale, takže přeskočte na 4.7.1 – „Jak se vyhnout problému dříve, než nastane“ a vyberte si některý z popsaných postupů.

4.7.2.2. Řešení 2

Zaveďte Debian GNU/Linux z instalačního média (CD/DVD) a na zaváděcí výzvě vyberte záchranný režim. Postupujte stejně, jako byste instalovali nový systém (vyberte jazyk, umístění, klávesové rozložení, síť - je celkem jedno, jestli se nastavení povede, nebo ne, ...) a po chvíli byste měli být dotázáni, kterou oblast chcete použít jako kořenový souborový systém. Možnosti budou vypadat nějak takto:

/dev/sda1
/dev/sda2
/dev/sda5
/dev/sda6

Pokud víte, která oblast obsahuje váš kořenový souborový systém, prostě ji vyberte. Jestliže si nejste jistí, jednoduše zkuste první z nich. Pokud se záchrannému režimu bude zdát, že tato oblast neobsahuje kořenový souborový systém, bude si stěžovat a nechá vás vybrat znovu. Pokračujte tak dlouho, až narazíte na tu správnou.

Po výběru oblasti si můžete vybrat z několika navrhovaných akcí. Zvolte spuštění shellu. Jestliže se zobrazí chybová hláška, možná jste nevybrali tu správnou oblast - vraťte se zpět a zkuste vybrat jinou.

Nyní byste měli mít přístup do svého kořenového souborového systému (připojeného do /target) jako uživatel root. Budete potřebovat přístup k obsahu adresářů /boot, /sbin a /usr, které by měly být dostupné jako /target/boot, /target/sbin a /target/usr. Jestliže některé z těchto adresářů připojujete z jiných oblastí, připojte je. (Jestliže nemáte tušení, které oblasti použít, podívejte se do /etc/fstab.)

Přeskočte na 4.7.1 – „Jak se vyhnout problému dříve, než nastane“ a použijte jedno z popisovaných řešení problému. Poté opusťte záchranný shell příkazem exit a z menu instalátoru zvolte reboot, aby nastartoval váš nový systém (nezapomeňte vyjmout médium s instalačním systémem).

4.7.2.3. Řešení 3

  1. Zaveďte svou oblíbenou LiveCD distribuci, např. Debian Live, grml, Knoppix nebo Ubuntu Live.

  2. Připojte oblast, která obsahuje adresář /boot. Pokud nevíte, která to je, podívejte se nejprve do výpisu programu dmesg a zjistěte, pod jakým názvem je znám váš disk (hda, hdb, hdc, hdd nebo sda, sdb, sdc, sdd, ...). Až to zjistíte, (předpokládejme nyní, že to je sdb), nechte si vypsat tabulku rozdělení disku příkazem fdisk -l /dev/sdb

  3. Nyní předpokládejme, že jste připojili správnou oblast (obsahující adresář /boot, resp. jeho obsah) do /mnt. Upravte soubor /mnt/boot/grub/menu.lst.

    Najděte sekci podobnou této

    ## ## End Default Options ##
    
    title           Debian GNU/Linux, kernel 2.6.32-5-686
    root            (hd0,0)
    kernel          /vmlinuz-2.6.32-5-686 root=/dev/hda6 ro
    initrd          /initrd.img-2.6.32-5-686
    
    title           Debian GNU/Linux, kernel 2.6.32-5-686 (single-user mode)
    root            (hd0,0)
    kernel          /vmlinuz-2.6.32-5-686 root=/dev/hda6 ro single
    initrd          /initrd.img-2.6.32-5-686
    
    ### END DEBIAN AUTOMAGIC KERNELS LIST

    a nahraďte každý výskyt hda, hdb, hdc nebo hdd odpovídajícím sda, sdb, sdc nebo sdd. Neměňte řádky

    root            (hd0,0)

  4. Restartujte systém, vyjměte LiveCD z mechaniky a měl by naběhnout nový systém.

  5. Po přihlášení do systému byste měli tento problém opravit trvale, takže přeskočte na 4.7.1 – „Jak se vyhnout problému dříve, než nastane“ a vyberte si některý z popsaných postupů.

4.8. Příprava na příští vydání

Po aktualizaci ještě zbývá, provést několik drobností, které vám později usnadní přechod na příští vydání.

  • Odstraňte zastaralé a nepoužívané balíky, jak popisuje 4.10 – „Zastaralé balíky“. Také byste se měli podívat, které konfigurační soubory patří k těmto zastaralým balíkům a pokud je nepotřebujete, tak je ze systému odstraňte.

4.8.1. Přechod na GRUB2

Během aktualizace vám typicky bude nabídnuta možnost ponechat jako primární zavaděč stávající verzi GRUBu (nyní nazývanou GRUB Legacy) a přidat do něj možnost přeskočení do GRUBu 2, ze kterého pak budete zavádět svůj systém. Tímto si můžete ověřit, že GRUB 2 na vašem systému funguje a teprve pak na něj přejít trvale.

Toto zřetězené používání GRUBu 2 je zamýšleno jen jako dočasné, takže po ověření, že vše funguje dle očekávání, doporučujeme na GRUB 2 přejít natrvalo. Stačí spustit příkaz upgrade-from-grub-legacy.

Oficiální příručka GRUBu popisuje změny mezi GRUB 2 a GRUB Legacy, které doporučujeme prostudovat, protože některá komplexní nastavení bude třeba přepsat. Jestliže jste nastavení zavaděče neměnili, mělo by vše proběhnout automaticky.

4.9. Zapovězené komponenty

S budoucím vydáním Debian GNU/Linuxu (Wheezy) budou odstraněny některé balíky, takže přechodem na jejich novější verze již nyní si ušetříte pozdější problémy při aktualizaci na Wheezy.

Jedná se o následující balíky/komponenty:

  • OpenVZ a Linux-Vserver. Debian GNU/Linux 6.0 je posledním vydáním, které obsahuje jaderné virtualizační technologie nezačleněné do oficiálního jádra. To znamená, že uživatelé OpenVZ a Linux-Vserver by měli postupně migrovat na KVM, Linux Containers nebo XEN.

  • Balík gdm (GNOME Display Manager verze 2.20) bude nahrazen novějším gdm3. Více informací naleznete v části 5.7 – „Změny v desktopu GNOME“.

4.10. Zastaralé balíky

Se zahrnutím tisíců nových balíků bylo také vypuštěno více než čtyři tisíce starých balíků, jež byly součástí Lennyho. Přestože vám nic nebrání v používání těchto starých balíků, projekt Debian je již nebude podporovat a obvykle po jednom roce od vydání Squeeze[10] pro ně ukončí i vydávání bezpečnostních oprav. Zastaralé balíky doporučujeme co nejdříve nahradit vhodnými alternativami.

Důvodů, proč byly balíky z distribuce odstraněny, je několik. Buď byl vývoj programu svými autory ukončen, žádný vývojář Debianu již o správu balíku nejeví zájem, funkčnost programu byla překonána jiným softwarem (nebo novou verzí), nebo byl program shledán nevhodným pro vydání Squeeze, protože obsahuje závažné chyby. V posledním případě je možné, že balík stále naleznete v „nestabilní“ distribuci.

Zjištění, které balíky v aktuálním systému jsou zastaralé je velmi jednoduché, protože nástroje pro správu balíků se o vše postarají automaticky. V aptitude uvidíte tyto balíky v sekci „Zastaralé a lokálně vytvořené balíky“. dselect má podobnou schopnost, ale výpis se může lišit. Do kategorie zastaralých patří i balíky, které jste nainstalovali ručně, ovšem různé nástroje na to mají různý názor. Nepoužívané automaticky instalované balíky můžete odstranit příkazem

# apt-get autoremove
    

Pro hledání zastaralých balíků můžete použít i další nástroje typu deborphan, debfoster nebo cruft. Doporučujeme použít první jmenovaný. Pozor na to, že ve výchozím nastavení hlásí deborphan pouze nepoužívané balíky ze sekcí „libs“ a „oldlibs“. Před odstraněním balíků se ještě podrobně podívejte na jejich popis a ujistěte se, že balík opravdu nepotřebujete, protože při použití některých agresivních parametrů může deborphan chybně označit i používané balíky.

Další informace o tom, proč byl balík odstraněn, obvykle naleznete i v systému sledování chyb Debianu. Kromě hlášení o chybách ke konkrétním balíku se podívejte i na archiv chyb pseudobalíku ftp.debian.org.

K zastaralým balíkům patří:

  • Systém pro správu obsahu plone. Stalo se tak na žádost autorů Plone, kteří za jediný podporovaný způsob distribuce považují Unified Installer pro Linux. Uživatelé Debian GNU/Linuxu si mohou Plone nainstalovat právě tímto nástrojem ze stránek http://plone.org/.

  • Bezpečnostní scanner nessus byl po komercionalizaci nahrazen větví OpenVAS (balíky openvas-server a openvas-client). Protože neexistuje automatický převod dat z Nessusu do OpenVAS, budete muset nastavení služeb (certifikáty, uživatele, apod.) přemigrovat sami.

  • postgresql-8.3 byl nahrazen novou verzí postgresql-8.4.

  • mysql-server-5.0 byl nahrazen novou verzí mysql-server-5.1.

  • python2.4 byl nahrazen novou verzí python2.6.

  • Platforma Java 5 (balíky sun-java5-jre a sun-java5-bin) byly nahrazeny Javou 6 (balík sun-java6-jre a okolní závislosti).

  • Náhradou za balík apt-proxy mohou být apt-cacher-ng, apt-cacher nebo approx. Přestože přechod na alternativu není automatický, stačí jen nainstalovat příslušný nový balík.

  • Squeeze již neobsahuje následující ovladače grafických karet: xserver-xorg-video-cyrix, xserver-xorg-video-i810, xserver-xorg-video-imstt, xserver-xorg-video-nsc, xserver-xorg-video-sunbw2 a xserver-xorg-video-vga. Uživatelé by si místo nich měli nainstalovat balík xserver-xorg-video-all.

  • Nástroj usplash, používaný pro zobrazení obrázku během zavádění systému, již není dostupný a místo něj se doporučuje použít balík plymouth.

4.10.1. Prázdné balíky

Při přechodu od verze 5.0 (Lenny) k verzi 6.0 (Squeeze) bylo několik balíků rozděleno na větší počet menších balíků. V takových případech Squeeze většinou poskytuje „prázdné“ balíky, které se jmenují stejně jako balík v předchozí verzi Debianu, ovšem kromě závislostí na nově vzniklých balících nic užitečného neobsahují. „Prázdné“ balíky se po úspěšném přechodu považují za zbytečné a většinou je můžete odstranit.

Téměř všechny prázdné balíky mají ve svém popisu jasně napsáno, že se jedná o prázdné/falešné balíky. S hledáním těchto balíků může pomoci program deborphan s parametry --guess-* (konkrétně --guess-dummy). Pamatujte, že některé prázdné balíky je lepší neodstraňovat, protože slouží ke sledování aktuálních verzí programů.



[4] Jestliže je priorita debconf otázek nastavena na kritickou, můžete tím potlačit konfigurační otázky, které pak automaticky použijí výchozí hodnoty. Problém nastane, pokud tyto výchozí hodnoty nevyhovují vašemu prostředí - postižené služby se pak nemusí spustit.

[5] Například DNS nebo DHCP. Obzvláště pokud neexistuje redundantní nebo záložní server, mohou být koncoví uživatelé zcela odpojeni od sítě.

[6] Tato vlastnost se dá vypnout přidáním parametru panic=0 k ostatním zaváděcím parametrům.

[7] Debianí systém správy balíků běžně neumožňuje, aby balík přepsal nebo odstranil soubor vlastněný jiným balíkem; minimálně pokud balík explicitně nenahrazuje původní balík.

[8] Pokud při zavedení nového jádra zjistíte problémy a budete se chtít vrátit k původnímu jádru, budete nejspíš muset degradovat udev na původní verzi.

[9] Některá zařízení, jako ta využívající dmcrypt, LVM nebo RAID, používají stabilní názvy i bez UUID a není třeba s nimi nic dělat.

[10] Pokud mezitím vyjde další stabilní verze Debianu tak i dříve. Typicky jsou současně podporovány maximálně dvě stabilní verze.