Làm cách nào tôi có thể chuyển cài đặt 32 bit sang cài đặt 64 bit?


54

Tôi đã có bản cài đặt Ubuntu 32 bit chạy trên phần cứng 64 bit. Bây giờ đa vòm đã được triển khai , tôi muốn chuyển sang 64-bit mà không phải cài đặt lại HĐH.

Đây là một trong những câu chuyện của người dùng được đề cập bởi thông số kỹ thuật :

Shawn đã cài đặt hệ thống của mình bằng phiên bản Ubuntu 32 bit, nhưng phần cứng của anh ta là 64 bit và anh ta muốn chuyển đổi. Anh ta tự cài đặt các phiên bản amd64 của dpkg và apt, thay thế các phiên bản i386 và thay đổi kiến ​​trúc nào được sử dụng làm mặc định; sau đó anh ta cài đặt gói tối thiểu amd64; sau đó anh ta cài đặt gói máy tính để bàn amd64. Theo thời gian, các gói i386 còn lại được thay thế tự động khi nâng cấp.

Tuy nhiên, khi cố gắng làm theo các hướng dẫn trong đó, tôi không thể tìm thấy bất kỳ phiên bản 64 bit nào của dpkg hoặc apt.

Có phải câu chuyện người dùng này đã được triển khai theo một cách khác trong thông số kỹ thuật cuối cùng, hay tôi cần phải làm gì đó khác đi?

Nói tóm lại, làm cách nào tôi có thể chuyển cài đặt 32 bit của mình sang 64 bit?


3
Tôi nhận ra câu hỏi đã được hỏi trên Askubfox.com/questions/5018/ , nhưng đó là trước khi đa vòm được triển khai, vì vậy câu trả lời sẽ khác.
David Planella

Câu trả lời:


36

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à amd64phiên bản thay vì i386phiê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 i386kiế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 amd64hệ 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ề .debcác file cho dpkgapt. Bạn có thể tìm thấy chúng tại dpkgUbuntuapttrong 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 .debtậ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àycái nàycái nàycái nàyđ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 debsvà nằm trong Downloadsthư 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 aptdpkgđể 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.)

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

  2. Bước 1 cho bạn tên thiết bị của /phân vùng. Nếu bạn có một /bootphâ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.

  3. 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".

  4. Đ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ó.

  5. Mở cửa sổ Terminal và chạy sudo mount /dev/sda2 /mnt(thay thế /dev/sda2bằng tên thiết bị bạn có trong bước 1, nếu khác).

  6. Nếu hệ thống đã cài đặt của bạn có /bootphân vùng riêng , hãy chạy sudo mount /dev/sda1 /mnt/boot(thay thế /dev/sda1bằng tên thiết bị bạn có ở bước 2, nếu khác).

  7. 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  
    
  8. 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
    
  9. 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  
    
  10. 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  
    
  11. Nếu bạn chưa cài đặt các .debtệp cho phiên bản 64 bit dpkgapt, 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 dpkgtrong khi khởi động vào hệ thống đã cài đặt sẽ dpkgở trạng thái không sử dụng được.)

  12. Với các phiên bản 64 bit dpkgaptđượ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.

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

  14. 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  
    
  15. Nếu bạn chạy sudo cp /mnt/etc/resolv.conf /mnt/etc/resolv.conf.oldvà 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.

  16. Nếu bạn chạy sudo cp /mnt/etc/hosts /mnt/etc/hosts.oldvà nó không thất bại, thì bây giờ hãy chạy sudo cp /mnt/etc/hosts.old /mnt/etc/hosts.

  17. Nếu hệ thống đã cài đặt của bạn có một /bootphân vùng riêng , hãy ngắt kết nối:sudo umount /mnt/boot

  18. Ngắt kết nối /phân vùng hệ thống đã cài đặt của bạn :sudo umount /mnt

  19. Để 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.

  20. Xem hệ thống có thể sử dụng được không và chạy kernel 64 bit ( uname -mnê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_libsvà / 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 dpkgvà / 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 dpkgaptcác tệp thực thi sẽ không chạy trên hệ thống chạy kernel 32 bit.)


2
Những nhị phân đó sẽ chạy dưới kernel 32 bit, Eliah?
Caesium

@Caesium Gọi tốt. Dĩ nhiên là không. Tôi sẽ chỉnh sửa bài đăng của mình để cho biết cách chạy kernel 64 bit ... ngoại trừ việc tôi không biết cách cài đặt gói kernel 64 bit trên hệ thống Ubuntu 32 bit (chạy trên phần cứng 64 bit, tất nhiên) khi aptdpkgvẫn còn 32 bit và (có lẽ) sẽ từ chối cài đặt gói kernel 64 bit. (Xây dựng kernel từ nguồn và sử dụng biên dịch chéo, sẽ hoạt động, nhưng điều này rất phức tạp và tôi không muốn giới thiệu nó. Tôi chắc chắn có cách tốt hơn, dễ dàng hơn. Nếu bạn biết điều đó, xin vui lòng để chỉnh sửa bài đăng của tôi hoặc của bạn hoặc nhận xét về nó.)
Eliah Kagan

@Caesium Trên thực tế, tôi nghĩ rằng tôi biết cách cài đặt kernel 64 bit. Tôi sẽ chỉnh sửa bài viết của tôi trong thời gian ngắn để phản ánh điều này. Khi tôi làm như vậy, nếu bạn cảm thấy kỹ thuật được đề xuất của tôi sẽ hoạt động, vui lòng sao chép và / hoặc diễn giải nó vào câu trả lời của bạn ... hoặc, thay vào đó, miễn là cả thông tin trong câu trả lời của bạn không thuộc về tôi và thông tin trong câu trả lời của tôi không phải là của bạn được bảo tồn, bạn có thể kết hợp câu trả lời của chúng tôi thành một câu trả lời duy nhất. (Đó có thể là câu trả lời của bạn - điều đó tốt với tôi. Bạn đã đăng một chút trước khi tôi làm. Sau đó tôi sẽ xóa câu trả lời của tôi.)
Eliah Kagan

@Caesium Chỉnh sửa hoàn thành; Tôi mong chờ lời nhận xét của bạn.
Eliah Kagan

Wow, công việc tuyệt vời :) Tại thời điểm này, bạn đã nỗ lực hơn rất nhiều so với tôi vì vậy tôi không mơ ước được sao chép vào câu trả lời của tôi, bạn nên duy trì tín dụng. Tuy nhiên, nó không còn phù hợp với mục đích ban đầu là sử dụng công nghệ multiarch nhưng tôi sẽ rất muốn biết liệu nó có hoạt động hay không :) Đoán chúng ta sẽ phải chờ poster gốc :)
Caesium

25

Như đã nói ở trên, tôi đã làm:

echo foreign-architecture amd64 | sudo tee /etc/dpkg/dpkg.cfg.d/multiarch
sudo apt-get update
sudo apt-get install linux-image:amd64
sudo apt-get install gcc-multilib
sudo update-grub

Nó đã làm việc. Tôi có thể chạy vùng người dùng 32 bit của mình với kernel 64 bit, trong Ubuntu 12.04.


5
Câu trả lời này đá. Tôi có thể xác nhận nó vẫn hoạt động với saucy. Một điểm khác biệt là quy trình thêm kiến ​​trúc đã thay đổi: sử dụng sudo dpkg --add-architecture amd64thay thế. Nó sẽ mắng bạn nếu bạn làm theo cách khác. Tôi cần phải làm điều này để tôi có thể chroot cài đặt 64 bit từ một 32 bit (trước đây) và nó hoạt động chính xác như mong đợi mà không gặp trở ngại nào.
Wug

Tôi đã thử điều này trên Mint, nhưng tôi gặp một số vấn đề, bạn có làm gì khác không? Chi tiết: superuser.com/q/927830/150718
dr Hannibal Lecter

Ngoài thay đổi của Wug, bạn cũng cần sử dụng linux-image-generic:amd64trên Ubuntu 16.04. Nó hoạt động tốt, thậm chí không có hai lệnh cuối.
qznc 17/03/2017

6

Mặc dù câu hỏi tương tự như Có thể "nâng cấp" từ bản cài đặt 32 bit lên 64 bit không? (Nếu bạn chưa đọc nó trước khi tôi khuyến khích bạn dùng thử. Câu trả lời được cung cấp là tốt.) Tôi cũng khuyên bạn nên đọc các liên kết sau:

Để có hiệu suất tốt hơn tôi nên cài đặt 32 bit hay 64 bit?

Làm cách nào tôi có thể chuyển cài đặt 32 bit sang cài đặt 64 bit?

Sự khác biệt giữa 32 bit và 64 bit, và tôi nên chọn cái nào?

Có thể: Có

Có dễ không: KHÔNG!

Nếu vấn đề của bạn là về bộ nhớ, thì bạn nên biết rằng Ubuntu 32 Bit có thể đọc hơn 4GB RAM (Tối đa 64 GB). Vì vậy, sử dụng phiên bản Ubuntu 32 Bit mới nhất với máy tính có kiến ​​trúc 32 Bit hoặc 64 Bit và đặt thêm RAM sẽ không thành vấn đề. Nó chỉ đơn giản là sẽ đọc thêm RAM và làm việc.


5

Những câu trả lời có phần lỗi thời. Phân loại chéo hiện được ghi lại cho Debian trên wiki Debian , nhưng nó vẫn không được khuyến khích.

Việc cài đặt kernel từ một kiến ​​trúc khác giờ dễ dàng như được mô tả ở đó, nhưng 'apt' mới sẽ không nhận ra các gói từ kiến ​​trúc trước đó, và vì vậy tất cả các giao diện của nó có thể báo cáo rất nhiều gói bị hỏng. Điều này đòi hỏi phải thay đổi tất cả các phụ thuộc sang kiến ​​trúc khác hoặc hoàn nguyên apt và dpkg thành 32 bit.

Vì vậy, cách tiếp cận tốt nhất có thể là trước tiên lưu kết quả dpkg --get-selections, dải: i386 từ đó và tải xuống gói amd64 cho mỗi phụ thuộc vào bộ đệm:

apt-get --download-only install perl:amd64 python3:amd64 python3-gi:amd64 xorg:amd64...

Tốt nhất là nó có thể chậm và tốn thời gian để giải quyết các phụ thuộc.


5

Các hướng dẫn này làm cho hệ thống của bạn khởi động với kernel 64 bit nhưng không thay đổi hầu hết các chương trình người dùng.

Sau khi nâng cấp hệ thống của tôi với CPU 64 bit, tôi cũng muốn cài đặt kernel 64 bit trên Ubuntu 14.04.2 32 bit (tên mã: Trusty). Để làm điều này, tôi đã nhập các lệnh sau với tư cách người dùng root :

dpkg --add-architecture amd64   
apt-get update
apt-get install linux-generic-lts-utopic:amd64

Ghi chú:

  1. Điều này có thể loại bỏ hạt nhân 32 bit của bạn là đáng tin cậy - theo mặc định - vận chuyển với một hạt nhân được cập nhật (hạt nhân từ không tưởng), xem 14.04 Ghi chú phát hành . Trong trường hợp này, kernel hiện tại của bạn xung đột với kernel 64 bit sẽ được cài đặt và do đó sẽ bị xóa. Nếu bạn không thích ý tưởng này, bạn có thể muốn thử gói kernel 64 bit cũ hơn "linux-generic-lts-trusty: amd64".

  2. Lệnh "--add-architecure" là điều cần thiết. Không có nó, hệ thống gói không hỗ trợ các gói từ các kiến ​​trúc khác nhau, xem Multiarch-HowTo

  3. Để xem những gì apt-getsẽ làm với hệ thống của bạn, hãy chạy nó với các tùy chọn -Vscho phép "chế độ mô phỏng dài dòng". Điều này sẽ in tất cả các gói sẽ được cài đặt và gỡ bỏ.

  4. Việc bạn khởi động hệ thống bằng kernel mới tùy thuộc vào grubcấu hình. Là người dùng root , hãy chạy update-grubđể cập nhật grub và in cấu hình khởi động hiện tại. Hình ảnh đầu tiên trong danh sách sẽ được khởi động như mặc định.

  5. Để chọn một hình ảnh hạt nhân khác, tôi loại bỏ dòng GRUB_HIDDEN_TIMEOUT=0từ /etc/default/grubvà chạy như người dùng root update-grub . Khi khởi động, bây giờ bạn có thể chọn một hạt nhân khác (bạn đã có 10 giây để nhấn bất kỳ phím nào nếu không grub sẽ tiếp tục với hạt nhân mặc định).

  6. Câu trả lời với số phiếu cao nhất là từ năm 2011 và theo quan điểm của tôi là vô vọng. Multiarch cho phép bạn cài đặt các gói thư viện từ nhiều kiến ​​trúc trên cùng một máy mà không cần phải quảng cáo nhiều.


Đó là một lời khuyên đơn giản tuyệt vời gần như đã có hiệu quả với tôi vào ngày 14.10 (Không tưởng) (tuy nhiên tôi đã làm apt-get install linux-generic:amd64điều đó không phải là rất quan trọng đối với thử nghiệm)! Nếu tôi đi qua tùy chọn khởi động "giải cứu", hệ thống sẽ chạy, nhưng X không sử dụng nouveautrình điều khiển video và nội dung. Nếu tôi khởi động bình thường, khởi động bị hỏng tại một số điểm và hệ thống khởi động lại. (Nhưng ngay lần đầu tiên, tôi đã có thể khởi động thành công.) Tôi không chắc vấn đề xảy ra với trình điều khiển video trong quá trình khởi động "bình thường" hay điều gì khác.
imz - Ivan Zakharyaschev

Trình điều khiển video và X hóa ra không liên quan (theo thống kê) liên quan đến sự cố / khởi động lại của tôi với kernel amd64. Bây giờ nó chỉ là một bí ẩn - bug.launchpad.net/ubfox/+source/upstart/+orms/1495116 .
imz - Ivan Zakharyaschev

2

Có lẽ, khi tôi đối mặt với cùng một vấn đề, điều này sẽ hoạt động, đó là những gì tôi đã dự định làm:

Lấy phiên bản HĐH 64 bit, cài đặt vào phân vùng, khi sao chép hoàn chỉnh các tài liệu và nội dung khác từ bản cài đặt 32 bit, khi mọi thứ được sao chép an toàn, bạn có thể định dạng phần còn lại của ổ đĩa và sử dụng nó.


2

Vâng, dòng kiến ​​trúc nước ngoài chắc chắn là quan trọng nhất để cài đặt BẤT K gói gói chéo nào. Nhưng sau đó, làm như một số người dùng khác đã đề cập:

sudo apt-get update
sudo apt-get install linux-image:amd64
sudo apt-get install linux-modules:amd64
sudo init 6 #reboot into new kernel
sudo apt-get install apt:amd64
sudo apt-get install ubuntu-desktop:amd64

Điều đó chỉ nên làm thôi ...


bạn đã thử à? nó không thực sự hoạt động, tôi gặp vấn đề khi nó bắt đầu thay thế dpkg và perl bằng các đối tác amd64 của họ
Janus Troelsen

2

Công thức của tôi cho Ubuntu 16.04 Xenial, đã được thử nghiệm trên máy ảo Ubuntu 32 bit được cài đặt mới với hệ thống tiêu chuẩn và máy chủ SSH nhưng không có GUI:

sudo -s
dpkg --get-selections > pkg1
dpkg --add-architecture amd64
apt update
apt install linux-image-generic:amd64 thermald 

(nếu không, nó sẽ cài đặt thermald: amd64 và không khởi động lại được dưới kernel 32 bit)

reboot

sau khi khởi động lại với kernel 64 bit:

sudo -s
unset LANG
apt install apt:amd64 apt-utils:amd64

gõ 'Có, làm như tôi nói!' Khi được hỏi, nó sẽ được an toàn

mkdir /tmp/upgrade 
cd /tmp/upgrade
pkgs() { dpkg -l | awk '$4=="'$1'"{print $2}' | awk -F: '{print $1}' | sort -u
}
apt download $(comm -23 <(pkgs i386) <(pkgs amd64))
while ls *amd64*deb
do dpkg -i *amd64*deb
   dpkg -l | awk '$1=="ii" && $4=="amd64" {print $2}' | awk -F: '{print $1}' |
   while read a
   do [ -f ${a}_*amd64*deb ] && rm ${a}_*amd64*deb
   done
done

trong vòng lặp ở trên, chúng tôi xóa các tệp .deb đã được cài đặt thành công và có trạng thái 'ii' trong danh sách dpkg.

chúng ta cần lặp lại các dpkg -ilần chạy, vì nó không thành công ngay từ lần thử đầu tiên

reboot

bây giờ, với cả kernel 64 bit và không gian người dùng, các gói i386 còn lại có thể được gỡ bỏ:

dpkg --purge $(dpkg -l | awk '$4=="i386"{print $2}')

danh sách bạn đã lưu trong pkgs1tệp bạn có thể sử dụng cho bất kỳ nhu cầu nào khác của bạn.


Đó là loại phép thuật, nhưng nó đã giúp tôi thực hiện chuyển đổi 32 đến 64 bit qua SSH trên máy tính từ xa.
dùng271872

1

Câu hỏi hay. Tôi đã có một cuộc săn lùng xung quanh và ngoài câu chuyện người dùng mà bạn trích dẫn, tôi không thể tìm thấy bất kỳ chi tiết nào về cách làm điều này. Tất cả tài liệu chỉ ra rằng nó chỉ chạy các ứng dụng 32 bit trên HĐH 64 bit.

Tuy nhiên, nếu bạn sẵn sàng thử nghiệm, bạn có thể thử cách sau (xuất phát từ liên kết của tôi tại [1])

 echo foreign-architecture amd64 | sudo tee /etc/dpkg/dpkg.cfg.d/multiarch
 sudo apt-get install linux-image:amd64

Tôi nghĩ rằng bạn sẽ phải bắt đầu với kernel amd64, vì kernel 32 bit sẽ không thể chạy bất kỳ nhị phân 64 bit nào. Tuy nhiên, bản 64 bit nên chạy nhị phân 32 bit (nếu ia32-libs được cài đặt?).

Nếu bạn đã cài đặt và khởi động kernel 64 bit, bạn có thể đi từ đó để cài đặt apt: amd64, sau đó theo dõi câu chuyện của người dùng như được trích dẫn trước đó, ubfox-Minimal, ub Ubuntu-desktop, v.v.

Sau khi apt: amd64 được cài đặt, tôi nghĩ bạn có thể xóa dòng kiến ​​trúc nước ngoài vì về cơ bản bạn đã chuyển đổi tại thời điểm đó.

Tuyên bố miễn trừ trách nhiệm: Tôi không có hệ thống 32 bit để kiểm tra nên đây chỉ là phỏng đoán. Chúc may mắn!

[1] https://wiki.ubfox.com/OneiricOcelot/TechnicalOverview/Beta1#Improved_handling_of_32-bit_compabilities_on_amd64_systems


1

Nâng cấp (nâng cấp lên kiến ​​trúc khác) chưa được hỗ trợ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.