Cách tiếp cận như vậy rất phức tạp và khó có thể xảy ra trong tất cả các gói của bạn là amd64
phiên bản thay vì i386
phiên bản. Chỉ các gói thực sự nhận được nâng cấp có thể sẽ được thay đổi trong kiến trúc và có lẽ chỉ khi không có gói nào khác không được nâng cấp phụ thuộc vào i386
kiến trúc của chúng. Vì một số gói sẽ không nhận được bất kỳ bản cập nhật nào trong toàn bộ chu trình hỗ trợ phát hành Ubuntu của bạn, nên bạn có thể sẽ không bao giờ có một amd64
hệ thống hoàn chỉnh sử dụng kỹ thuật như vậy. Hơn nữa, chắc chắn không có hỗ trợ chính thức cho cách tiếp cận như vậy.
Thay vào đó, bạn nên thay thế hệ thống Ubuntu hiện tại của mình bằng bản cài đặt 64 bit mới.
Tuy nhiên, nếu bạn muốn thử kỹ thuật này, bạn sẽ phải tự tải về .deb
các file cho dpkg
và apt
. Bạn có thể tìm thấy chúng tại dpkg
Ubuntu và apt
trong các trang Ubuntu trên Launchpad - mở rộng phiên bản mới nhất trong "The Oneiric Ocelot" được đánh dấu là phát hành, bảo mật và / hoặc cập nhật (nhưng có lẽ bạn không muốn phiên bản chỉ được đánh dấu đề xuất và / hoặc backport, nếu có một). Sau đó tải về các .deb
tập tin được đánh dấu amd64
. Cụ thể, các tệp bạn muốn là: cái này chodpkg
(và những cái khác được liệt kê, nếu bạn đã cài đặt các gói đó) và cái này và cái này và cái này và cái nàyvà điều này cho apt
.
Trước khi bạn làm bất cứ điều gì với các tệp này, bạn nên đảm bảo sao lưu tất cả các tài liệu quan trọng trong hệ thống Ubuntu đã cài đặt của mình và bất kỳ tệp quan trọng nào khác (ví dụ: nhạc, sách điện tử, video), vì rất có thể việc thử kỹ thuật này sẽ gây ra hậu quả xấu và để hệ thống Ubuntu của bạn hoàn toàn không sử dụng được.
Bạn có thể cài đặt tất cả các gói này bằng cách đặt chúng vào một thư mục không chứa gì khác (giả sử thư mục được gọi debs
và nằm trong Downloads
thư mục của bạn ), rồi chạy lệnh này:
sudo dpkg -Ri ~/Downloads/debs
Tất nhiên, một khi bạn đã cài đặt chúng, chúng sẽ không thực sự chạy, vì các tệp thực thi của chúng là 64 bit và hệ thống Ubuntu 32 bit của bạn đang chạy kernel 32 bit (sẽ chỉ chạy các tệp thực thi 32 bit). Trên thực tế, họ thậm chí có thể không hoàn thành việc cài đặt, vì họ có thể có các tập lệnh sau khi cài đặt để gọi các tệp thực thi 64 bit không thể truy cập của họ.
Có nhiều cách khác nhau để cố gắng cài đặt kernel 64 bit vào hệ thống 32 bit, nhưng chúng đều cực kỳ phức tạp, vì vậy thay vào đó tôi khuyên bạn nên khởi động từ CD trực tiếp Oneiric 64 bit (bản thân nó chạy 64 bit kernel), chroot vào hệ thống Ubuntu đã cài đặt và sử dụng 64-bit được cài đặt gần đây apt
và dpkg
để cài đặt kernel 64-bit.
Dưới đây là các hướng dẫn cụ thể để làm điều đó ... nhưng xin vui lòng đừng coi điều này có nghĩa là tôi đang nói nó sẽ hoạt động. Tôi đã không cố gắng này. (Tôi đã chroot vào các hệ thống Ubuntu đã cài đặt từ CD trực tiếp và thực hiện quản lý gói và các hoạt động khác, nhưng tôi chưa thử các hoạt động kiến trúc chéo được đề xuất ở đây.)
Trong hệ thống Ubuntu đã cài đặt của bạn, hãy mở cửa sổ Terminal ( Ctrl+ Alt+ T) và chạy mount | grep ' on / '
(bằng cách dán nó vào Terminal và nhấn enter). Bạn sẽ thấy một cái gì đó như /dev/sda2 on / type ext4 (rw,errors=remount-ro,commit=0)
. Phần bạn quan tâm là tên thiết bị trước đó on
(trong ví dụ này là nó /dev/sda2
). Hãy nhớ điều đó, hoặc viết nó ra.
Bước 1 cho bạn tên thiết bị của /
phân vùng. Nếu bạn có một /boot
phân vùng riêng , thì bạn cũng cần phải biết tên thiết bị cho điều đó. Vì vậy, trong trường hợp đó, chạy mount | grep ' on /boot '
. Bạn sẽ thấy một cái gì đó như /dev/sda1 on /boot type ext2 (rw)
. Ghi nhớ hoặc viết nó xuống là tốt.
Khởi động từ đĩa CD trực tiếp Oneiric amd64 (tức là 64 bit) và chọn "Dùng thử Ubuntu" thay vì "Cài đặt Ubuntu".
Đi vào trình duyệt web và đảm bảo rằng kết nối Internet có đầy đủ chức năng. Nếu không, hãy thiết lập nó.
Mở cửa sổ Terminal và chạy sudo mount /dev/sda2 /mnt
(thay thế /dev/sda2
bằng tên thiết bị bạn có trong bước 1, nếu khác).
Nếu hệ thống đã cài đặt của bạn có /boot
phân vùng riêng , hãy chạy sudo mount /dev/sda1 /mnt/boot
(thay thế /dev/sda1
bằng tên thiết bị bạn có ở bước 2, nếu khác).
Bây giờ, hãy chạy các lệnh này để chroot vào hệ thống đã cài đặt của bạn:
sudo mount --bind /dev /mnt/dev
sudo chroot /mnt
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
Chạy ping -c 4 launchpad.net
để xem kết nối Internet có hoạt động hoàn toàn từ bên trong chroot không. Bạn đang hy vọng điều gì đó như thế này:
PING launchpad.net (91.189.89.223) 56(84) bytes of data.
64 bytes from launchpad-net.banana.canonical.com (91.189.89.223): icmp_req=1 ttl=41 time=141 ms
64 bytes from launchpad-net.banana.canonical.com (91.189.89.223): icmp_req=2 ttl=41 time=143 ms
64 bytes from launchpad-net.banana.canonical.com (91.189.89.223): icmp_req=3 ttl=41 time=142 ms
64 bytes from launchpad-net.banana.canonical.com (91.189.89.223): icmp_req=4 ttl=41 time=140 ms
--- launchpad.net ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
Thay vào đó, nếu bạn không thể truyền hoặc nhận các gói, thì bạn sẽ phải thiết lập kết nối Internet trong chroot. Để làm điều đó, hãy chạy các lệnh này (để rời khỏi chroot, sao chép các tệp cấu hình có liên quan từ hệ thống CD trực tiếp vào chroot và nhập lại chroot):
sudo cp /mnt/etc/resolv.conf /mnt/etc/resolv.conf.old
sudo cp /mnt/etc/hosts /mnt/etc/hosts.old
sudo cp /etc/resolv.conf /mnt/etc/resolv.conf
sudo cp /etc/hosts /mnt/etc/hosts
Mặc dù nhìn chung bạn nên dừng quá trình này nếu có lỗi, đừng lo lắng nếu lệnh đầu tiên và / hoặc thứ hai trong bốn lệnh đó không thành công, miễn là cách cụ thể mà nó thất bại là bằng cách nói với bạn rằng /mnt/etc/resolv.conf
(hoặc /mnt/etc/hosts
) không tồn tại .
Các chroot trở lại và thử lại:
sudo chroot /mnt
ping -c 4 launchpad.net
Chạy các lệnh này để làm cho môi trường chroot của bạn hoàn toàn sẵn sàng để sử dụng:
export HOME=/root
export LC_ALL=C
Nếu bạn chưa cài đặt các .deb
tệp cho phiên bản 64 bit dpkg
và apt
, hãy làm ngay bây giờ. Nếu bạn đã cài đặt chúng nhưng có lỗi cấu hình, hãy chạy dpkg --configure -a
để sửa chúng. (Hy vọng rằng nó sẽ hoạt động ... tốt hơn là đợi để cài đặt chúng cho đến khi bạn ở trong môi trường CD trực tiếp, trong trường hợp cài đặt 64 bit dpkg
trong khi khởi động vào hệ thống đã cài đặt sẽ dpkg
ở trạng thái không sử dụng được.)
Với các phiên bản 64 bit dpkg
và apt
được cài đặt, giả sử rằng chúng sẽ tự động cài đặt các gói 64 bit, giờ đây bạn có thể xóa tất cả các hạt nhân 32 bit của mình và cài đặt kernel 64 bit. Để loại bỏ các hạt nhân 32 bit của bạn, hãy chạy dpkg -l | grep linux-
. Danh sách này cài đặt các gói bắt đầu với linux-
. Bạn đang đặc biệt quan tâm đến các gói mà bắt đầu như linux-generic
, linux-image
, linux-server
, và / hoặc linux-headers
. Xóa các tệp này với apt-get purge ...
vị trí ...
được thay thế bằng danh sách các gói được phân tách bằng dấu cách.
Bây giờ cài đặt lại các gói bạn đã gỡ bỏ. (Trên thực tế, đối với các gói chứa số phiên bản trong tên gói, chẳng hạn linux-image-3.0.0-13-generic
, bạn chỉ cần cài đặt tên gói phiên bản mới nhất.) Thực hiện việc này bằng cách chạy apt-get install ...
nơi ...
được thay thế bằng danh sách các gói được phân tách bằng dấu cách .
Cập nhật cấu hình bộ tải khởi động, ngắt kết nối một số thiết bị và rời khỏi chroot:
update-grub
umount /proc || umount -lf /proc
umount /sys
umount /dev/pts
exit
sudo umount mnt/dev
Nếu bạn chạy sudo cp /mnt/etc/resolv.conf /mnt/etc/resolv.conf.old
và nó không thất bại, thì bây giờ hãy chạy sudo cp /mnt/etc/resolv.conf.old /mnt/etc/resolv.conf
.
Nếu bạn chạy sudo cp /mnt/etc/hosts /mnt/etc/hosts.old
và nó không thất bại, thì bây giờ hãy chạy sudo cp /mnt/etc/hosts.old /mnt/etc/hosts
.
Nếu hệ thống đã cài đặt của bạn có một /boot
phân vùng riêng , hãy ngắt kết nối:sudo umount /mnt/boot
Ngắt kết nối /
phân vùng hệ thống đã cài đặt của bạn :sudo umount /mnt
Để cửa sổ Terminal (chạy exit
), sau đó khởi động lại (hoặc tắt) hệ thống CD trực tiếp và khởi động vào hệ thống đã cài đặt.
Xem hệ thống có thể sử dụng được không và chạy kernel 64 bit ( uname -m
nên nói kiến trúc là x86_64
).
Cũng có thể có các gói bổ sung bạn cần cài đặt, chẳng hạn như ia32_libs
và / hoặc phiên bản 64 bit libc6
, để nó hoạt động. Đối với một số người trong số họ, bạn có thể được thông báo rằng bạn cần họ khi cố gắng cài đặt phiên bản 64 bit dpkg
và / hoặc apt
. Đối với những người khác, bạn có thể không được thông báo.
(Các hướng dẫn ở trên để chroot và hoạt động trong môi trường chroot có trụ sở tại một phần đáng kể đối với thủ tục liên quan nhưng khác nhau này và cũng trên một số Launchpad trả lời bài viết của tôi, đặc biệt là # 6 ở đây và # 6 đây . Và đặc biệt nhờ Cesium để chỉ ra rằng 64 bit dpkg
và apt
các tệp thực thi sẽ không chạy trên hệ thống chạy kernel 32 bit.)