Chapter 4. Upgrades from Debian 5.0 (lenny)

Table of Contents

4.1. Падрыхтоўка да абнаўлення
4.1.1. Захоўванне інфармацыі і наладак
4.1.2. Своечасова папярэдзьце карыстальнікаў
4.1.3. Prepare for downtime on services
4.1.4. Падрыхтуйцеся да аднаўлення
4.1.5. Падрыхтуйце бяспечнае асяроддзе для абнаўлення
4.1.6. Remove conflicting packages
4.2. Праверка стану сістэмы
4.2.1. Праверка адкладзеных дзеянняў праграмы кіравання пакетамі
4.2.2. Адключэнне прывязак APT (APT pinning)
4.2.3. Праверка стану пакетаў
4.2.4. Секцыя прапанаваных абнаўленняў (proposed-updates)
4.2.5. Неафіцыйныя крыніцы і адаптаваныя праграмы (backports)
4.3. Падрыхтоўка крыніц для APT
4.3.1. Даданне інтэрнэт-крыніц APT
4.3.2. Даданне крыніц APT для лакальнага люстэрка
4.3.3. Даданне CD-ROM або DVD у якасці крыніцы APT
4.4. Абнаўленне пакетаў
4.4.1. Запіс сесіі
4.4.2. Абнаўленне спісу пакетаў
4.4.3. Пераканайцеся ў наяўнасці месца на дыску перад абнаўленнем
4.4.4. Мінімальнае абнаўленне сістэмы
4.4.5. Upgrading the kernel and udev
4.4.6. Upgrading the system
4.5. Магчымыя праблемы падчас абнаўлення
4.5.1. cryptoloop support not included in the squeeze Linux kernel
4.5.2. Expected removals
4.5.3. Errors running aptitude or apt-get
4.5.4. Conflicts or Pre-Depends loops
4.5.5. File conflicts
4.5.6. Configuration changes
4.5.7. Change of session to console
4.5.8. Special care for specific packages
4.6. Абнаўленне ядра і звязаных пакетаў
4.6.1. Усталяванне мета-пакета з ядром
4.6.2. Змена нумароў прылад
4.6.3. Праблемы з храналогіяй запуску сістэмы
4.7. Загрузка сістэмы спыняецца на Waiting for root file system
4.7.1. Як перасцерагчы сябе ад праблемы перад абнаўленнем
4.7.2. Як выправіць праблему пасля абнаўлення
4.8. Падрыхтоўка да наступнага выпуску
4.8.1. Upgrade to GRUB 2
4.9. Deprecated components
4.10. Састарэлыя пакеты
4.10.1. Фіктыўныя пакеты

4.1. Падрыхтоўка да абнаўлення

Перад абнаўленнем прапануем азнаёміцца з інфармацыяй у Chapter 5, Праблемы "squeeze", аб якіх варта ведаць. Гэты падзел апісвае патэнцыйныя праблемы, якія не датычацца непасрэдна працэсу абнаўлення, але могуць быць дастаткова істотнымі, каб ведаць аб іх да пачатку працэсу.

4.1.1. Захоўванне інфармацыі і наладак

Настойліва раім перад абнаўленнем зрабіць поўную рэзервовую копію альбо як мінімум зрабіць копію наладак і інфармацыі, якія занадта дарагія, каб рызыкаваць імі. Падчас абнаўлення выкарыстоўваюцца дастаткова надзейныя cродкі і працэсы, але, напрыклад, апаратны збой пасярэдзіне працэсу абнаўлення можа скончыцца цяжкімі пашкоджаннямі сістэмы.

The main things you'll want to back up are the contents of /etc, /var/lib/dpkg, /var/lib/apt/extended_states and the output of dpkg --get-selections "*" (the quotes are important). If you use aptitude to manage packages on your system, you will also want to back up /var/lib/aptitude/pkgstates.

Сам працэс абнаўлення не змяняе нічога ў дырэкторыі /home. Тым не менш, вядома, што пэўныя праграмы (напрыклад, кампаненты набору праграм Mozilla альбо працоўных асяродкаў GNOME ды KDE) могуць перазапісваць існуючыя наладкі карыстальнікаў новымі стандартнымі значэннямі пры першым запуску новай версіі такой праграмы. У якасці меры перасцярогі варта зрабіць рэзервовыя копіі схаваных файлаў і дырэкторый (іх назвы пачынаюцца з кропкі) з хатніх дырэкторыяў карыстальнікаў. Такія рэзервовыя копіі дапамогуць аднавіць альбо нанова стварыць старыя наладкі. Мажліва, аб гэткай магчымасці варта паведаміць карыстальнікам.

Любая працэдура ўсталявання пакетаў мусіць быць запушчаная з правамі суперкарыстальніка, таму альбо ўвайдзіце ў сістэму як root або скарыстайцеся камандамі su ці sudo для атрымання адпаведных прывілеяў.

Існуе некалькі папярэдніх умоваў, выкананне якіх трэба праверыць перад пачаткам абнаўлення.

4.1.2. Своечасова папярэдзьце карыстальнікаў

Разумна будзе своечасова паведаміць усім карыстальнікам аб любых абнаўленнях сістэмы, якія Вы плануеце, нягледзячы на тое, што карыстальнікі, якія працуюць у сістэме праз злучэнне ssh могуць амаль не заўважыць працэсу абнаўлення і будуць мець магчымасць спакойна працягваць працу.

Калі Вы лічыце неабходнымі дадатковыя перасцярогі, зрабіце рэзервовую копію файлавай сістэмы /home або адмацуйце падзел з ёю перад пачаткам абнаўлення.

You will have to do a kernel upgrade when upgrading to squeeze, so a reboot will be necessary.

4.1.3. Prepare for downtime on services

During the upgrade process, there might be services associated with packages that will be include in the upgrade. If this is the case, these services might be stopped while the packages that are going to be upgraded are being replaced and configured. During this time, these services will not be available.

The precise downtime for these service will vary depending on the number of packages being upgraded in the system, and it also includes the time the system administrator answers the configuration questions from different package upgrades (if any). Notice that if the upgrade process is left unattended and the system requests input throughout the upgrade there is a high possibility of services being unavailable[4] for a significant period of time.

If the system being upgraded provides critical services for your users or network[5], you can reduce the downtime if you do a minimal system upgrade, as described in Section 4.4.4, “Мінімальнае абнаўленне сістэмы”, followed by a kernel upgrade and reboot (see Section 4.4.5, “Upgrading the kernel and udev”), and then upgrade the packages associated with your critical services. Upgrade these packages prior to doing the full upgrade described in Section 4.4.6, “Upgrading the system”. This way you can ensure that these critical services are running and available through the full upgrade process, and their downtime is reduced.

4.1.4. Падрыхтуйцеся да аднаўлення

Дзякуючы вялікай колькасці зменаў у ядрах паміж lenny ды squeeze, якія датычацца драйвераў, механізмаў пошуку абсталявання, пагадненняў аб назвах і парадку вызначэння файлаў прылад, існуе рызыка таго, што падчас перазагрузкі сістэмы пасля абнаўлення узнікне шэраг праблем. Гэты і наступныя падзелы распавядаюць аб вялікай колькасці вядомых патэнцыйных праблемных сітуацыяў.

З улікам сказанага мае сэнс упэўніцца ў магчымасці аднавіць кантроль над сістэмай, калі яна не здолее перазагрузіцца або (што актуальна для сістэм, якімі кіруюць дыстанцыйна) не здолее распачаць працу з сецівам.

Калі абнаўленне сістэмы запускаецца дыстанцыйна праз злучэнне ssh настойліва раім выканаць усе магчымыя дзеянні перасцярогі дзеля таго, каб забяспечыць магчымасць дыстанцыйнага доступу да сервера праз паслядоўны тэрмінал. Існуе верагоднасць, што пасля абнаўлення і перазапуску назвы пэўных прыладаў будуць змененыя (гл. Section 4.6.2, “Змена нумароў прылад”), а Вам давядзецца выпраўляць наладкі сістэмы праз лакальную кансоль. Таксама ўжываць лакальную кансоль, магчыма, давядзецца, калі сістэма выпадкова перазагрузіцца падчас абнаўлення.

Відавочны першы крок па выпраўленні сітуацыі -- спроба загрузіцца са старым ядром. Але, дзякуючы розным прычынам, апісаным у гэтым дакуменце, гэткі падыход можа не спрацаваць.

Калі спроба не атрымаецца, спатрэбіцца альтэрнатыўны шлях загрузкі сістэмы і доступу ў яе. Адным з варыянтаў можа быць выкарыстанне адмысловага “выратавальнага” дыску альбо загрузачнага дыска Linux live CD. Пасля загрузкі з такога дыску ў большасці выпадкаў ёсць магчымасць прымацаваць каранёвую файлавую сістэму і перайсці ў яе з дапамогай chroot дзеля вынаходжання і выпраўлення праблемы.

Іншы варыянт, які можна параіць -- выкарыстанне праграмы ўсталявання squeeze у гэтак званым рэжыме ратавання. Перавага названага падыходу ў тым, што з розных метадаў усталявання магчыма абраць найбольш прыдатны да ўласных патрэбаў. Больш звестак на гэтую тэму ўтрымліваецца ў восьмай главе Кіраўніцтва па ўсталяванні і ў Частых пытаннях пра праграму ўсталявання Debian

4.1.4.1. Уваход у абалонку адладкі падчас загрузкі з дапамогай initrd

Пакет initramfs-tools дадае абалонку адладкі[6] у загрузачныя адбіткі initrd, якія ён генеруе. Калі, напрыклад адбітак initrd не можа прымацаваць каранёвую файлавую сістэму, карыстальнік патрапіць у абалонку адладкі з доступам да базавых камандаў, што дазваляюць выявіць праблему і выправіць яе, калі гэта магчыма.

Асноўныя рэчы, якія трэба правяраць: наяўнасць існых файлаў прылад у /dev; спіс загружаных модуляў (cat /proc/modules); вывад каманды dmesg, які можа ўтрымліваць паведамленні аб памылках загрузкі драйвераў. Таксама вывад каманды dmesg дазваляе даведацца, якія назвы прыладаў былі празначаныя якім дыскам; таксама варта пераканацца (шляхам праверкі вываду каманды echo $ROOT, што каранёвая файлавая сістэма знаходзіцца менавіта на той прыладзе, дзе спадзяецца карыстальнік.

Калі ў Вас атрымалася выправіць становішча, увядзіце exit каб выйсці з абалонкі адладкі і працягнуць загрузку з таго моманту, як яна была перарваная. Безумоўна, гэта не скасоўвае патрэбы выправіць асноўную прычыну памылкі і перагенераваць загрузачны адбітак initrd, каб пры наступнай загрузцы сітуацыя не паўтарылася.

4.1.5. Падрыхтуйце бяспечнае асяроддзе для абнаўлення

Абнаўленне дыстрыбутыву варта рабіць альбо лакальна ў тэкставым рэжыме (карыстаючыся віртуальнай кансоллю ці непасрэдна падлучаным паслядоўным тэрміналам), альбо дыстанцыйна праз злучэнне ssh.

[Important]Important

If you are using some VPN services (such as tinc) they might not be available throughout the upgrade process. Please see Section 4.1.3, “Prepare for downtime on services”.

Каб забяспечыць дадатковую устойлівасць дыстанцыйнага абнаўлення, раім запускаць абнаўленчы працэс у віртуальнай кансолі праграмы screen, якая дае магчымасць бяспечнага перадалучэння. Гэта дазволіць быць упэўненым, што выпадковы разрыў сувязі не прывядзе да спынення абнаўленчага працэсу.

[Important]Important

Катэгарычна не варта запускаць працэс абнаўлення з дапамогай telnet,rlogin,rsh або з графічнай Х-сесіі (запушчанай на машыне, якая абнаўляецца) пад кіраваннем xdm, gdm, kdm і г.д. Усе гэтыя сервісы могуць перазапускацца падчас абнаўлення, што прывядзе на немагчымасці доступу ў напалову абноўленую сістэму.

4.1.6. Remove conflicting packages

Due to bug #512951, the splashy package needs to be purged prior to the upgrade.

	# apt-get purge splashy

4.2. Праверка стану сістэмы

Надалей апісаны ў гэтым падзеле працэс разлічаны на абнаўленне “чыстай” сістэмы на базе lenny без пакетаў, што прадстаўленыя іншымі вытворцамі. Каб дасягнуць найбольшай надзейнасці, магчыма, варта выдаліць пакеты іншых вытворцаў перад пачаткам абнаўлення.

Direct upgrades from Debian releases older than 5.0 (lenny) are not supported. Please follow the instructions in the Release Notes for Debian GNU/Linux 5.0 to upgrade to 5.0 first.

Таксама працэдура разлічаная на тое, што сістэма або ўжо абноўленая да версіі lenny або адразу ўсталёўвалася ў гэтай версіі. Калі гэта не так або няма дакладных звестак, скарыстайцеся парадамі з Section A.1, “Абнаўленне сістэмы на базе lenny”.

4.2.1. Праверка адкладзеных дзеянняў праграмы кіравання пакетамі

У пэўных умовах выкарыстанне каманды apt-get замест aptitude дзеля ўсталявання пакетаў можа прывесці да таго, што aptitude палічыць пэўны пакет “неўжываным” і заплануе ягонае выдаленне. Збольшага, перад абнаўленнем варта прывесці сістэму ў парадак, пераканаўшыся ў яе актуальнасці і “чысціні”.

Паводле сказанага вышэй, варта пераканацца, што для праграмы кіравання пакетамі aptitude не засталося запланаваных, але не выкананых дзеянняў. Наяўнасць пакетаў, запланаваных да выдалення альбо абнаўлення, можа негатыўна паўплываць на працэдуру абнаўлення сістэмы. Варта мець на ўвазе, што такое магчыма толькі, калі файл наладак sources.list дагэтуль спасылаецца на люстэрка lenny замест stable або squeeze. Больш інфармацыі на гэты конт даступна ў главе Section A.2, “Праверка спісу крыніц абнаўлення”.

Каб зрабіць згаданую праверку, запусціце каманду aptitude ў “візуальным рэжыме” і націсніце g (“Go”). Калі праграма прадэманструе спіс дзеянняў, варта перагледзець яго і альбо скончыць альбо скасаваць прапанаваныя задачы. Калі праграма не прапанавала ніякіх дзеянняў, Вы пабачыце паведамленне наступнага зместу: “Няма пакетаў, прызначаных для ўсталявання, выдалення альбо абнаўлення” (“No packages are scheduled to be installed, removed or upgraded”).

4.2.2. Адключэнне прывязак APT (APT pinning)

Калі APT быў наладжаны такім чынам, каб усталёўваць некаторыя пакеты з дыстрыбутыву, які не з'яўляецца стабільным (напрыклад, з тэставай версіі), можа спатрэбіцца змяніць адпаведныя прывязкі APT, каб дазволіць абнаўленне гэтых пакетаў да версій, што ўваходзяць у новы стабільны выпуск. Адпаведныя наладкі захоўваюцца ў файле /etc/apt/preferences. Дадатковую інфармацыю аб прывязках APT можна атрымаць з даведкі apt_preferences(5).

4.2.3. Праверка стану пакетаў

Незалежна ад абранага метаду абнаўлення, настойліва раім пераканацца, што ўсе пакеты сістэмы знаходзяцца ў стане, прыдатным да абнаўлення. Пададзеная далей каманда пакажа ўсе пакеты, якія былі ўсталяваныя толькі часткова (Half-Installed) альбо не былі наладжаныя (Failed-Config), а таксама пакеты, пры спробе ўсталявання якіх адбыліся памылкі.

# dpkg --audit

Таксама прагледзець стан усіх пакетаў сістэмы можна з дапамогай праграм dselect, aptitude або пададзеных далей камандаў:

# dpkg -l | pager

або

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

Добрая ідэя -- перад абнаўленнем прыбраць блакіроўкі (holds). Калі падчас абнаўлення высветліцца, што нейкі крытычны пакет заблакаваны, працэс абнаўлення скончыцца беспаспяхова.

Майце на ўвазе, што aptitude ужывае іншы спосаб рэгістрацыі заблакаваных пакетаў, чым apt-get ці dselect. Пакеты, заблакаваныя з пункту погляду aptitude, можна выявіць наступным чынам:

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

Каб даведацца, якія пакеты ў сістэме заблакаваныя з пункту погляду apt-get, трэба ўжыць каманду

# dpkg --get-selections | grep hold

Калі нейкі пакет быў зменены і перасабраны лакальна, але пры гэтым яго назва і час змянення версіі засталіся такімі самымі, варта заблакаваць такі пакет, каб пазбегнуць ягонага абнаўлення.

The “hold” package state for apt-get can be changed using:

# echo package_name hold | dpkg --set-selections

Replace hold with install to unset the “hold” state.

Калі засталося нешта, што патрабуе выпраўлення, пераканайцеся, што файл наладак sources.list дагэтуль спасылаецца на lenny як патлумачана ў Section A.2, “Праверка спісу крыніц абнаўлення”.

4.2.4. Секцыя прапанаваных абнаўленняў (proposed-updates)

Калі ў файле наладак /etc/apt/sources.list узгадваецца секцыя proposed-updates, такую згадку трэба прыбраць да пачатку абнаўлення, каб зменшыць рызыку канфліктаў.

4.2.5. Неафіцыйныя крыніцы і адаптаваныя праграмы (backports)

Калі ў сістэме выкарыстоўваюцца іншыя пакеты, апрэч афіцыйных пакетаў Debian, варта мець на ўвазе, што яны могуць быць выдаленыя падчас абнаўлення, дзякуючы магчымым канфліктам залежнасцяў. Калі такія пакеты былі ўсталяваныя праз дадатковае сховішча, пазначанае ў файле наладак /etc/apt/sources.list, варта пераканацца, што згаданае сховішча прапаноўвае таксама пакеты, сабраныя для squeeze. Калі гэта сапраўды так, дастаткова адмыслова змяніць адпаведны радок у файле наладак (такім самым чынам, як радкі, што спасылаюцца на афіцыйныя сховішчы пакетаў Debian).

Некаторыя карыстаюцца неафіцыйнымі адаптацыямі (backports) “навейшых” версій пакетаў Debian у сістэмах на базе lenny. Такія пакеты, хутчэй за ўсё, падчас абнаўлення створаць праблемы з-за наяўнасці канфліктуючых файлаў[7]. Старонка Section 4.5, “Магчымыя праблемы падчас абнаўлення” утрымлівае пэўныя звесткі аб вырашэнні файлавых канфліктаў, калі яны здараюцца.

4.3. Падрыхтоўка крыніц для APT

Перад пачаткам абнаўлення неабходна змяніць наладкі apt, што тычацца спісу пакетаў. Гэтыя наладкі вызначаюцца файлам /etc/apt/sources.list.

apt будзе разглядаць усе пакеты, якія даступныя праз любое са сховішчаў, апісаных радкамі, што пачынаюцца з “deb”. Усталёўвацца будуць пакеты з найбольшым нумарам версіі, пры наяўнасці такога пакету ў некалькіх сховішчах выкарыстоўваецца будзе сховішча, згаданае раней за іншыя. Таму пры наяўнасці доступу да некалькіх люстэркаў з пакетамі, звычайна ў першую чаргу апісваюць люстэрка на лакальным дыску, потым узгадваюць CD-ROM, а далей -- сеткавыя люстэркі (HTTP/FTP).

Адзін і той жа выпуск можа згадвацца паводле кодавай назвы (напрыклад, lenny, squeeze) і паводле назвы стану (г.зн. oldstable, stable, testing, unstable. Спасылка на выпуск паводле ягонай кодавай назвы дазваляе пазбегнуць нечаканасцяў пры выхадзе новага выпуску, і менавіта таму надалей мы выкарыстоўваем гэты падыход. Але, адпаведна, Вам давядзецца самастойна сачыць за выхадам новых выпускаў. Калі замест кодавай назвы выкарыстаць назву стану, выхад новага выпуску будзе адзначаны толькі павялічаным аб'ёмам загрузкі абноўленых пакетаў.

4.3.1. Даданне інтэрнэт-крыніц APT

Стандартныя наладкі адпавядаюць усталяванню пакетаў з галоўных сервераў Debian. Магчыма, Вы захочаце выправіць файл наладак /etc/apt/sources.list такім чынам, каб выкарыстоўваць іншыя люстэркі (звычайна, размешчаныя бліжэй да Вас паводле структуры сеціва).

Адрасы люстэркаў Debian (HTTP ды FTP) апублікаваныя на http://www.debian.org/distrib/ftplist (гл. секцыю “Спіс люстэркаў Debian”). Звычайна HTTP-люстэркі працуюць хутчэй за FTP.

Няхай, для прыкладу, найбліжэйшае да Вас люстэрка мае адрас http://mirrors.kernel.org. Пры вывучэнні гэтага люстэрка з дапамогай вэб-браузера альбо FTP-кліента, можна заўважыць наступную структуру каталогаў:

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

Каб карыстацца гэтым люстэркам праз apt, неабходна дадаць да файла sources.list радок такога зместу:

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

Заўважце, што `dists' дадаецца да шляху неяўным чынам, а параметры пасля назвы выпуску ўжываюцца, каб пашырыць зону пошуку на некалькі дырэкторыяў.

Пасля дадання новых крыніцаў трэба адключыць у файле sources.list запісы з “deb”, што ўжываліся раней. Зрабіць гэта можна, дадаўшы значак кратаў (#) у пачатак адпаведных радкоў.

4.3.2. Даданне крыніц APT для лакальнага люстэрка

Замест ужывання сеціўных люстэркаў праз HTTP ці FTP можна наладзіць /etc/apt/sources.list такім чынам, каб ужываць люстэрка на лакальнай файлавай сістэме (магчыма, прымацаванае праз сеціва з дапамогай NFS).

Няхай, дзеля прыкладу, лакальнае люстэрка месціцца ў дырэкторыі /var/ftp/debian і мае наступную структуру каталогаў:

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

Каб карыстацца гэтым люстэркам праз apt, неабходна дадаць да файла sources.list радок такога зместу:

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

Заўважце, што `dists' дадаецца да шляху неяўным чынам, а параметры пасля назвы выпуску ўжываюцца, каб пашырыць зону пошуку на некалькі дырэкторыяў.

Пасля дадання новых крыніцаў трэба адключыць у файле sources.list запісы з “deb”, што ўжываліся раней. Зрабіць гэта можна, дадаўшы значак кратаў (#) у пачатак адпаведных радкоў.

4.3.3. Даданне CD-ROM або DVD у якасці крыніцы APT

Калі для працы з пакетамі Вы хочаце выкарыстоўваць толькі сховішчы на дысках (CD-ROM,DVD), адключыце ў файле наладак усе існуючыя радкі, што пачынаюцца з “deb”. Гэта можна зрабіць, дадаўшы значак кратаў (#) у пачатак кожнага радка.

Пераканайцеся, што ў файле наладак /etc/fstab ёсць радок, які дазваляе мацаванне Вашай прылады CD-ROM у пункт мацавання /cdrom (пункт мацавання мусіць быць менавіта такім, каб каманда apt-cdrom працавала карэктна). Напрыклад, калі прылада CD-ROM адлюстроўваецца ў сістэме як /dev/hdc, файл наладак /etc/fstab мусіць утрымліваць радок прыкладна такога выгляду:

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

Заўважце, што ў чацвёртым полі не мусіць быць ніякіх прагалаў паміж словамі defaults,noauto,ro.

Каб пераканацца, што ўсё працуе, устаўце кампакт-дыск і паспрабуйце запусціць каманду

# mount /cdrom    # прымацаваць кампакт-дыск у пункт мацавання
# ls -alF /cdrom  # прагледзець каранёвую дырэкторыю дыску
# umount /cdrom   # адмацаваць кампакт-дыск

Далей запусціце:

# apt-cdrom add

для кожнага з кампакт-дыскаў Debian, каб дадаць звесткі аб іх у базу APT.

4.4. Абнаўленне пакетаў

The recommended way to upgrade from previous Debian GNU/Linux releases is to use the package management tool apt-get. In previous releases, aptitude was recommended for this purpose, but recent versions of apt-get provide equivalent functionality and also have shown to more consistently give the desired upgrade results.

Не забудзьцеся прымацаваць усе патрэбныя падзелы (асабліва каранёвы падзел і /usr) у рэжыме з дазволам чытання і запісу. Гэта можна зрабіць з дапамогай каманды кшталту наступнай:

# mount -o remount,rw /mountpoint

Далей трэба вельмі пільна пераканацца, што запісы аб крыніцах APT (у файле наладак /etc/apt/sources.list) спасылаюцца альбо на “squeeze” альбо на “stable”. У файле не мусіць быць актыўных запісаў, што спасылаліся б на lenny.

[Note]Note

Source lines for a CD-ROM might sometimes refer to “unstable”; although this may be confusing, you should not change it.

4.4.1. Запіс сесіі

Вельмі раім ужываць праграму /usr/bin/script, каб запісаць копію сэсіі абнаўлення. У гэтым выпадку пры ўзнікненні праблемаў Вы будзеце мець магчымасць прагледзець пратакол сесіі каб зразумець, што здарылася (і магчыма, калі гэта спатрэбіцца, падаць дакладныя звесткі ў паведамленні аб памылцы). Каб пачаць запіс сесіі, набярыце ў камандным радку:

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

альбо нешта падобнае. Не змяшчайце файл з запісам сесіі ў часовых дырэкторыях кшталту /tmp альбо /var/tmp, таму што файлы ў такіх дырэкторыях могуць быць выдаленыя падчас абнаўлення альбо пры перазапуску сістэмы.

The typescript will also allow you to review information that has scrolled off-screen. If you are at the system's console, just switch to VT2 (using Alt+F2) and, after logging in, use less -R ~root/upgrade-squeeze.script to view the file.

Спыніць праграму script, калі абнаўленне скончыцца, можна, набраўшы ў камандным радку exit.

Калі каманда script запускалася з параметрам -t, можна паўтарыць усю сэсію з дапамогай праграмы scriptreplay:

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

4.4.2. Абнаўленне спісу пакетаў

Спачатку трэба атрымаць спіс пакетаў, даступных у новым выпуску. Гэта робіцца наступным чынам:

# apt-get update

4.4.3. Пераканайцеся ў наяўнасці месца на дыску перад абнаўленнем

You have to make sure before upgrading your system that you have sufficient hard disk space when you start the full system upgrade described in Section 4.4.6, “Upgrading the system”. First, any package needed for installation that is fetched from the network is stored in /var/cache/apt/archives (and the partial/ subdirectory, during download), so you must make sure you have enough space on the file system partition that holds /var/ to temporarily download the packages that will be installed in your system. After the download, you will probably need more space in other file system partitions in order to both install upgraded packages (which might contain bigger binaries or more data) and new packages that will be pulled in for the upgrade. If your system does not have sufficient space you might end up with an incomplete upgrade that might be difficult to recover from.

apt-get can show you detailed information of the disk space needed for the installation. Before executing the upgrade, you can see this estimate by running:

# apt-get -o APT::Get::Trivial-Only=true dist-upgrade
[ ... ]
XXX upgraded, XXX newly installed, XXX to remove and XXX not upgraded.
Need to get xx.xMB of archives. 
After this operation, AAAMB of additional disk space will be used.
[Note]Note

Запуск гэтай каманды напачатку працэсу абнаўлення можа скончыцца з памылкай дзякуючы прычынам, аб якіх распаведзена далей. У такім выпадку спачатку неабходна выканаць мінімальнае абнаўленне сістэмы, як апісана ў Section 4.4.4, “Мінімальнае абнаўленне сістэмы”, каб абнавіць ядро перад запускам згаданай каманды, што падлічвае памер патрэбнай дыскавай прасторы.

If you do not have enough space for the upgrade, apt-get will warn you with a message like this:

E: You don't have enough free space in /var/cache/apt/archives/.

In this situation, make sure you free up space beforehand. You can:

  • Remove packages that have been previously downloaded for installation (at /var/cache/apt/archives). Cleaning up the package cache by running apt-get clean will remove all previously downloaded package files.

  • Выдаліць пакеты, на якія Вы забыліся і якія Вам непатрэбныя. Калі ў сістэме ўсталяваны пакет popularity-contest, з дапамогай каманды popcon-largest-unused можна даведацца аб пакетах, што не выкарыстоўваюцца і займаюць найбольш месца. Таксама можна выкарыстаць каманды deborphan або debfoster каб выявіць састарэлыя пакеты (гл. Section 4.10, “Састарэлыя пакеты”). Яшчэ адзін спосаб -- запусціць aptitude у “візуальным рэжыме” і знайсці састарэлыя пакеты ў секцыі “Састарэлыя і створаныя лакальна пакеты”.

  • Выдаліце пакеты, якія спажываюць зашмат дыскавай прасторы і не выкарыстоўваюцца ў бягучы момант (калі што, іх можна будзе пераўсталяваць пасля абнаўлення). Вы можаце атрымаць спіс пакетаў, што займаюць найбольш месца, з дапамогай каманды dpigs (уваходзіць у склад пакету debian-goodies) альбо праграмы wajig (запушчанай з адмысловым параметрам: wajig size).

    You can list packages that take up most of the disk space with aptitude. Start aptitude in “visual mode”, select ViewsNew Flat Package List, press l and enter ~i, press S and enter ~installsize, then it will give you nice list to work with.

  • Пазбаўцеся непатрэбных файлаў перакладаў, усталяваўшы пакет localepurge. Яго можна наладзіць такім чынам, каб у сістэме захоўваліся толькі пераклады для некалькіх абраных лакаляў. Гэта дазволіць зберагчы дыскавую прастору, занятую дырэкторыяй /usr/share/locale

  • Часова перамясціце на іншую машыну альбо зусім выдаліце сістэмныя пратаколы, што месцяцца ў дырэкторыі /var/log.

  • Выкарыстайце часовую дырэкторыю /var/cache/apt/archives: магчыма ўжыць гэтую дырэкторыю, размясціўшы яе на іншай файлавай сістэме (носьбіт USB, часовы жорсткі дыск і г.д.)

    [Note]Note

    Не ўжывайце для гэтага рэсурсы NFS, таму што злучэнне з сецівам можа перапыняцца падчас абнаўлення.

    Напрыклад, калі ў Вас ёсць носьбіт USB, прымацаваны да дырэкторыі /media/usbkey:

    1. выдаліце файлы пакетаў, якія былі папярэдне загружаныя для ўсталявання:

      # apt-get clean

    2. зрабіце копію дырэкторыі /var/cache/apt/archives на носьбіт USB:

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

    3. прымацуйце часовую дырэкторыю кэша на месца той, што выкарыстоўваецца зараз:

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

    4. пасля абнаўлення, аднавіце зыходную дырэкторыю /var/cache/apt/archives:

      # umount /media/usbkey/archives

    5. выдаліце непатрэбную болей дырэкторыю /media/usbkey/archives.

    Вы можаце стварыць часовую дырэкторыю кэша на любой прымацаванай файлавай сістэме.

  • Do a minimal upgrade of the system (see Section 4.4.4, “Мінімальнае абнаўленне сістэмы”) or partial upgrades of the system followed by a full upgrade. This will make it possible to upgrade the system partially, and allow you to clean the package cache before the full upgrade.

Заўважце, што для бяспечнага выдалення пакетаў лепей пераключыць файл наладак sources.list зноў да lenny, як распаведзена ў Section A.2, “Праверка спісу крыніц абнаўлення”.

4.4.4. Мінімальнае абнаўленне сістэмы

In some cases, doing the full upgrade (as described below) directly might remove large numbers of packages that you will want to keep. We therefore recommend a two-part upgrade process, first a minimal upgrade to overcome these conflicts, then a full upgrade as described in Section 4.4.6, “Upgrading the system”.

To do this first, run:

# apt-get upgrade

Гэтая каманда дазваляе выканаць усе абнаўленні, якія не вымагаюць выдалення альбо ўсталявання якіх-небудзь іншых пакетаў апрэч тых, што абнаўляюцца.

The minimal system upgrade can also be useful when the system is tight on space and a full upgrade cannot be run due to space constrains.

4.4.5. Upgrading the kernel and udev

The udev version in squeeze requires a kernel of version 2.6.26 or newer with the CONFIG_SYSFS_DEPRECATED option disabled and the CONFIG_INOTIFY_USER and CONFIG_SIGNALFD options enabled. Because the standard Debian kernels in lenny (version 2.6.26) have CONFIG_SYSFS_DEPRECATED enabled, and the udev version in lenny will not provide all the functionality expected by the latest kernels, special care must be taken when upgrading to avoid putting your system in an unbootable state.

Booting the 2.6.26 kernel from lenny with the udev from squeeze may result in a failure to correctly assign names to network devices, and will also fail to apply certain additional permissions to block devices (such as access by the disk group). The software itself will appear to be working, but some rules (for example, network-based rules) will not be loaded properly. It is therefore strongly recommended that you upgrade the kernel on its own at this point, to ensure a compatible kernel is available before upgrading udev.

Каб выканаць такое абнаўленне, запусціце:

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

Гл. Section 4.6.1, “Усталяванне мета-пакета з ядром”, каб вызначыць, які менавіта варыянт пакета з ядром мусіць быць абраны.

Users of the grub bootloader should make sure that update-grub is run as part of the kernel upgrade, or run it manually.

Immediately after upgrading the kernel, you should also install the new udev to minimize the risk of other incompatibilities caused by using the old udev with a new kernel [8]. You can do this by running:

# apt-get install udev

Once you have upgraded both the kernel and udev the system should be rebooted.

4.4.6. Upgrading the system

Once you have taken the previous steps, you are now ready to continue with the main part of the upgrade. Execute:

# apt-get dist-upgrade
[Note]Note

The upgrade process for other releases recommended the use of aptitude for the upgrade. This tool is not recommended for upgrades from lenny to squeeze.

Гэтая каманда выканае поўнае абнаўленне сістэмы, г.зн. усталюе найноўшыя даступныя версіі ўсіх пакетаў, і развяжа ўсе магчымыя залежнасці між пакетамі з улікам адрозненняў паміж гэтымі залежнасцямі ў розных выпусках. Калі трэба, будуць усталяваныя новыя пакеты (звычайна новыя версіі бібліятэк або пакеты, што змянілі назву), а несумяшчальныя састарэлыя пакеты будуць выдаленыя.

Пры абнаўленні з набору дыскаў CD-ROM ці DVD у пэўныя моманты сістэма будзе звяртацца да Вас з просьбай уставіць адпаведны дыск. Магчыма, спатрэбіцца ўстаўляць адзін і той жа дыск некалькі разоў; прычына палягае ў тым, што некаторыя залежныя адзін ад аднаго пакеты могуць месціцца на розных дысках.

New versions of currently installed packages that cannot be upgraded without changing the install status of another package will be left at their current version (displayed as “held back”). This can be resolved by either using aptitude to choose these packages for installation or by trying apt-get -f install package.

4.5. Магчымыя праблемы падчас абнаўлення

The following sections describe known issues that might appear during an upgrade to squeeze.

4.5.1. cryptoloop support not included in the squeeze Linux kernel

Support for cryptoloop has been dropped from the Linux kernel packages included in Debian 6.0. Existing installations using cryptoloop need to be transitioned to dm-crypt before the upgrade.

4.5.2. Expected removals

The upgrade process to squeeze might ask for removal of packages in the system. The precise list of packages will vary depending on the set of packages that you have installed. These release notes give general advice on these removals, but if in doubt, it is recommended that you examine the package removals proposed by each method before proceeding.

Some common packages that are expected to be removed include: autofs (replaced by autofs5), dhcp3 (replaced by isc-dhcp), madwifi-source, python-setuptools and python2.4 (replaced by python2.6). For more information about packages obsoleted in squeeze, see Section 4.10, “Састарэлыя пакеты”.

4.5.3. Errors running aptitude or apt-get

Калі дзеянне з выкарыстаннем aptitude, apt-get або dpkg скончылася з памылкай

E: Dynamic MMap ran out of room

гэта значыць, што стандартнага памеру кэшу недастаткова. Праблему можна вырашыць, выдаліўшы або закаментаваўшы непатрэбныя радкі ў /etc/apt/sources.list або павялічыўшы памер кэшу. Памер кэшу павялічваецца праз выстаўленне параметра APT::Cache-Limit у файле наладак /etc/apt/apt.conf. Наступная каманда ўсталёўвае памер, якога мусіць хапіць для абнаўлення:

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

Маецца на ўвазе, што дагэтуль адпаведная вялічыня не існавала ў файле наладак.

4.5.4. Conflicts or Pre-Depends loops

Sometimes it's necessary to enable the APT::Force-LoopBreak option in APT to be able to temporarily remove an essential package due to a Conflicts/Pre-Depends loop. apt-get will alert you of this and abort the upgrade. You can work around this by specifying the option -o APT::Force-LoopBreak=1 on the apt-get command line.

It is possible that a system's dependency structure can be so corrupt as to require manual intervention. Usually this means using apt-get or

# dpkg --remove package_name

каб выдаліць некаторыя пакеты, што замінаюць, або

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

У выключных выпадках можа спатрэбіцца пераўсталяванне пакета з дапамогай каманды кшталту

# dpkg --install /path/to/package_name.deb

4.5.5. File conflicts

Канфліктаў файлаў не мусіць быць, калі Вы робіце абнаўленне з “чыстага” lenny. Але такія праблемы магчымыя, калі ў сістэме ўсталяваныя неафіцыйныя адаптацыі праграм (backports). У выніку файлавага канфлікту Вы пабачыце паведамленне аб памылцы кшталту:

Unpacking <package-foo> (from <package-foo-file>) ...
dpkg: error processing <package-foo> (--install):
 trying to overwrite `<some-file-name>',
 which is also in package <package-bar>
dpkg-deb: subprocess paste killed by signal (Broken pipe)
 Errors were encountered while processing:
 <package-foo>

Вы можаце паспрабаваць развязаць канфлікт файлаў, прымусова выдаліўшы пакет, што ўзгадваецца ў апошнім радку паведамлення аб памылцы:

# dpkg -r --force-depends імя_пакета

After fixing things up, you should be able to resume the upgrade by repeating the previously described apt-get commands.

4.5.6. Configuration changes

During the upgrade, you will be asked questions regarding the configuration or re-configuration of several packages. When you are asked if any file in the /etc/init.d directory, or the /etc/manpath.config file should be replaced by the package maintainer's version, it's usually necessary to answer `yes' to ensure system consistency. You can always revert to the old versions, since they will be saved with a .dpkg-old extension.

Калі Вы не ўпэўненыя, што трэба рабіць, запішыце назву пакета або файла і разбярыцеся з адпаведнымі наладкамі пазней. Вы можаце прагледзець запіс сесіі, каб знайсці інфармацыю, што з'яўлялася на экране падчас абнаўлення.

4.5.7. Change of session to console

If you are running the upgrade using the system's local console you might find that at some points during the upgrade the console is shifted over to a different view and you lose visibility of the upgrade process. For example, this will happen in desktop systems when gdm is restarted.

To recover the console where the upgrade was running you will have to use Ctrl+Alt+F1 to switch back to the virtual terminal 1 if in the graphical startup screen or use Alt+F1 if in the local text-mode console. Replace F1 with the function key with the same number of the virtual terminal the upgrade was running in. You can also use Alt+Left Arrow or Alt+Right Arrow to switch between the different text-mode terminals.

4.5.8. Special care for specific packages

In most cases, packages should upgrade smoothly between lenny and squeeze. There are a small number of cases where some intervention may be required, either before or during the upgrade; these are detailed below on a per-package basis.

4.5.8.1. Evolution

Evolution (the GNOME Desktop mail client) has been updated from version 2.22 to 2.30. This changes the storage format used by the package for local data and there is a possibility of data loss if the upgrade is performed whilst evolution is running. Exiting the application itself may not be sufficient, as various related components will continue to run in the background. To avoid any potential issues, it is recommended that you completely exit your desktop environment before beginning the upgrade to squeeze.

As part of the upgrade process, evolution will check whether any related processes are running and will recommend that they be closed. A secondary check for processes will then be performed; if necessary, a choice will be offered between allowing the remaining processes to be killed or aborting the upgrade in order to resolve the situation by hand.

4.6. Абнаўленне ядра і звязаных пакетаў

У гэтай секцыі распавядаецца, як абнавіць ядро, і якія праблемы могуць сустрэцца падчас такога абнаўлення. Вы можаце або ўсталяваць адзін з пакетаў linux-image-*, якія ўваходзяць у Debian, альбо сабраць уласнае ядро.

Майце на ўвазе, што большасць інфармацыі ў гэтым падзеле грунтуецца на спадзяванні, што ў сістэме ўжываецца адно з модульных ядраў Debian у спалучэнні з initramfs-tools ды udev. Калі Вы карыстаецеся ўласным ядром, у якім не ўжываецца пачатковы адбітак initrd, альбо калі адбіткі initrd ствараюцца іншай праграмай, частка пададзенай далей інфармацыі можа не датычыцца Вашай сістэмы.

4.6.1. Усталяванне мета-пакета з ядром

Падчас абнаўлення з выпуску lenny да squeeze настойліва рэкамендуецца ўсталяваць новы мета-пакет з ядром linux-image-2.6-*. Гэты пакет можа быць усталяваны аўтаматычна падчас працэсу dist-upgrade. Пераканацца, ці гэта так, можна, запусціўшы каманду:

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

Калі Вы не пабачыце ніякіх паведамленняў, тады давядзецца ўсталяваць новы пакет linux-image самастойна. Каб пабачыць спіс даступных метапакетаў з сямейства linux-image-2.6, запусціце каманду:

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

If you are unsure about which package to select, run uname -r and look for a package with a similar name. For example, if you see '2.6.26-2-686', it is recommended that you install linux-image-2.6-686. You may also use apt-cache to see a long description of each package in order to help choose the best one available. For example:

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

You should then use apt-get install to install it. Once this new kernel is installed you should reboot at the next available opportunity to get the benefits provided by the new kernel version.

For the more adventurous there is an easy way to compile your own custom kernel on Debian GNU/Linux. Install the kernel-package tool and read the documentation in /usr/share/doc/kernel-package. Alternatively, you can also use the kernel sources, provided in the linux-source-2.6 package. You can make use of the deb-pkg target available in the sources' makefile for building a binary package. There are some differences in these two approaches, please consult the respective package's documentation.

Калі магчыма, лепей абнаўляць пакет ядра асобна ад працэдуры dist-upgrade, каб зменшыць рызыку ад знаходжання сістэмы ў стане, непрыдатным да запуску. Але майце на ўвазе, што гэта трэба рабіць пасля мінімальнага абнаўлення, апісанага на старонцы Section 4.4.4, “Мінімальнае абнаўленне сістэмы”.

4.6.2. Змена нумароў прылад

In lenny and later, a new kernel mechanism for hardware discovery may change the order in which devices are discovered on your system on each boot, affecting the device names assigned to them. For example, if you have two network adapters that are associated with two different drivers, the devices eth0 and eth1 refer to may be swapped.

For network devices, this reordering is normally avoided by the definitions at /etc/udev/rules.d/70-persistent-net.rules for udev. Since these rules were already in place in lenny, no additional action should be required when upgrading to squeeze to get the benefit of stable network device names. Please note, however, that this udev mechanism means that a given network device name is tied to a particular piece of hardware; if you, for instance, exchange ethernet adapters in a deployed squeeze system, the new adapter will get a new interface name instead of using the existing one. To reuse an existing device name for new hardware, you will need to delete the associated entry from /etc/udev/rules.d/70-persistent-net.rules.

For storage devices, you may be able to avoid this reordering by using initramfs-tools and configuring it to load storage device driver modules in the same order they are currently loaded. However, in light of other changes to the storage subsystem of the Linux kernel as described at Section 5.1.1, “Migration of disk drivers from IDE to PATA subsystem”, this is usually not worth the effort and it is recommended instead to use device names that are guaranteed to be stable over time, such as the UUID aliases [9] in the /dev/disk/by-uuid/ directory or LVM device names in /dev/mapper/.

4.6.3. Праблемы з храналогіяй запуску сістэмы

Калі для запуску сістэмы ўжываецца створаны з дапамогай initramfs-tools адбітак initrd, у некаторых выпадках файлы прыладаў могуць быць створаныя udev запозна. Гэта прывядзе да немагчымасці працы скрыптоў запуску з такімі прыладамі.

Звычайнай прыкметай такога становішча з'яўляецца немагчымасць запуску сістэмы з-за таго, што каранёвая файлавая сістэма не можа быць прымацаваная. Пры гэтым карыстальнік трапляе ў дапаможную абалонку. Калі пазней праверыць стан сістэмы, ўсе патрэбныя файлы прыладаў будуць прысутнічаць у дырэкторыі /dev. Такое здаралася, калі каранёвая файлавая сістэма месцілася на USB-дыску альбо на масіве RAID (асабліва калі пры гэтым выкарыстоўваўся загрузчык LILO).

Абыйсці праблему можна, вызначыўшы параметр загрузкі rootdelay=9. Канкрэтная працягласць затрымкі ў секундах можа быць іншай.

4.7. Загрузка сістэмы спыняецца на Waiting for root file system

Як выправіць становішча, калі дыск /dev/hda ператварыўся ў /dev/sda

Асобныя карыстальнікі паведамлялі аб тым, што ў іхных сістэмах ядро не здолела знайсці каранёвую файлавую сістэму пасля перазагрузкі.

У такім выпадку загрузка спыняецца пасля вываду паведамлення:

Waiting for root file system ...

і праз некалькі секунд з'яўляецца камандны радок busybox.

This problem can occur when the upgrade of the kernel introduces the use of the new generation of IDE drivers. The IDE disk naming convention for the old drivers was hda, hdb, hdc, hdd. The new drivers will name the same disks respectively sda, sdb, sdc, sdd.

The problem appears when the upgrade does not generate a new /boot/grub/menu.lst file to take the new naming convention into account. During the boot, Grub will pass a system root partition to the kernel that the kernel doesn't find. It can also appear when mounting filesystems if the /etc/fstab has not been updated accordingly. Although the upgrade process to squeeze should cover both situations automatically.

Калі згаданая праблема ўзнікла ў Вашай сістэме пасля абнаўлення, скарыстайцеся звесткамі з параграфа Section 4.7.2, “Як выправіць праблему пасля абнаўлення”. Парады наконт таго, як пазбегнуць праблемы загадзя, змешчаныя далей.

4.7.1. Як перасцерагчы сябе ад праблемы перад абнаўленнем

One can avoid this problem entirely by using an identifier for the root filesystem that does not change from one boot to the next. There are two possible methods for doing this - labeling the filesystem, or using the filesystem's universally unique identifier (UUID). These methods are supported in Debian since the etch release.

Кожны з падыходаў мае свае плюсы і мінусы. Меткі больш спрыяльныя для чытання, але няма гарантыі, што іншая файлавая сістэма не будзе мець такую самую метку. Падыход з выкарыстаннем UUID выглядае менш прывабна, але пры гэтым выключана сітуацыя канфлікту UUID-аў.

У пададзеных ніжэй прыкладах каранёвая файлавая сістэма месціцца на падзеле /dev/hda6. Таксама ў сістэме мусяць працаваць udev і падтрымка фарматаў файлавых сістэм ext2 ды ext3.

Каб выкарыстаць спосаб з прызначэннем меткі:

  1. Прызначце метку (назва мусіць быць не болей за 16 сімвалаў) з дапамогай наступнай каманды: e2label /dev/hda6 rootfilesys

  2. Выпраўце файл наладак /boot/grub/menu.lst, змяніўшы радок:

    # kopt=root=/dev/hda6 ro

    на

    # kopt=root=LABEL=rootfilesys ro

    [Note]Note

    Не выдаляйце знак # напачатку радка, ён мусіць прысутнічаць.

  3. У файле наладак menu.lst абнавіце радкі, што датычацца ядраў, запусціўшы каманду update-grub.

  4. Выпраўце файл наладак /etc/fstab, змяніўшы радок, што датычыцца мацавання падзелу /, напрыклад:

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

    на

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

    Змяненне датычыцца толькі першай калонкі адпаведнага радку, астатнія калонкі мусяць застацца такімі самымі, як былі.

Каб выкарыстаць спосаб на базе UUID:

  1. Find out the universally unique identifier of your filesystem by issuing: ls -l /dev/disk/by-uuid | grep hda6. You can also use blkid /dev/hda6.

    If you list the contents in /dev/disk/by-uuid, you should get a line similar to this one:

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

    If you use blkid, you should get an output similar to this one:

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

    Унікальным ідэнтыфікатарам з'яўляецца назва сімвалічнай спасылкі, што вядзе да /dev/hda6. У пададзеным вышэй прыкладзе гэта d0dfcc8a-417a-41e3-ad2e-9736317f2d8a.

    [Note]Note

    На Вашай канкрэтнай сістэме значэннем UUID будзе нейкі іншы радок.

  2. Выпраўце файл наладак /boot/grub/menu.lst, змяніўшы радок:

    # kopt=root=/dev/hda6 ro

    to use UUID instead:

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

    [Note]Note

    Не выдаляйце знак # напачатку радка, ён мусіць прысутнічаць.

  3. У файле наладак menu.lst абнавіце радкі, што датычацца ядраў, запусціўшы каманду update-grub.

  4. Выпраўце файл наладак /etc/fstab, змяніўшы радок, што датычыцца мацавання падзелу /, напрыклад:

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

    на

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

    Змяненне датычыцца толькі першай калонкі адпаведнага радку, астатнія калонкі мусяць застацца такімі самымі, як былі.

4.7.2. Як выправіць праблему пасля абнаўлення

4.7.2.1. Спосаб 1

Гэты спосаб можна ўжыць, калі загрузчык Grub дэманструе меню варыянтаў загрузкі. Калі такое меню не з'яўляецца, паспрабуйце націснуць клавішу Esc перад загрузкай ядра. Калі ў меню ўсё адно не атрымалася патрапіць, скарыстайцеся адным з наступных шляхоў: Section 4.7.2.2, “Спосаб 2”, Section 4.7.2.3, “Спосаб 3”.

  1. У меню Grub абярыце пункт, які трэба загрузіць. Націсніце клавішу e, каб перайсці ў рэжым рэдагавання параметраў загрузкі. Вы пабачыце нешта накшталт:

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

  2. Перайдзіце на радок

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

    яшчэ раз націсніце e і замяніце hdX на sdX (X можа быць адной з літараў a, b, c або d, у залежнасці ад канфігурацыі Вашай канкрэтнай сістэмы). У згаданым прыкладзе радок мусіць атрымаць наступны выгляд:

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

    Потым націсніце клавішу Увод, каб захаваць зменены радок. Калі назва hdX прысутнічае ў яшчэ нейкіх радках, выпраўце іх адпаведна. Не змяняйце назвы, якія выглядаюць як root (hd0,0). Пасля ўсіх змяненняў, націсніце клавішу b. Сістэма мусіць загрузіцца звычайным чынам.

  3. Пасля таго, як сістэму атрымаецца загрузіць, трэба будзе выправіць праблему канчаткова. Перайдзіце да параграфа Section 4.7.1, “Як перасцерагчы сябе ад праблемы перад абнаўленнем” і скарыстайцеся адной з пададзеных там парадаў.

4.7.2.2. Спосаб 2

Загрузіце сістэму з усталявальнага носьбіту Debian GNU/Linux (CD або DVD). У адказ на запыт аб варыянтах загрузкі абярыце рэжым rescue. Абярыце мову, краіну і раскладку клавіятуры; дазвольце праграме ўсталявання наладзіць сетку (неважна, ці атрымаецца гэта ці не). Пасля згаданых крокаў, Вам будзе зададзенае пытанне, які з падзелаў дыску трэба выкарыстаць як каранёвую файлавую сістэму. Прапанаваныя варыянты будуць выглядаць прыкладна так:

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

Калі Вам вядома, на якім з падзелаў месціцца каранёвая файлавая сістэма, абярыце адпаведны варыянт. Калі ўпэўненасці няма, паспрабуйце першы падзел. У выпадку скаргі на неправільную каранёвую сістэму спрабуйце наступны падзел і г.д. Такі перабор не мусіць пашкодзіць Вашыя падзелы, і калі на дыску ўсталяваная толькі адна аперацыйная сістэма, знайсці правільны варыянт атрымаецца хутка. Калі на дыску ўсталяваныя некалькі аперацыйных сістэм, лепей усё ж дакладна ведаць, які з падзелаў патрэбны.

Пасля выбару падзелу, Вам будзе прапанаваны выбар магчымых дзеянняў. Абярыце варыянт з запускам каманднай абалонкі ў абраным падзеле. У выпадку скаргі на немагчымасць выканаць такі запуск паспрабуйце іншы падзел.

У выніку Вы мусіце патрапіць у камандную абалонку з правамі карыстальніка root. Каранёвая файлавая сістэма прымацаваная ў дырэкторыі /target. Вам неабходна атрымаць доступ да дырэкторыяў /boot, /sbin і /usr на сваім жорсткім дыску, якія будуць зараз даступныя адпаведна як /target/boot, /target/sbin ды /target/usr. Калі гэтыя дырэкторыі трэба дадаткова прымацаваць з іншых падзелаў, зрабіце гэта (гл. файл наладак /etc/fstab, калі няма ўпэўненасці, якія канкрэтна падзела варта прымацоўваць).

Перайдзіце да параграфу Section 4.7.1, “Як перасцерагчы сябе ад праблемы перад абнаўленнем” і скарыстайцеся адной са згаданых там парадаў. Пасля выканання патрэбных дзеянняў, увядзіце exit, каб выйсці з каманднай абалонкі рэжыму ратавання і reboot, каб перазагрузіць сістэму звычайным чынам (не забудзьцеся прыбраць усталявальны носьбіт, з якога Вы загружаліся ў рэжыме ратавання).

4.7.2.3. Спосаб 3

  1. Загрузіцеся са сваёго ўлюбёнага LiveCD, такога як Debian Live, Knoppix або Ubuntu Live.

  2. Прымацуйце падзел, на якім знаходзіцца сістэмная дырэкторыя /boot. Калі дакладна невядома, які падзел варта прымацоўваць, скарыстайцеся з вываду каманды dmesg каб даведацца, якую назву мае жорсткі дыск (магчымыя варыянты: hda, hdb, hdc, hdd або sda, sdb, sdc, sdd). Калі вядома, з якім дыскам трэба працаваць (дзеля прыкладу няхай гэта будзе sdb), запусціце наступную каманду, каб пабачыць табліцу падзелаў дыску і вызначыць, які падзел трэба выкарыстоўваць: fdisk -l /dev/sdb

  3. Няхай адпаведны падзел атрымалася прымацаваць да дырэкторыі /mnt і гэты падзел утрымлівае дырэкторыю /boot з адпаведным утрыманнем. Засталося выправіць файл наладак /mnt/boot/grub/menu.lst.

    Знайдзіце секцыю, якая выглядае падобным чынам:

    ## ## 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

    і замяніце ўсе ўзгадкі hda, hdb, hdc, hdd адпаведна на sda, sdb, sdc, sdd. Не змяняйце радок, падобны на:

    root            (hd0,0)

  4. Перазагрузіце сістэму, прыбярыце загрузачны дыск і Вашая сістэма загрузіцца належным чынам.

  5. Пасля таго як сістэму атрымалася загрузіць, скарыстайцеся адной з парадаў, пададзеных у параграфе Section 4.7.1, “Як перасцерагчы сябе ад праблемы перад абнаўленнем”, каб выправіць праблему канчаткова.

4.8. Падрыхтоўка да наступнага выпуску

Існуе некалькі крокаў, якія можна выканаць пасля абнаўлення, каб падрыхтаваць сістэму да наступнага выпуску.

  • Прыбярыце састарэлыя і непатрэбныя пакеты, паводле параграфу Section 4.10, “Састарэлыя пакеты”. Варта праверыць, якія файлы наладак выкарыстоўваюць гэтыя пакеты і разгледзець магчымасць поўнага выдалення, уключна з файламі наладак.

4.8.1. Upgrade to GRUB 2

During the upgrade, you will normally have been offered the option to "chainload" GRUB 2: that is, to keep GRUB Legacy as the primary boot loader but to add an option to it to load GRUB 2 and then start your Debian GNU/Linux system from that. This allows you to verify that GRUB 2 works on your system before committing to use it permanently.

Once you have confirmed that GRUB 2 works, you should switch to using it properly: the chainloading setup is only intended to be used temporarily. You can do this by running upgrade-from-grub-legacy.

The GRUB Manual has more information on the changes between GRUB Legacy and GRUB 2, some of which may require changes to complex configurations. If you have not modified your boot loader configuration, you should not need to do anything further.

4.9. Deprecated components

With the next release of Debian GNU/Linux 7.0 (codenamed wheezy) some features will be deprecated. Users will need to migrate to other alternatives to prevent trouble when updating to 7.0.

This includes the following features:

  • OpenVZ and Linux-Vserver: Debian GNU/Linux 6.0 will be the last release to include Linux kernel virtualization featuresets outside of mainline. This means that the OpenVZ and Linux-Vserver featuresets should be considered deprecated, and users should migrate to linux-2.6 upstream merged virtualization solutions like KVM, Linux Containers or Xen.

  • The gdm package (GNOME Display Manager version 2.20) will be obsoleted by gdm3, a rewritten version. See Section 5.5, “Змены й падтрымка працоўнага асяродку GNOME” for more information.

4.10. Састарэлыя пакеты

Introducing several thousand new packages, squeeze also retires and omits more than four thousand old packages that were in lenny. It provides no upgrade path for these obsolete packages. While nothing prevents you from continuing to use an obsolete package where desired, the Debian project will usually discontinue security support for it a year after squeeze's release[10], i не забяспечвае ніякай іншай падтрымкі. Раім замяніць састарэлыя пакеты на аналагі, калі гэта магчыма.

Існуе шмат прычынаў, чаму пакет можа быць выдалены з дыстрыбутыву: спыненне падтрымкі асноўным распрацоўшчыкам; адсутнасць афіцыйных распрацоўшчыкаў Debian, якім было б цікава надалей падтрымліваць пакет; функцыянальнасць, якую забяспечвае пакет, перакрываецца магчымасцямі іншых праграм (альбо найноўшага пакалення такой самай праграмы); урэшце, выключэнне пакету з squeeze можа быць выкліканае колькасцю выяўленых і не выпраўленых памылак. У апошнім выпадку выдалены пакет можа надалей прысутнічаць у “нестабільным” дыстрыбутыве.

Высветліць, якія менавіта пакеты ў абноўленай сістэме з'яўляюцца “састарэлымі”, даволі лёгка: яны адпаведным чынам пазначаюцца ў інтэрфэйсах праграм для кіравання пакетамі. Праграма aptitude пералічвае такія пакеты ў секцыі “Састарэлыя і лакальна створаныя пакеты”. Праграма dselect забяспечвае аналагічную секцыю, але выгляд спісу ў ёй можа адрознівацца.

Also, if you have used aptitude or apt-get to manually install packages in lenny it will have kept track of those packages you manually installed and will be able to mark as obsolete those packages pulled in by dependencies alone which are no longer needed if a package has been removed. aptitude and apt, unlike deborphan, will not mark for removal packages that you manually installed, as opposed to those that were automatically installed through dependencies. To remove automatically installed packages that are no longer used, run:

# apt-get autoremove

Існуюць дадатковыя праграмныя сродкі пошуку састарэлых пакетаў, напрыклад, deborphan, debfoster або cruft. Лепш за ўсё выкарыстоўваць deborphan, нягледзячы на тое, што ў стандартным рэжыме ён паведаміць толькі аб састарэлых бібліятэках (пакетах з секцыяў “libs” або “oldlibs”, якія не выкарыстоўваюцца ніякімі іншымі пакетамі). Не варта безаглядна выдаляць усё, што пералічана ў вывадзе згаданых праграмаў, асабліва, калі ўжываюцца нестандартныя агрэсіўныя наладкі, якія дакладна могуць прыводзіць да фальшывых спрацоўванняў. Дужа раім перагледзець па адным усе пакеты, прапанаваныя да выдалення (г.зн. іх змесціва, памер і апісанне) перад тым, як прымаць рашэнне на карысць выдалення.

Сістэма кантролю памылак Debian часта ўтрымлівае дадатковыя звесткі аб прычынах выдалення таго ці іншага пакета з дыстрыбутыву. Варта перагледзець архіў паведамленняў аб памылках для самога пакета а таксама для псеўда-пакета ftp.debian.org.

У спіс састарэлых пакетаў уваходзяць:

  • The plone content management suite. This has been done on request by the developers to use the Unified Installer for Linux, which they consider their only supported deployment platform. The recommended tool for installing Plone on a Debian GNU/Linux system is the Unified Installer, available for download from http://plone.org/

  • nessus, the vulnerability scanning server and its associated libraries and other software. It has been deprecated in favor of the software provided by OpenVAS which includes openvas-server and openvas-client. As there is no automatic upgrade path you will have to install OpenVAS and manually move over your Nessus service configuration (users, certificates, etc.) to OpenVAS.

  • postgresql-8.3, successor is postgresql-8.4.

  • mysql-server-5.0, successor is mysql-server-5.1.

  • python2.4, successor is python2.6.

  • Java 5 software including the packages sun-java5-jre and sun-java5-bin, successor is Java 6: sun-java6-jre and associated packages.

  • apt-proxy is no longer provided, alternatives to this tool include apt-cacher-ng, apt-cacher and approx. Although no automatic upgrade path exists, user of apt-proxy can switch to these alternatives by manually installing any of these packages.

  • Some of Xorg's video drivers are no longer available in squeeze and are obsolete. This includes xserver-xorg-video-cyrix, xserver-xorg-video-i810, xserver-xorg-video-imstt, xserver-xorg-video-nsc, xserver-xorg-video-sunbw2, and xserver-xorg-video-vga. They might be removed through the upgrade. Users should install xserver-xorg-video-all instead.

  • The utility used in lenny to display a splash image at boot time, usplash, is no longer available. It has been replaced by plymouth.

4.10.1. Фіктыўныя пакеты

Некаторыя пакеты з lenny у squeeze падзеленыя на некалькі розных пакетаў, збольшага дзеля паляпшэння магчымасцяў кіравання сістэмай. Каб палегчыць абнаўленне ў такіх выпадках squeeze часта забяспечвае “фіктыўныя (dummy)” пакеты, якія залежаць ад новых такім чынам, каб забяспечыць іх усталяванне. Такія “фіктыўныя” пакеты пасля абнаўлення лічацца састарэлымі і іх можна бесперашкодна выдаляць.

Most (but not all) dummy packages' descriptions indicate their purpose. Package descriptions for dummy packages are not uniform, however, so you might also find deborphan with the --guess-* options (e.g. --guess-dummy) useful to detect them in your system. Note that some dummy packages are not intended to be removed after an upgrade but are, instead, used to keep track of the current available version of a program over time.



[4] If the debconf priority is set to a very high level you might prevent configuration prompts, but services that rely on default answers that are not applicable to your system will fail to start.

[5] For example: DNS or DHCP services, specially when there is no redundancy or failover. In the DHCP case end-users might be disconnected from the network if the lease time is lower than the time it takes for the upgrade process to complete.

[6] Гэтую магчымасць можна адключыць, дадаўшы параметр panic=0 да спісу параметраў загрузкі.

[7] Сістэма кіравання пакетамі Debian звычайна не дазваляе пакетам выдаляць альбо замяняць файлы, якія належаць іншым пакетам (за выключэннем выпадкаў калі адзін пакет фармальна з'яўляецца заменай іншага).

[8] There are also known incompatibilities between the old kernel and the new udev. If you find issues after the reboot with the new kernel you will have to downgrade the udev in order to use the old one.

[9] Some devices, such as those used by crypt, RAID or LVM have stable non-UUID identifiers. In these cases you should use the name of the devices, which are already unambiguous and stable.

[10] Альбо з выхадам наступнага выпуску. Звычайна, толькі два стабільных выпускі падтрымліваюцца адначасова.