Chương 4. Upgrades from Debian 5.0 (lenny)

Mục lục

4.1. Chuẩn bị nâng cấp
4.1.1. Sao lưu bất kỳ dữ liệu hay thông tin cấu hình
4.1.2. Thông báo trước
4.1.3. Prepare for downtime on services
4.1.4. Chuẩn bị phục hồi
4.1.5. Chuẩn bị môi trường an toàn để nâng cấp
4.1.6. Remove conflicting packages
4.2. Kiểm tra trạng thái hệ thống
4.2.1. Xem lại hành vi bị hoãn trong bộ quản lý gói
4.2.2. Tắt ghim phiên bản trong APT
4.2.3. Kiểm tra trạng thái gói
4.2.4. Phần proposed-updates
4.2.5. Nguồn không chính thức và bản chuyển ngược
4.3. Chuẩn bị nguồn cho APT
4.3.1. Thêm nguồn Internet APT
4.3.2. Thêm nguồn APT cho máy nhân bản cục bộ
4.3.3. Thêm nguồn APT từ đĩa CD/DVD
4.4. Nâng cấp gói
4.4.1. Thu phiên chạy
4.4.2. Cập nhật danh sách gói
4.4.3. Đảm bảo có đủ sức chứa để nâng cấp
4.4.4. Nâng cấp hệ thống tối thiểu
4.4.5. Upgrading the kernel and udev
4.4.6. Upgrading the system
4.5. Vấn đề có thể gặp trong khi nâng cấp
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. Nâng cấp hạt nhân và các gói liên quan
4.6.1. Cài đặt siêu gói hạt nhân
4.6.2. Số thứ tự thiết bị khác
4.6.3. Vấn đề đặt thời gian khởi động
4.7. Tiến trình khởi động hệ thống bị treo ở Đang đợi hệ thống tập tin gốc
4.7.1. Cách tránh vấn đề này trong khi nâng cấp
4.7.2. Cách giải quyết vấn đề sau khi nâng cấp
4.8. Chuẩn bị cho bản phát hành kế tiếp
4.8.1. Upgrade to GRUB 2
4.9. Deprecated components
4.10. Gói quá cũ
4.10.1. Gói giả

4.1. Chuẩn bị nâng cấp

Trước khi nâng cấp, khuyên người dùng cũng đọc thông tin trong Chương 5, Vấn đề squeeze cần ghi nhớ. Chương đó diễn tả các vấn đề có thể gặp mà không phải liên quan trực tiếp đến quá trình nâng cấp, nhưng vẫn còn có thể cần biết trước khi bắt đầu.

4.1.1. Sao lưu bất kỳ dữ liệu hay thông tin cấu hình

Trước khi nâng cấp hệ thống, rất khuyên người dùng tạo một bản sao lưu hoàn toàn, hoặc ít nhất sao lưu bất kỳ dữ liệu hay thông tin cấu hình không nên mất. Các công cụ và quá trình nâng cấp vẫn hơi tin cậy, nhưng một sự thất bại phần cứng ở giữa việc nâng cấp có thể gây ra một hệ thống rất bị hại.

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.

Quá trình nâng cấp chính nó không sửa đổi gì trong thư mục /home (thư mục chính của mỗi người dùng). Tuy nhiên, một số ứng dụng nào đó (v.d. thuộc về bộ ứng dụng Mozilla, và môi trường GNOME and KDE) được biết là ghi đè lên thiết lập người dùng đã tồn tại bằng giá trị mặc định mới khi một phiên bản mới của ứng dụng được khởi chạy đầu tiên bởi một người dùng. Để phòng ngừa, khuyên người dùng sao lưu các tập tin và thư mục bị ẩn (“tập tin chấm”) trong thư mục chính của mỗi người dùng. Bản sao lưu này có thể giúp phục hồi hoặc tạo lại thiết lập cũ. Quản trị cũng có thể muốn cho các người dùng biết về trường hợp này.

Mỗi thao tác cài đặt gói phải được chạy với quyền siêu người dùng: có nên đăng nhập dưới root (người chủ) hoặc sử dụng lệnh su hay sudo để lấy được quyền truy cập cần thiết.

Việc nâng cấp có một số điều kiện tiên quyết: người dùng nên kiểm tra trước khi thật thực hiện tiến trình nâng cấp.

4.1.2. Thông báo trước

Khuyên quản trị thông báo trước cho mọi người dùng biết về bất kỳ quá trình nâng cấp dự định, dù người dùng đang truy cập đến hệ thống thông qua một kết nối ssh nên thấy ít trong khi nâng cấp, và nên có thể tiếp tục làm việc.

Muốn thực hiện thêm bước phòng ngừa thì sao lưu hoặc tháo gắn kết phân vùng /home) trước khi nâng cấp.

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 Phần 4.4.4, “Nâng cấp hệ thống tối thiểu”, followed by a kernel upgrade and reboot (see Phần 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 Phần 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. Chuẩn bị phục hồi

Do rất nhiều thay đổi trong hạt nhân (so lenny với squeeze) đối với trình điều khiển, phát hiện phần cứng và đặt tên và sắp đặt các tập tin thiết bị, thật sự rủi ro là người dùng có thể gặp khó khăn trong việc khởi động lại hệ thống sau khi nâng cấp. Rất nhiều vấn đề có thể gặp đã được diễn tả trong chương này, và những chương kế tiếp của Ghi chú Phát hành này.

Vì lý do đó hợp lý là người dùng hay quản trị đảm bảo có thể phục hồi nếu hệ thống không khởi động lại được hoặc, đối với hệ thống quản lý từ xa, không chạy mạng được.

Nếu quản trị nâng cấp từ xa qua một liên kết ssh, rất khuyên quản trị cũng thực hiện những bước phòng ngừa cần thiết để có khả năng truy cập đến máy phục vụ qua một thiết bị nối tiếp từ xa. Vẫn có thể là, sau khi nâng cấp hạt nhân và khởi động lại hệ thống, một số thiết bị sẽ bị thay tên (như diễn tả trong Phần 4.6.2, “Số thứ tự thiết bị khác”) thì quản trị cần phải sửa chữa cấu hình hệ thống thông qua một bàn giao tiếp cục bộ. Hơn nữa, nếu hệ thống bị tình nguyện cờ khởi động lại ở giữa quá trình nâng cấp, quản trị có thể cần phải phục hồi dùng một bàn giao tiếp cục bộ.

Cái hiển nhiện nhất để thử đầu tiên để khởi động lại bằng hạt nhân cũ. Tuy nhiên, vì các lý do khác nhau diễn tả ở nơi khác của tài liệu này, sự thử này không phải đảm bảo thành công.

Nếu nó không thành công, quản trị cần một phương pháp khác để khởi động hệ thống để truy cập và sửa chữa nó. Một lựa chọn là sử dụng một ảnh cứu đặc biệt hay một đĩa CD Linux Động. Sau khi khởi động từ đó, quản trị nên có khả năng gắn kết hệ thống tập tin gốc và chroot vào nó để xem xét và sửa chữa vấn đề.

Một lựa chọn khác có thể khuyến khích là sử dụng chế độ cứu của Bộ Cài Đặt Debian squeeze. Lợi ích khi sử dụng bộ cài đặt là người dùng có thể chọn trong nhiều phương pháp cài đặt khác nhau một phương pháp riêng lẻ thích hợp nhất với trường hợp đó. Để tìm thêm thông tin, xem phần “Phục hồi một hệ thống bị hỏng” trong Chương 8 của Sổ tay Cài đặt (dịch sang tiếng Việt) vàHỏi Đáp Cài đặt Debian.

4.1.4.1. Trình bao gỡ lỗi trong khi khởi động dùng initrd

Công cụ initramfs-tools bao gồm một trình bao gỡ lỗi[6] trong mỗi initrd nó tạo. Nếu (ví dụ) initrd không thể gắn kết hệ thống tập tin gốc, nó sẽ mở trình bao gỡ lỗi này mà có sẵn các lệnh cơ bản để tìm vết của vấn đề và (có thể) sửa chữa nó.

Các cái cơ bản cần kiểm tra: có những tập tin thiết bị đúng trong thư mục /dev; những mô-đun nào được nạp (cat /proc/modules); kết xuất của lệnh dmesg về lỗi nạp trình điều khiển. Kết xuất của dmesg cũng hiển thị tập tin thiết bị nào được gán cho đĩa nào; quản trị cũng nên so thông tin đó với kết xuất của câu lệnh echo $ROOT để kiểm tra hệ thống tập tin gốc nằm trên thiết bị mong đợi.

Nếu quản trị có phải sửa chữa được vấn đề, việc gõ lệnh thoát exit sẽ thoát khỏi trình bao gỡ lỗi và tiếp tục lại tiến trình khởi động ở điểm thời nó thất bại trước. Tất nhiên, quản trị cũng cần phải sửa chữa vấn đề cơ sở và tạo lại initrd để mà khởi động được về sau.

4.1.5. Chuẩn bị môi trường an toàn để nâng cấp

Việc nâng cấp bản phân phối nên được làm hoặc cục bộ từ một bàn giao tiếp ảo chế độ văn bản (hay một thiết bị cuối nối tiếp được kết nối trực tiếp), hoặc từ xa thông qua một liên kết ssh.

[Quan trọng]Quan trọng

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

Để tăng hệ số an toàn khi nâng cấp từ xa, khuyên quản trị chạy tiến trình nâng cấp trên bàn giao tiếp ảo được chương trình screen cung cấp, mà hiệu lực chức năng tái kết nối an toàn và đảm bảo tiến trình nâng cấp không phải bị gián đoạn thậm chí nếu quá trình kết nối từ xa không thành công.

[Quan trọng]Quan trọng

Không nên nâng cấp dùng telnet, rlogin, rsh, hay một buổi hợp đăng nhập X được quản lý bởi xdm, gdm, kdm v.v. trên máy đang nâng cấp. Đó là vì mỗi dịch vụ như vậy sẽ bị chấm dứt trong quá trình nâng cấp, mà có thể gây ra một hệ thống không thể tới được mà chưa được nâng cấp hoàn toàn.

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. Kiểm tra trạng thái hệ thống

Quá trình nâng cấp diễn tả trong chương này đã được thiết kế cho việc nâng cấp từ hệ thống lenny « thuần »: hệ thống không chứa gói thuộc nhóm ba. Để nâng cấp một cách tin cậy nhất, quản trị cũng có thể gỡ bỏ các gói nhóm ba khỏi hệ thống trước khi bắt đầu nâng cấp.

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.

Thủ tục này cũng giả sử hệ thống đã được cập nhật lên bản phát hành điểm mới nhất của lenny. Không hay chưa chắc thì quản trị nên theo những hướng dẫn trong Phần A.1, “Nâng cấp hệ thống lenny”.

4.2.1. Xem lại hành vi bị hoãn trong bộ quản lý gói

Trong một số trường hợp nào đó, sử dụng apt-get thay cho aptitude để cài đặt gói có thể làm cho aptitude thấy một gói nào đó là “chưa dùng” và định thời nó bị gỡ bỏ. Thông thường, quản trị nên kiểm tra hệ thống vẫn “sạch” và được cập nhật hoàn toàn trước khi tiếp tục nâng cấp.

Do đó, quản trị nên kiểm tra có hành vi bị hoãn trong bộ quản lý gói aptitude. Vẫn có một gói định thời gỡ bỏ hay cập nhật trong bộ quản lý gói thì nó có thể ảnh hưởng âm đến quá trình nâng cấp. Ghi chú rằng chỉ có thể sửa chữa trường hợp này nếu tập tin liệt kê các nguồn sources.list vẫn còn chỉ tới lenny;, không phải tới bản ổn định (stable) hay squeeze; xem Phần A.2, “Kiểm tra danh sách nguồn”.

Để thực hiện thủ tục xem lại này, hãy khởi chạy aptitude trong “chế độ trực quan” và bấm phím g (“Đi”). Nếu nó hiển thị hành vi nào, quản trị nên xem lại và sửa chữa hoặc thực hiện chúng. Không có hành vi đề xuất thì chương trình hiển thị một thông điệp: “Không có gói nào được định cài đặt, gỡ bỏ hoặc nâng cấp”.

4.2.2. Tắt ghim phiên bản trong APT

Nếu người dùng đã cấu hình APT để cài đặt một số gói nào đó từ một bản phát hành khác với bản ổn định (stable), v.d. từ bản thử (testing), thì có lẽ người dùng cần phải sửa đổi cấu hình ghim phiên bản trong APT (cất giữ trong /etc/apt/preferences) để cho phép nâng cấp gói lên phiên bản trong bản phát hành ổn định mới. Có thể tìm thêm thông tin về chức năng ghim phiên bản APT trong apt_preferences(5).

4.2.3. Kiểm tra trạng thái gói

Bất chấp phương pháp dùng để nâng cấp, khuyên người dùng trước tiên kiểm tra trạng thái về tất cả các gói, và thẩm tra mọi gói đều có tình trạng có thể nâng cấp. Theo đây có câu lệnh sẽ hiển thị gói nào có trạng thái « Nửa cài đặt » hay « Lỗi cấu hình » hay bất cứ trạng thái lỗi nào.

# dpkg --audit

Cũng có thể kiểm tra trạng thái về tất cả các gói trên hệ thống dùng dselect, aptitude, hay câu lệnh như

# dpkg -l | pager

hay

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

Có nên gỡ bỏ bất kỳ tình trạng giữ lại trước khi nâng cấp. Nếu gói nào chủ yếu để nâng cấp vẫn còn bị giữ lại, thì việc nâng cấp sẽ không thành công.

Ghi chú rằng aptitude sử dụng một phương pháp khác để đăng ký các gói bị giữ lại, so với apt-getdselect. Người dùng có thể tìm những gói bị giữ lại trong aptitude dùng câu lệnh

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

Muốn kiểm tra những gói nào bị giữ lại trong apt-get thì dùng câu lệnh

# dpkg --get-selections | grep hold

Nếu người dùng đã sửa đổi và biên dịch lại gói nào một cách cục bộ, vẫn không thay đổi tên nó hoặc đặt thời điểm vào phiên bản, người dùng phải đặt tình trạng giữ lại cho nó, để ngăn cản nó được nâng cấp.

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.

Vẫn có gì cần sửa chữa thì người dùng nên kiểm tra tập tin sources.list vẫn còn tham chiếu đến lenny như diễn tả trong Phần A.2, “Kiểm tra danh sách nguồn”.

4.2.4. Phần proposed-updates

Nếu tập tin /etc/apt/sources.list chứa phần proposed-updates, người dùng nên gỡ bỏ tập tin này trước khi thử nâng cấp hệ thống. Đây là một bước phòng ngừa để giảm sự có thể bị xung đột.

4.2.5. Nguồn không chính thức và bản chuyển ngược

Nếu hệ thống chứa gói nào khác Debian, ghi chú rằng các gói như vậy có thể bị gỡ bỏ trong quá trình nâng cấp, do quan hệ phụ thuộc bị xung đột. Nếu những gói này đã được cài đặt bằng cách thêm một kho gói bổ sung vào tập tin /etc/apt/sources.list, người dùng nên kiểm tra nếu kho gói đó cũng cung cấp các gói được biên dịch cho squeeze, và sửa đổi dòng nguồn một cách tương ứng, cùng lúc với sửa đổi các dòng nguồn về gói Debian.

Hệ thống lenny có lẽ cũng chứa phiên bản “mới” chuyển ngược không chính thức của gói có phải thuộc về Debian. Gói như vậy rất có thể gây ra vấn đề trong quá trình nâng cấp, vì kết quả là hai tập tin bị xung đột nhau[7]. Phần 4.5, “Vấn đề có thể gặp trong khi nâng cấp” có vài thông tin về cách giải quyết hai tập tin bị xung đột (nếu trường hợp này xảy ra).

4.3. Chuẩn bị nguồn cho APT

Trước khi khởi chạy tiến trình nâng cấp, người dùng cần phải thiết lập tập tin cấu hình apt về danh sách các gói: /etc/apt/sources.list.

apt sẽ xem xét mọi gói được tìm thông qua một dòng “deb”, và cài đặt gói có số thứ tự phiên bản cao nhất, cũng gán quyền ưu tiên cho dòng đầu của tập tin (do đó khi có nhiều địa chỉ máy nhân ban, bình thường đặt tên một đĩa cứng cục bộ, sau đó các đĩa CD-ROM, và các máy nhân bản HTTP/FTP).

Mỗi bản phát hành có một tên mã (v.d. lenny, squeeze) và một tên trạng thái (tức là oldstable [ổn định cũ], stable [ổn định], testing [thử], unstable [bất định]). Tham chiếu đến một bản phát hành theo tên mã có lợi ích là dễ phân biệt các bản phát hành khác nhau. Người dùng có thể theo dõi các thông báo phát hành tìm tên mã mới và tự cập nhật hệ thống. Tuy nhiên, người dùng phân biệt theo tên trạng thái sẽ thấy rất nhiều bản cập nhật gói ngay khi bản mới được phát hành.

4.3.1. Thêm nguồn Internet APT

Cấu hình mặc định được thiết lập để cài đặt từ các máy phục vụ Debian chính, nhưng người dùng cũng có thể sửa đổi tập tin /etc/apt/sources.list để sử dụng máy nhân bản khác, tốt hơn một máy nhân bản gần chỗ người dùng trên mạng.

Có thể tìm các địa chỉ máy nhân bản HTTP/FTP Debian ở http://www.debian.org/distrib/ftplist (xem phần “list of Debian mirrors” [danh sách các máy nhân bản Debian]). Máy nhân bản HTTP thường chạy nhanh hơn máy nhân bản FTP.

Ví dụ, giả sử máy nhân bản Debian gần nhất là http://mirrors.kernel.org. Khi xem xét nó dùng trình duyệt Web hay một chương trình FTP, người dùng sẽ thấy những thư mục chính được sắp đặt như thế:

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

Để sử dụng máy nhân bản này với apt, người dùng nên thêm vào tập tin sources.list dòng này:

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

Ghi chú rằng đoạn « dists » được thêm ngầm, và các đối số đằng sau tên bản phát hành được dùng để mở rộng đường dẫn ra nhiều thư mục.

Sau khi thêm các nguồn mới, hãy tắt mỗi dòng “deb” đã tồn tại trong sources.list bằng cách ghi một dấu thăng (#) vào trước.

4.3.2. Thêm nguồn APT cho máy nhân bản cục bộ

Thay vào sử dụng máy nhân bản HTTP/FTP, người dùng cũng có thể sửa đổi tập tin /etc/apt/sources.list để sử dụng kho nhân bản trên một đĩa cục bộ (có thể gắn kết thông qua NFS).

Ví dụ, kho nhân bản gói có thể nằm dưới /var/ftp/debian/, với các thư mục chính:

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

Để sử dụng kho cục bộ này với apt, hãy thêm vào tập tin sources.list dòng này:

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

Ghi chú rằng đoạn « dists » được thêm ngầm, và các đối số đằng sau tên bản phát hành được dùng để mở rộng đường dẫn ra nhiều thư mục.

Sau khi thêm các nguồn mới, hãy tắt mỗi dòng “deb” đã tồn tại trong sources.list bằng cách ghi một dấu thăng (#) vào trước.

4.3.3. Thêm nguồn APT từ đĩa CD/DVD

Nếu người dùng chỉ muốn sử dụng các đĩa CD, hãy ghi chú tắt (đặt # vào trước) những dòng “deb” đã tồn tại trong tập tin /etc/apt/sources.list.

Kiểm tra tập tin /etc/fstab chứa một dòng hiệu lực gắn kết ổ đĩa CD ở điểm lắp /cdrom (điểm lắp /cdrom chính xác cần thiết cho apt-cdrom). Ví dụ, nếu /dev/hdc là ổ đĩa CD, /etc/fstab nên chứa một dòng như thế:

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

Ghi chú rằng không cho phép khoảng cách nằm giữa các từ defaults,noauto,ro trong trường thứ tư.

Để thẩm tra chức năng, nạp một đĩa CD và thử chạy:

# mount /cdrom    # câu lệnh này gắn kết đĩa CD tới điểm lắp
# ls -alF /cdrom  # câu lệnh này nên hiển thị thư mục gốc của đĩa CD
# umount /cdrom   # câu lệnh này sẽ tháo gắn kết đĩa CD

Sau đó thì chạy:

# apt-cdrom add

cho mỗi đĩa CD nhị phân Debian, để thêm dữ liệu về mỗi đĩa CD vào co sở dữ liệu của APT.

4.4. Nâng cấp gói

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.

Đừng quên gắn kết tất cả các phân vùng cần thiết (đặc biệt phiên bản gốc và /usr) với quyền đọc-ghi, dùng một câu lệnh như :

# mount -o remount,rw /điểm_lắp

Sau đó thì người dùng nên kiểm tra những mục nhập nguồn APT (trong /etc/apt/sources.list) tham chiếu đến hoặc “squeeze” hoặc “stable”. Không nên có nguồn nào vẫn còn chỉ tới lenny.

[Ghi chú]Ghi chú

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

4.4.1. Thu phiên chạy

Rất khuyên người dùng sử dụng chương trình /usr/bin/script để thu một bản sao của phiên chạy nâng cấp. Như thế, nếu một vấn đề xảy ra, có một bản sao mọi hành vi, và nếu cần, người dùng có thể cung cấp thông tin chính xác trong một báo cáo lỗi hay báo cáo nâng cấp. Để bắt đầu thu, hãy gõ câu lệnh:

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

hay tương tự. Đừng để bản sao vào một thư mục tạm thời như /tmp hay /var/tmp (các tập tin trong hai thư mục này có thể bị xoá trong khi nâng cấp hoặc khi nào khởi động lại).

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.

Sau khi nâng cấp xong, người dùng có thể dừng chạy script bằng cách gõ lệnh thoát exit vào dấu nhắc.

Có đặt cờ -t trong câu lệnh script nói trên thì người dùng cũng có thể sử dụng chương trìnhscriptreplay để phát lại toàn bộ phiên chạy.

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

4.4.2. Cập nhật danh sách gói

Trước tiên nên lấy danh sách các gói sẵn sàng cho bản phát hành mới. Việc này được làm bằng cách chạy câu lệnh cập nhật:

# apt-get update

4.4.3. Đảm bảo có đủ sức chứa để nâng cấp

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 Phần 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.
[Ghi chú]Ghi chú

Việc chạy câu lệnh này ở đầu của quá trình nâng cấp cũng có thể xuất một lỗi, vì lý do diễn tả trong các phần kế tiếp. Trong trường hợp đó, người dùng cần phải đợi đến khi hoàn tất quá trình nâng cấp hệ thống tối thiểu (xem Phần 4.4.4, “Nâng cấp hệ thống tối thiểu”) và hoàn tất nâng cấp hạt nhân trước khi chạy lại câu lệnh này để ước lượng sức chứa còn trống trên đĩa.

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.

  • Gỡ bỏ các gọi bị quên. Nếu người dùng đã cài đặt gói popularity-contest, cũng có thể sử dụng popcon-largest-unused để liệt kê những gói không dùng mà chiếm sức chứa nhiều nhất. Cũng có thể sử dụng deborphan hay debfoster để tìm các gói quá cũ (xem Phần 4.10, “Gói quá cũ” ). Hoặc người dùng có thể khởi chạy aptitude trong “chế độ trực quan” và tìm các gói quá cũ dưới tiêu đề “Gói cũ và tạo cục bộ”.

  • Gỡ bỏ các gói chiếm quá nhiều sức chứa mà hiện thời không phải cần thiết (lúc nào cũng có thể phục hồi sau khi nâng cấp). Người dùng có thể liệt kê những gói chiếm nhiều sức chứa nhất trên đĩa, dùng dpigs (sẵn sàng trong gói debian-goodies) hay wajig (chạy câu lệnh 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.

  • Gỡ bỏ khỏi hệ thống các bản dịch và tập tin địa hoá mà không cần thiết. Người dùng có thể cài đặt gói localepurge và cấu hình nó để giữ trong hệ thống chỉ một số miền địa phương đã chọn (v.d. tiếng Việt, tiếng Anh và tiếng Nga). Thủ tục này sẽ giảm sức chứa trên đĩa được chiếm ở /usr/share/locale.

  • Tạm thời di chuyển sang một hệ thống khác, hoặc gỡ bỏ hẳn, các bản ghi hệ thống nằm dưới /var/log/.

  • Dùng một thư mục /var/cache/apt/archives tạm thời: có thể đặt một thư mục nhớ tạm mà tạm thời, từ một hệ thống khác (vật chứa USB, đĩa cứng tạm thời, hệ thống đang được dùng v.v.).

    [Ghi chú]Ghi chú

    Không nên dùng một sự gắn kết NFS vì kết nối qua mạng có thể bị gián đoạn trong quá trình nâng cấp.

    Ví dụ, nếu có một ổ đĩa USB được gắn kết đến /media/usbkey:

    1. gỡ bỏ các gói đã tải về trước đây để cài đặt:

      # apt-get clean

    2. sao chép thư mục /var/cache/apt/archives sang vật chứa USB:

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

    3. gắn kết thư mục nhớ tạm vẫn tạm thời đến thư mục hiện thời:

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

    4. sau khi nâng cấp thì phục hồi thư mục /var/cache/apt/archives gốc:

      # umount /media/usbkey/archives

    5. gỡ bỏ /media/usbkey/archives còn lại.

    Người dùng có thể tạo thư mục nhớ tạm vẫn tạm thời trên hệ thống tập tin nào được gắn kết trên hệ thống.

  • Do a minimal upgrade of the system (see Phần 4.4.4, “Nâng cấp hệ thống tối thiểu”) 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.

Ghi chú rằng để gỡ bỏ gói một cách an toàn, khuyên người dùng chuyển đổi tập tinsources.list về lenny như diễn tả trong Phần A.2, “Kiểm tra danh sách nguồn”.

4.4.4. Nâng cấp hệ thống tối thiểu

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 Phần 4.4.6, “Upgrading the system”.

To do this first, run:

# apt-get upgrade

Kết quả là nâng cấp những gói có thể nâng cấp được mà không cần gỡ bỏ hay cài đặt gói khác nào.

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.

Để tiếp tục quá trình nâng cấp hát nhân này, hãy chạy câu lệnh:

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

Xem Phần 4.6.1, “Cài đặt siêu gói hạt nhân” để phân biệt mùi vị gói hạt nhân nào cần cài đặt.

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
[Ghi chú]Ghi chú

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.

Câu lệnh này sẽ nâng cấp hoàn toàn hệ thống, tức là cài đặt phiên bản mới nhất của mọi gói sẵn sàng, và giải quyết mọi quan hệ phụ thuộc có thể biến đổi trong bản phát hành khác nhau. Nếu cần thiết, nó sẽ cài đặt một số gói mới (thường là phiên bản thư viện mới, hay gói bị thay tên), và gỡ bỏ gói quá cũ nào bị xung đột.

Khi nâng cấp từ một bộ đĩa CD/DVD, người dùng sẽ được nhắc nạp một đĩa nào đó ở vài điểm thời trong quá trình nâng cấp. Có lẽ cần phải nạp nhiều lần cùng một đĩa, do các gói liên quan đến nhau mà được chia ra các đĩa khác nhau.

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. Vấn đề có thể gặp trong khi nâng cấp

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 Phần 4.10, “Gói quá cũ”.

4.5.3. Errors running aptitude or apt-get

Nếu một thao tác dùng aptitude, apt-get hay dpkg không thành công và xuất lỗi

E: Hết chỗ tạo sơ đồ bộ nhớ động (Dynamic MMap)

thì không đủ sức chứa nhớ tạm mặc định. Quản trị có thể giải quyết vấn đề này bằng cách gỡ bỏ hay tắt ghi chú các dòng không cần thiết trong tập tin /etc/apt/sources.list, hoặc tăng kích cỡ vùng nhớ tạm (đặt APT::Cache-Limit trong tập tin cấu hình /etc/apt/apt.conf. Câu lệnh theo đây sẽ đặt một giá trị nên đủ để nâng cấp:

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

Câu lệnh này giả sử chưa đặt biến này trong tập tin đó.

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 tên_gói

để loại trừ một số gói phạm lỗi, hoặc

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

Trong trường hợp rất khó, bạn có thể cần phải ép buộc cài đặt lại, dùng một câu lệnh như

# dpkg --install /đường/dẫn/tới/tên_gói.deb

4.5.5. File conflicts

Trường hợp tập tin bị xung đột không nên xảy ra khi nâng cấp từ một hệ thống lenny “thuần”, nhưng vẫn còn có thể xảy ra nếu hệ thống chứa bản chuyển ngược không chính thức. Sự xung đột giữa các tập tin sẽ gây ra một lỗi như :

Đang giải nén <tên_gói1> (từ <tập_tin_gói1>) ...
dpkg: gặp lỗi khi xử lý <tên_gói1> (--install):
 đang thử ghi đè lên `<tên_tập_tin>',
 mà cũng nằm trong gói <tên_gói2>
dpkg-deb: tiến trình con dán bị tín hiệu giết (Ống dẫn bị vỡ)
 Gập lỗi khi xử lý:
 <tên_gói1>

Quản trị cũng có thể thử giải quyết một trường hợp các tập tin bị xung đột bằng cách ép buộc gỡ bỏ gói có tên trên dòng cuối cùng của thông điệp lỗi:

# dpkg -r --force-depends tên_gói

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.

Chưa chắc nên làm gì thì viết tên của gói hay tập tin đó, và tháo gỡ trường hợp vào một lúc sau. Cũng có thể tìm kiếm qua tập tin typescript để xem lại thông tin đã cuộn qua trên màn hình trong khi nâng cấp.

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. Nâng cấp hạt nhân và các gói liên quan

Phần này giải thích cách nâng cấp hạt nhân, và diễn tả một số vấn đề liên quan đến quá trình nâng cấp này. Quản trị có dịp cài đặt một của những gói linux-image-* được Debian cung cấp, hoặc biên dịch một hạt nhân riêng từ mã nguồn.

Ghi chú rằng rất nhiều thông tin trong phần này dựa vào giả sử rằng quản trị sẽ sử dụng một của những hạt nhân Debian kiểu mô-đun, cùng với initramfs-toolsudev. Nếu quản trị chọn sử dụng một hạt nhân riêng mà không cần thiết một initrd, hoặc sử dụng một bộ tạo ra initrd khác, một số thông tin ở đây có thể không còn thích hợp lại.

4.6.1. Cài đặt siêu gói hạt nhân

Khi chạy quá trình nâng cấp bản phát hành (dist-upgrade) từ lenny lên squeeze, rất khuyên quản trị cài đặt một siêu gói (metapackage) linux-image-2.6-* mới. Gói này cũng có thể được tự động cài đặt bởi tiến trình dist-upgrade. Quản trị có thể kiểm tra nó đã được cài đặt bằng cách chạy câu lệnh:

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

Không có kết xuất gì thì quản trị cần phải tự cài đặt một gói linux-image-2.6-*. Để thấy danh sách các gói linux-image-2.6-* sẵn sàng, chạy câu lệnh:

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

Nếu có thể, tốt hơn khi nâng cấp gói hạt nhân một cách riêng với quá trình dist-upgrade chính, để tránh bị đứng với một hệ thống tạm thời không khởi động được. Ghi chú rằng thao tác này chỉ nên được làm đằng sau quá trình nâng cấp tối thiểu diễn tả trong Phần 4.4.4, “Nâng cấp hệ thống tối thiểu”.

4.6.2. Số thứ tự thiết bị khác

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 Phần 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. Vấn đề đặt thời gian khởi động

Nếu khởi động hệ thống dùng một initrd được tạo dùng initramfs-tools, trong một số trường hợp các tập tin thiết bị được udev tạo quá trễ để văn lệnh khởi động xử lý.

Trường hợp này thường ngụ ý khi không khởi động được vì không thể gắn kết hệ thống tập tin gốc, và màn hình hiển thị một trình bao gỡ lỗi. Tuy nhiên, nếu quản trị kiểm tra về sau, tất cả các thiết bị cần thiết có phải nằm trong /dev. Trường hợp này đã xảy ra khi hệ thống tập tin gốc nằm trên một đĩa USB hay một mảng RAID, đặc biệt khi dùng LILO.

Có thể chỉnh lại vấn đề này bằng cách sử dụng tham số khởi động rootdelay=9 (khoảng đợi khởi động: 9 giây). Điều chỉnh giá trị này để thích hợp với trường hợp riêng.

4.7. Tiến trình khởi động hệ thống bị treo ở Đang đợi hệ thống tập tin gốc

Thủ tục để phục hồi từ tập tin /dev/hda đã trở thành /dev/sda

Một số người dùng đã thông báo rằng quá trình nâng cấp có thể gây ra hạt nhân không tìm được phân vùng gốc của hệ thống sau khi khởi động lại hệ thống.

Trong trường hợp như vậy, tiến trình khởi động hệ thống sẽ treo ở thông điệp theo đây:

Đang đợi hệ thống tập tin gốc...

và sau vài giây nữa, một dấu nhắc hộp bận thô sẽ xuất hiện.

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.

Người dùng đã gặp vấn đề này nên nhảy tới Phần 4.7.2, “Cách giải quyết vấn đề sau khi nâng cấp”. Để tránh vấn đề này trước khi nâng cấp, đọc nữa nhé.

4.7.1. Cách tránh vấn đề này trong khi nâng cấp

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.

Hai phương pháp này có lợi ích và bất lợi. Phương pháp đặt nhãn vẫn dễ đọc hơn, nhưng cũng có thể gặp vấn đề nếu một hệ thống tập tin khác cùng máy có nhãn đó. Phương pháp UUID ít đẹp hơn, nhưng rất ít có thể tạo hai UUID xung đột.

Trong các mẫu thí dụ dưới đây, giả sử hệ thống tập tin gốc nằm trên /dev/hda6. Cũng giả sử hệ thống có bản cài đặt udev và hệ thống tập tin kiểu ext2 hay ext3.

Để thực hiện phương pháp đặt nhãn:

  1. Đặt nhãn hệ thống tập tin (tên có số tối đa 15 ký tự) bằng cách chạy câu lệnh: e2label /dev/hda6 rootfilesys

  2. Chỉnh sửa tập tin /boot/grub/menu.lst và sửa đổi dòng:

    # kopt=root=/dev/hda6 ro

    thành

    # kopt=root=LABEL=rootfilesys ro

    [Ghi chú]Ghi chú

    Không nên gỡ bỏ dấu # ở đầu dòng: nó cần còn lại.

  3. Cập nhật những dòng hạt nhân (kernel) trong tập tin lines in menu.lst bằng cách chạy câu lệnh update-grub.

  4. Chỉnh sửa tập tin /etc/fstab và sửa đổi dòng mà gắn kết phân vùng /, v.d.

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

    thành

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

    Thay đổi đáng kể là cột bên trái: không nên sửa đổi cột khác nào trên dòng này.

Để thực hiện phương pháp 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"

    UUID là tên của liên kết tượng trưng chỉ tới /dev/hda6, tức là: d0dfcc8a-417a-41e3-ad2e-9736317f2d8a.

    [Ghi chú]Ghi chú

    UUID của mỗi hệ thống tập tin là một chuỗi riêng biệt.

  2. Chỉnh sửa tập tin /boot/grub/menu.lst và sửa đổi dòng:

    # kopt=root=/dev/hda6 ro

    to use UUID instead:

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

    [Ghi chú]Ghi chú

    Không nên gỡ bỏ dấu # ở đầu dòng: nó cần còn lại.

  3. Cập nhật những dòng hạt nhân (kernel) trong tập tin lines in menu.lst bằng cách chạy câu lệnh update-grub.

  4. Chỉnh sửa tập tin /etc/fstab và sửa đổi dòng mà gắn kết phân vùng /, v.d.

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

    thành

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

    Thay đổi đáng kể là cột bên trái: không nên sửa đổi cột khác nào trên dòng này.

4.7.2. Cách giải quyết vấn đề sau khi nâng cấp

4.7.2.1. Lời giải 1

Phương pháp này thích hợp khi Grub hiển thị giao diện trình đơn để chọn mục nhập từ đó người dùng muốn khởi động. Không có trình đơn xuất hiện thì hãy thử bấm phím Esc trước khi hạt nhân khởi động, để ép buộc trình đơn xuất hiện. Vẫn còn không thành công thì thử Phần 4.7.2.2, “Lời giải 2” hay Phần 4.7.2.3, “Lời giải 3”.

  1. Trong trình đơn Grub, hãy tô sáng mục nhập từ đó cần khởi động. Bấm phím e để chỉnh sửa các tùy chọn liên quan đến mục nhập này. Kết quả nên tương tự với:

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

  2. Tô sáng dòng

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

    bấm phím e và thay thế hdX bằng sdX (X đại diện chữ a, b, c hay d phụ thuộc vào hệ thống. Trong mẫu thí dụ này, dòng này trở thành:

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

    Sau đó, bấm phím Enter để lưu lại thay đổi. Nếu dòng khác nào bao gồm hdX, cũng nên sửa đổi nó. Không nên sửa đổi mục nhập tương tự với root (hd0,0). Một khi sửa đổi xong và lưu lại, bấm phím b: hệ thống nên khởi động như bình thường.

  3. Một khi khởi động được, người dùng cần phải sửa chữa bền bỉ vấn đề đó. Nhảy tới Phần 4.7.1, “Cách tránh vấn đề này trong khi nâng cấp” và áp dụng một của hai thủ tục đề xuất.

4.7.2.2. Lời giải 2

Khởi động từ vật chứa cài đặt Debian GNU/Linux (đĩa CD/DVD) và khi được nhắc, chọn mục rescue (cứu) để khởi chạy chế độ cứu. Chọn ngôn ngữ, địa điểm và bố trí bàn phím, sau đó cho phép nó cấu hình mạng (bất chấp thành không hay không). Sau một thời gian, nó nên nhắc người dùng chọn phân vùng cần sử dụng làm hệ thống tập tin gốc. Các lựa chọn đề xuất sẽ hình như :

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

Nếu người dùng biết phân vùng nào là hệ thống tập tin gốc, chọn phân vùng thích hợp. Không thì chỉ thử phân vùng thứ nhất. Nếu phần mềm than phiền về một phân vùng hệ thống tập tin không hợp lệ, chỉ thử phân vùng kế tiếp, v.v. Thử lần lượt phân vùng nọ sau phân vùng kia không nên làm hại phân vùng, và nếu chỉ có một hệ điều hành được cài đặt trên đĩa thì dễ tìm phân vùng hệ thống tập tin đúng. Nếu có nhiều hệ điều hành được cài đặt vào đĩa, tốt hơn khi người dùng biết phân vùng nào là đúng.

Một khi chọn phân vùng, người dùng sẽ thấy một số tùy chọn khác nhau. Bật tùy chọn sẽ thực hiện một trình bao trong phân vùng đã chọn. Nếu phần mềm than phiền rằng nó không thể làm như thế, thử tùy chọn này trong một phiên bản khác.

Sau đó thì quản trị nên có quyền truy cập đến trình bao dưới người dùng root (người chủ) trên hệ thống tập tin gốc được gắn kết đến /target. Quản trị cần quyền truy cập đến nội dung của các thư mục /boot, /sbin/usr trên đĩa cứng, mà giờ nên sẵn sàng dưới /target/boot, /target/sbin/target/usr. Nếu thư mục như vậy cần được gắn kết từ phiên bản khác, hãy làm như thế (xem /etc/fstab để tìm biết phân vùng nào nên gắn kết).

Nhảy tới Phần 4.7.1, “Cách tránh vấn đề này trong khi nâng cấp” và áp dụng một của hai thủ tục đề xuất để sửa bền bỉ vấn đề này. Sau đó, gõ lệnh exit để thoát khỏi trình bao cứu, và chọn mục reboot để khởi động hệ thống như bình thường (đừng quên gỡ bỏ vật chứa có khả năng khởi động).

4.7.2.3. Lời giải 3

  1. Khởi động từ bản phát hành CD-Động (LiveCD), v.d. Debian Động, Knoppix hay Ubuntu Động.

  2. Gắn kết phiên bản chứa thư mục /boot. Không biết thư mục nào thì sử dụng kết xuất của lệnh dmesg để tìm biết nếu đĩa được biết như là hda, hdb, hdc,hdd hay sda, sdb, sdc, sdd. Một khi biết đĩa nào cần thao tác, v.d. sdb, chạy câu lệnh theo đây để thấy bảng phân vùng của đĩa và tìm phân vùng đúng: fdisk -l /dev/sdb

  3. Giả sử đã gắn kết phân vùng đúng dưới /mnt, và phân vùng này chứa thư mục /boot và nội dung của nó, hãy chỉnh sửa tập tin /mnt/boot/grub/menu.lst.

    Tìm phần tương tự với:

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

    và thay thế mỗi chuỗi hda, hdb, hdc, hdd bằngsda, sdb, sdc, sdd như thích hợp. Không nên sửa đổi dòng tương tự với:

    root            (hd0,0)

  4. Khởi động lại hệ thống, gỡ bỏ đĩa CD-Động, và hệ thống nên khởi động đúng.

  5. Một khi khởi động được, áp dụng một của hai thủ tục đề xuất dưới Phần 4.7.1, “Cách tránh vấn đề này trong khi nâng cấp” để sửa chữa bền bỉ vấn đề này.

4.8. Chuẩn bị cho bản phát hành kế tiếp

Sau khi nâng cấp, có vài việc có thể làm để chuẩn bị cho bản phát hành kế tiếp.

  • Gỡ bỏ các gói quá cũ và không dùng như diễn tả trong Phần 4.10, “Gói quá cũ”. Cũng nên xem lại những tập tin cấu hình được chúng dùng và có dịp tẩy mỗi gói để cũng gỡ bỏ các tập tin cấu hình (và dữ liệu liên quan khác).

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 Phần 5.5, “Thay đổi và hỗ trợ môi trường GNOME for more information.

4.10. Gói quá cũ

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], và không phải thông thường cung cấp hỗ trợ khác nào đã ra đời. Khuyên quản trị thay thế mỗi gói như vậy bằng một gói xen kẽ sẵn sàng (nếu có).

Có rất nhiều lý do gói bị gỡ bỏ khỏi bản phát hành: gói đó không còn được duy trì lại bởi dự án gốc; không còn có lại một Nhà phát triển Debian quan tâm đến duy trì gói đó; chức năng được gói đó cung cấp đã bị thay thế bằng một gói phần mềm/phiên bản mới; hoặc gói đó không còn thích hợp lại với squeeze do lỗi nội bộ. Trong trường hợp cuối cùng, gói đó có thể vẫn còn nằm trong bản phân phối “bất định” (unstable).

Dễ phát hiện những gói nào “quá cũ” trong một hệ thống đã cập nhật, vì giao diện quản lý gói sẽ đánh dấu chúng một cách tương ứng. Trong aptitude, danh sách các gói như vậy được hiển thị dưới tiêu đề “Gói cũ và tạo cục bộ”. dselect cung cấp một danh sách tương tự mà có thể chứa nội dung khác.

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

Cũng có công cụ bổ sung để tìm các gói quá cũ, v.d. deborphan, debfoster hay cruft. deborphan rất khuyến khích, dù trong chế độ mặc định nó chỉ thông báo các thư viện quá cũ : những gói trong phần thư viện “libs” hay phần thư viện cũ “oldlibs” mà không dùng bởi gói khác nhau. Không nên mù quáng gỡ bỏ những gói được tìm bởi công cụ như vậy, đặc biệt nếu phần mềm sử dụng tùy chọn khác mặc định cũng năng nổ mà có khuynh hướng xuất kết quả dương giả. Rất khuyên người dùng tự xem lại những gói đề xuất gỡ bỏ (tức là nội dung, kích cỡ và mô tả về mỗi gói) trước khi thật sự gỡ bỏ chúng.

Hệ thống Theo dõi Lỗi Debian thường cung cấp thông tin bổ sung về lý do gỡ bỏ một gói nào đó. Khuyên người dùng xem lại cả hai những báo cáo lỗi được lưu trữ về gói chính nó, và những báo cáo lỗi được lưu trữ về gói-giả ftp.debian.org.

The list of obsolete packages includes:

  • 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. Gói giả

Một số gọi nào đó từ lenny đã bị chia ra vài gọi khác nhau trong squeeze, thường để cải tiến khả năng bảo tồn hệ thống. Để làm dễ dàng đường dẫn nâng cấp trong các trường hợp như vậy, squeeze thường cung cấp các gói “giả”: gói trống cùng tên với gói cũ trong lenny với quan hệ phụ thuộc mà gây ra cài đặt gói mới. Sau khi nâng cấp, các gói “giả” được thấy là quá cũ thì có thể được gỡ bỏ an toàn.

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] Cũng có thể tắt tính năng này bằng cách thêm tham số panic=0 vào các tham số khởi động.

[7] Hệ thống quản lý gói Debian bình thường không cho phép Gói 1 gỡ bỏ hoặc thay thế một tập tin thuộc về Gói 2, nếu nó chưa xác định để thay thế Gói 2.

[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] Hoặc miễn là không có bản phát hành nữa trong khoảng thời gian đó. Bình thường chỉ hai bản phát hành ổn định được hỗ trợ nhau vào một lúc nào đó.