วิธีการดังกล่าวมีความซับซ้อนมากและไม่น่าจะส่งผลให้แพ็คเกจทั้งหมดของคุณเป็นamd64
เวอร์ชันแทนที่จะเป็นi386
เวอร์ชั่น แพคเกจเท่านั้นที่ได้รับการอัพเกรดจริงอาจมีการเปลี่ยนแปลงในสถาปัตยกรรมและอาจเฉพาะในกรณีที่ไม่มีแพคเกจอื่น ๆ ที่ไม่ได้รับการอัพเกรดขึ้นอยู่กับความเป็นของi386
สถาปัตยกรรม เนื่องจากแพ็คเกจบางตัวจะไม่ได้รับการอัพเดตใด ๆตลอดระยะเวลาการสนับสนุนทั้งหมดของ Ubuntu ของคุณคุณอาจจะไม่เคยมีamd64
ระบบที่สมบูรณ์โดยใช้เทคนิคดังกล่าว นอกจากนี้ยังไม่มีการสนับสนุนอย่างเป็นทางการสำหรับแนวทางดังกล่าว
คุณจะได้รับคำแนะนำเป็นอย่างดีให้แทนที่ระบบ Ubuntu ปัจจุบันของคุณด้วยการติดตั้งใหม่ 64 บิต
แต่ถ้าคุณไม่ต้องการที่จะพยายามเทคนิคนี้คุณจะต้องด้วยตนเองดาวน์โหลด.deb
ไฟล์และdpkg
apt
คุณสามารถค้นหาได้ที่dpkg
ใน Ubuntuและapt
ในหน้าUbuntuบน Launchpad - ขยายเวอร์ชันล่าสุดภายใต้ "The Oneiric Ocelot" ที่ถูกทำเครื่องหมายว่าเป็นรุ่น, การรักษาความปลอดภัยและ / หรือการอัปเดต (แต่คุณอาจไม่ต้องการรุ่นที่ทำเครื่องหมายเท่านั้น เสนอและ / หรือ backport หากมีอยู่) จากนั้นดาวน์โหลดไฟล์การทำเครื่องหมาย.deb
amd64
โดยเฉพาะอย่างยิ่งไฟล์ที่คุณต้องการคือ: ไฟล์นี้สำหรับdpkg
(และไฟล์อื่น ๆ ที่อยู่ในรายการด้วยหากคุณติดตั้งแพ็คเกจเหล่านี้) และสิ่งนี้และสิ่งนี้และสิ่งนี้และสิ่งนี้และนี้apt
สำหรับ
ก่อนที่คุณจะทำอะไรกับไฟล์เหล่านี้คุณควรทำการสำรองข้อมูลเอกสารสำคัญทั้งหมดในระบบ Ubuntu ที่ติดตั้งไว้และไฟล์สำคัญอื่น ๆ (เช่นเพลง ebooks วิดีโอ) เพราะค่อนข้างเป็นไปได้ว่าการพยายามใช้เทคนิคนี้จะส่งผลเสีย และทำให้ระบบ Ubuntu ของคุณไม่สามารถใช้งานได้อย่างสมบูรณ์
คุณสามารถติดตั้งแพ็กเกจเหล่านี้ได้ทั้งหมดโดยใส่ไว้ในโฟลเดอร์ที่ไม่มีอะไรอื่น (สมมติว่าโฟลเดอร์นั้นมีชื่อdebs
อยู่ในDownloads
ไดเรกทอรีของคุณ) จากนั้นเรียกใช้คำสั่งนี้:
sudo dpkg -Ri ~/Downloads/debs
แน่นอนว่าเมื่อคุณติดตั้งแล้วพวกเขาจะไม่ทำงานเพราะไฟล์ปฏิบัติการของพวกเขาคือ 64- บิตและระบบ Ubuntu 32- บิตของคุณกำลังเรียกใช้เคอร์เนล 32- บิต (ซึ่งจะเรียกใช้ไฟล์ปฏิบัติการ 32- บิตเท่านั้น) ในความเป็นจริงพวกเขาอาจยังไม่เสร็จสิ้นการติดตั้งเนื่องจากอาจมีสคริปต์หลังการติดตั้งที่เรียกใช้ executables 64- บิตที่ไม่สามารถเรียกใช้ได้
มีหลายวิธีในการพยายามติดตั้งเคอร์เนล 64 บิตลงบนระบบ 32 บิต แต่มันซับซ้อนมากดังนั้นฉันขอแนะนำให้คุณบูตจาก Oneiric live 64 บิต (ซึ่งใช้ 64 บิตเอง เคอร์เนล), chrootลงในระบบ Ubuntu ที่ติดตั้งและใช้ 64-bit ที่เพิ่งติดตั้งapt
และdpkg
เพื่อติดตั้งเคอร์เนล 64- บิต
นี่คือคำแนะนำเฉพาะสำหรับการทำเช่นนั้น ... แต่โปรดอย่าใช้สิ่งนี้เพื่อหมายความว่าฉันกำลังจะใช้งานได้ ฉันไม่ได้ลองสิ่งนี้ (ฉันได้ chrooted เป็นระบบ Ubuntu ที่ติดตั้งจากซีดีที่ใช้งานจริงและดำเนินการจัดการแพคเกจและการดำเนินการอื่น ๆ แต่ฉันไม่ได้พยายามดำเนินการข้ามสถาปัตยกรรมที่แนะนำที่นี่)
ในระบบ Ubuntu ที่ติดตั้งของคุณให้เปิดหน้าต่างเทอร์มินัล ( Ctrl+ Alt+ T) และเรียกใช้mount | grep ' on / '
(โดยวางลงในเทอร์มินัลแล้วกด Enter) /dev/sda2 on / type ext4 (rw,errors=remount-ro,commit=0)
คุณจะเห็นสิ่งที่ต้องการ ส่วนที่คุณสนใจคือชื่ออุปกรณ์ก่อนหน้าon
นี้ (ในตัวอย่างนี้คือ/dev/sda2
) จำไว้หรือเขียนมันลงไป
ขั้นตอนที่ 1 ให้ชื่ออุปกรณ์ของ/
พาร์ติชันแก่คุณ หากคุณมี/boot
พาร์ติชันแยกต่างหากคุณจะต้องทราบชื่ออุปกรณ์สำหรับพาร์ทิชันนั้นด้วย mount | grep ' on /boot '
ดังนั้นในกรณีที่ทำงาน /dev/sda1 on /boot type ext2 (rw)
คุณจะเห็นสิ่งที่ต้องการ จำหรือเขียนลงไปได้เช่นกัน
บูตจากซีดี Oneiric amd64 (เช่น 64 บิต) และเลือก "ลอง Ubuntu" แทน "ติดตั้ง Ubuntu"
เข้าสู่เว็บเบราว์เซอร์และตรวจสอบให้แน่ใจว่าการเชื่อมต่ออินเทอร์เน็ตทำงานได้อย่างสมบูรณ์ หากไม่มีให้ตั้งค่า
เปิดหน้าต่าง Terminal และเรียกใช้sudo mount /dev/sda2 /mnt
(แทนที่/dev/sda2
ด้วยชื่ออุปกรณ์ที่คุณได้รับในขั้นตอนที่ 1 หากแตกต่างกัน)
หากระบบที่ติดตั้งของคุณมี/boot
พาร์ติชันแยกต่างหากให้รันsudo mount /dev/sda1 /mnt/boot
(แทนที่/dev/sda1
ด้วยชื่ออุปกรณ์ที่คุณได้รับในขั้นตอนที่ 2 หากต่างกัน)
ตอนนี้รันคำสั่งเหล่านี้เพื่อ chroot ในระบบที่ติดตั้งของคุณ:
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
เรียกใช้ping -c 4 launchpad.net
เพื่อดูว่าการเชื่อมต่ออินเทอร์เน็ตทำงานได้อย่างสมบูรณ์จากภายใน chroot หรือไม่ คุณหวังอย่างนี้:
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
ถ้าหากคุณไม่สามารถส่งหรือรับแพ็กเก็ตได้คุณจะต้องตั้งค่าการเชื่อมต่ออินเทอร์เน็ตใน chroot ในการดำเนินการดังกล่าวให้เรียกใช้คำสั่งเหล่านี้ (เพื่อออกจาก chroot คัดลอกไฟล์การกำหนดค่าที่เกี่ยวข้องจากระบบซีดีอยู่ใน chroot และป้อน 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
ในขณะที่โดยทั่วไปคุณควรหยุดกระบวนการนี้หากมีข้อผิดพลาดไม่ต้องกังวลหากคำสั่งแรกและ / หรือที่สองของคำสั่งทั้งสี่นั้นล้มเหลวหากวิธีที่เฉพาะเจาะจงที่ล้มเหลวคือการบอกคุณว่า/mnt/etc/resolv.conf
(หรือ/mnt/etc/hosts
) ไม่มีอยู่ .
chroot กลับมาแล้วลองใหม่อีกครั้ง:
sudo chroot /mnt
ping -c 4 launchpad.net
รันคำสั่งเหล่านี้เพื่อทำให้สภาพแวดล้อม chrooted ของคุณพร้อมใช้งานอย่างสมบูรณ์:
export HOME=/root
export LC_ALL=C
หากคุณยังไม่ได้ติดตั้ง.deb
ไฟล์สำหรับรุ่น 64 บิตdpkg
และapt
ให้ทำตอนนี้ หากคุณติดตั้ง แต่มีข้อผิดพลาดของการกำหนดค่าให้เรียกใช้dpkg --configure -a
เพื่อแก้ไข (หวังว่ามันจะใช้งานได้ ... มันอาจจะดีกว่าที่จะรอที่จะพยายามติดตั้งจนกว่าคุณจะอยู่ในสภาพแวดล้อมซีดีสดในกรณีที่ติดตั้ง 64- บิตdpkg
ในขณะที่บูทเข้าสู่ระบบที่ติดตั้งdpkg
แล้ว
ด้วยเวอร์ชัน 64 บิตdpkg
และapt
ติดตั้งสมมติว่าพวกเขาจะติดตั้งแพ็คเกจ 64 บิตโดยอัตโนมัติตอนนี้คุณสามารถลบเคอร์เนล 32 บิตทั้งหมดของคุณและติดตั้งเคอร์เนล 64 บิต ในการลบเมล็ด 32 dpkg -l | grep linux-
บิตของคุณทำงาน linux-
นี้จะแสดงรายการแพคเกจติดตั้งที่ขึ้นต้นด้วย คุณสนใจมากขึ้นโดยเฉพาะในแพคเกจที่เริ่มต้นเช่นlinux-generic
, linux-image
, และlinux-server
/ หรือ linux-headers
ลบไฟล์เหล่านี้ด้วยapt-get purge ...
ตำแหน่งที่...
ถูกแทนที่ด้วยรายการแพ็คเกจที่คุณลบ
ตอนนี้ติดตั้งแพคเกจที่คุณลบ (อันที่จริงสำหรับแพคเกจที่มีหมายเลขรุ่นในชื่อแพคเกจเช่นตัวอย่างเช่นlinux-image-3.0.0-13-generic
คุณจะต้องติดตั้งล่าสุดชื่อแพคเกจ versioned.) ทำเช่นนี้โดยการทำงานapt-get install ...
ที่...
จะถูกแทนที่ด้วยรายการพื้นที่ที่แยกออกจากกันของแพคเกจที่คุณกำลังติดตั้ง .
อัพเดตการกำหนดค่าบูตโหลดเดอร์ยกเลิกการต่อเชื่อมอุปกรณ์บางตัวแล้วออกจาก chroot:
update-grub
umount /proc || umount -lf /proc
umount /sys
umount /dev/pts
exit
sudo umount mnt/dev
ถ้าคุณวิ่งและมันไม่ได้ล้มเหลวแล้วตอนนี้ทำงานsudo cp /mnt/etc/resolv.conf /mnt/etc/resolv.conf.old
sudo cp /mnt/etc/resolv.conf.old /mnt/etc/resolv.conf
ถ้าคุณวิ่งและมันไม่ได้ล้มเหลวแล้วตอนนี้ทำงานsudo cp /mnt/etc/hosts /mnt/etc/hosts.old
sudo cp /mnt/etc/hosts.old /mnt/etc/hosts
หากระบบที่ติดตั้งของคุณมี/boot
พาร์ติชันแยกต่างหากให้ unmount ที่:sudo umount /mnt/boot
ถอนติดตั้ง/
พาร์ติชันระบบที่ติดตั้งของคุณ:sudo umount /mnt
ออกจากหน้าต่างเทอร์มินัล (เรียกใช้exit
) จากนั้นรีบูต (หรือปิด) ระบบซีดีสดและบูตเข้าสู่ระบบที่ติดตั้ง
ดูว่าระบบสามารถใช้งานได้และใช้เคอร์เนล 64 บิต ( uname -m
ควรบอกว่าสถาปัตยกรรมเป็นx86_64
)
อาจมีแพ็คเกจเพิ่มเติมที่คุณต้องติดตั้งเช่นia32_libs
และ / หรือรุ่น 64 บิตlibc6
เพื่อให้สามารถใช้งานได้ สำหรับบางคนที่คุณอาจจะแจ้งคุณต้องการพวกเขาเมื่อพยายามที่จะติดตั้งรุ่น 64 บิตและdpkg
/ หรือ apt
สำหรับคนอื่นคุณอาจไม่ได้รับแจ้ง
(คำแนะนำข้างต้นสำหรับ chrooting และการดำเนินงานในสภาพแวดล้อม chrooted จะขึ้นอยู่ในส่วนสำคัญในขั้นตอนที่เกี่ยวข้อง แต่ที่แตกต่างกันนี้และในบางLaunchpad คำตอบโพสต์ของผมโดยเฉพาะอย่างยิ่ง # 6 ที่นี่และ # 6 ที่นี่ . และขอขอบคุณเป็นพิเศษกับซีเซียมสำหรับการชี้ออก ที่ 64- บิตdpkg
และapt
executables จะไม่ทำงานบนระบบที่ใช้เคอร์เนล 32- บิต)