วิธีการเชื่อมโยง GRUB2 สำหรับ Ubuntu 10.04 จาก Truecrypt และ bootloader (มัลติบูตพร้อมกับพาร์ติชัน Windows XP)


9

ฉันต้องการ Truecrypt เพื่อขอรหัสผ่านสำหรับ Windows XP ตามปกติ แต่ด้วยตัวเลือกมาตรฐาน [ESC] ในการเลือกนั่นคือผ่านทางคีย์ Escape ฉันต้องการให้มันหาด้วงสำหรับการติดตั้ง Ubuntu (ไม่ได้เข้ารหัส)

ฉันติดตั้ง Windows XP บนฮาร์ดไดรฟ์ 120Gb ของเน็ตบุ๊ค Toshiba NB100 แล้วแบ่งพาร์ติชันเพื่อให้มีที่ว่างสำหรับ Ubuntu 10.04 และติดตั้งหลังจากติดตั้ง Windows XP

เมื่อฉันเข้ารหัส Windows XP, Truecrypt จะเขียนทับรายการด้วงในมาสเตอร์บูตเรคคอร์ด (MBR) ฉันเชื่อ (?) และฉันจะไม่สามารถเลือกระหว่าง XP และ Ubuntu อีกต่อไป ดังนั้นฉันต้องคืนค่ามันกลับ

ฉันได้ทำการค้นหาคำตอบในฟอรัม Ubuntu และที่อื่น ๆ แล้ว แต่ยังไม่พบคำตอบที่สมบูรณ์ซึ่งครอบคลุมเหตุการณ์เหตุการณ์และข้อความแสดงข้อผิดพลาดทั้งหมดหรือพวกเขาพูดถึง GRUB ดั้งเดิมที่ไม่ใช่ GRUB2 Ubuntu 10.04 ใช้ GRUB2

การตั้งค่าของฉัน:

พาร์ทิชัน:

  1. Windows XP, NTFS (เพื่อเข้ารหัสด้วย Truecrypt), 40Gb
  2. / boot (Ext4, 1Gb)
  3. การสลับ Ubuntu, 4Gb
  4. Ubuntu / (root) - ระบบไฟล์หลัก (20gb)
  5. NTFS แบ่งปัน 55Gb

ฉันรู้ว่าตัวโหลดบูต Truecrypt จะแทนที่ GRUB เมื่อบูตขึ้นเพราะฉันได้ลองใช้กับแล็ปท็อปเครื่องอื่นแล้ว

ฉันต้องการหน้าจอบูตโหลดเดอร์ที่ดูเหมือนปกติ:

truecrypt

ใส่รหัสผ่าน:

(หรือ [ESC] เพื่อข้าม)

รหัสผ่านสำหรับ WindowsXP และกด [ESC] เพื่อหาด้วง Ubuntu ที่จะทำการบูท

ขอบคุณล่วงหน้าสำหรับความช่วยเหลือของ.

พื้นที่สำคัญของปัญหาคือวิธีการสั่ง Truecrypt เมื่อกดแป้น Escape และวิธีที่ Grub / Ubuntu สามารถมองเห็นได้ด้วย truecrypt bootloader เพื่อค้นหาเมื่อกดปุ่ม esc ยังรู้ว่าเป็นการผูกมัด

คำตอบ:


6

มันค่อนข้างง่าย แบ่งพาร์ติชันดิสก์ของคุณติดตั้ง Windows และ Ubuntu ใช้ TrueCrypt บนพาร์ติชัน Windows ซึ่งจะเข้ารหัส Windows แต่ปล่อยให้ Ubuntu ไม่มีการเข้ารหัส

จากนั้นคุณจะพบว่าคุณสามารถบูตเข้าสู่ Windows และจาก bootloader TrueCrypt เท่านั้น ฟังดูเหมือนคุณอยู่ที่นั่นแล้ว

สมมติว่าดิสก์ของคุณsdaใช้งาน Windows บนsda1และ Linux sda2(นี่คือสมมุติว่าคุณดูเหมือนไม่เป็นsda2) TrueCrypt จะติดตั้งลงบน MBR sdaและเขียนทับ GRUB

ใช้อูบุนตู distro CD เพื่อบูตซีดีสดจากนั้น chroot เข้าสู่ระบบที่ติดตั้งไว้ล่วงหน้าของคุณ ชอบมาก

sudo su -
mkdir -p /mnt/ubuntu
mount /dev/sda2 /mnt/ubuntu
mount --bind /proc /mnt/ubuntu/proc
mount --bind /dev /mnt/ubuntu/dev
chroot /mnt/ubuntu

แล้วติดตั้ง bootloader ด้วง แต่จะมากกว่าsda2sda

grub-install /dev/sda2 --force

จากนั้นเมื่อคุณรีบูตคุณจะยังคงได้รับ TrueCrypt loader เพื่อขอรหัสผ่านเพื่อบูตจากsda-> sda1เข้าสู่ Windows แต่เมื่อคุณกด ESCAPE คุณจะได้รับตัวเลือกในการเลี่ยงผ่านและบู๊ตเข้าสู่ Linux โดยตรง แต่มาจากsda2MBR

แต่เดี๋ยวก่อน

ก่อนที่คุณจะทำสิ่งนี้หนึ่งข้อแม้: ถ้าคุณทำgrub-installผิดและเขียนทับsdaMBR หรือถ้าคุณทำการอัพเกรดเคอร์เนลซึ่งทริกเกอร์ GRUB เพื่อเขียนทับ MBR คุณจะพบว่าคุณต้องติดตั้ง TrueCrypt bootloader ใหม่เพื่อรับกลับ เป็น Windows นี่เป็นปัญหาใหญ่หากคุณยังไม่พร้อม

ฉันขอแนะนำว่าก่อนที่คุณจะเล่นกับ GRUB คุณควรสำรองข้อมูล bootloader TrueCrypt จากภายใน Linux ด้วยวิธีนี้เมื่อคุณทำลาย TrueCrypt และสามารถเข้าถึง Linux เท่านั้นคุณสามารถเขียนได้อย่างง่ายดาย

สำรองข้อมูลบูต TrueCrypt ของคุณ:

dd if=/dev/sda of=~/truecrypt.mbr count=1 bs=512
dd if=/dev/sda of=~/truecrypt.backup count=8 bs=32256 # Just in case

กู้คืนบูตเดอร์ TrueCrypt ของคุณ (ฉันเรียกสิ่งนี้restore-truecrypt.sh):

sudo dd if=~/truecrypt.mbr of=/dev/sda count=1 bs=512
sudo dd if=~/truecrypt.backup of=/dev/sda count=8 bs=32256
sudo grub-install /dev/sda2 --force

ฉันมีชุดคำสั่งทั้งสองนี้ในเชลล์สคริปต์ขนาดเล็กซึ่งฉันใช้งานได้สะดวก เมื่อฉัน accidentially ปะทะ bootloader ของฉัน (มันเกิดขึ้น) ผมไม่ต้องการที่จะ Googling manรอบสำหรับคำสั่งหรือการอ่าน

โอ้และคำที่เข้ากันได้ เมื่อฉันเขียน "GRUB" ฉันหมายถึง GRUB 1 หรือ 2 โดยส่วนตัวฉันทำกับ GRUB 2 ใน 10.04 และ Windows 7 ... แต่ทำงานได้ดีกับ GRUB, Windows และ Linux รุ่นเก่ากว่า


ขอบคุณ @fitzpatrick มากสำหรับคำตอบนี้ ฉันจะตรวจสอบมันเมื่อฉันมีเวลามากขึ้น ฉันหลงตัวเองเล่นซอพยายามทำให้มันทำงานแน่นอนดังนั้นทิศทางที่แม่นยำของคุณ :) ฉันจะให้คุณรู้ว่าที่นี่สิ่งที่ฉันค้นพบคืออะไร
therobyouknow

อะไรคือ "dd if = / dev / sda ของ = ~ / truecrypt.backup count = 8 bs = 32256" สำรอง ส่วนหัวของ TC ขอบคุณ!
stefan.at.wpf

นอกจากนี้ sda2 คือ / boot partition?
stefan.at.wpf

ok sda2 คือการจำกัดความรูท, แช่ง, ของฉันถูกเข้ารหัส ...
stefan.at.wpf

ddคำสั่งคัดลอก 32KB แรกของดิสก์: พื้นบูตเต็มรูปแบบ ในตัวอย่างที่ฉันให้ไว้ข้างต้นไม่มีพาร์ติชันสำหรับบูตแยกจากกันการติดตั้งจะอยู่ในพาร์ติชันเดียว ในช่วงต้น RedHat ฉันใช้เครื่องมือเกี่ยวกับพาร์ติชันแยกต่างหากบนเดสก์ท็อป Linux ทุกวันนี้ด้วยดิสก์ขนาดใหญ่ฉันคิดว่าคุณสามารถประหยัด rigmarole สำหรับเซิร์ฟเวอร์ของคุณได้ในกรณีส่วนใหญ่!
Aidan Fitzpatrick

2

คำตอบที่ฉันจะยอมรับสำหรับคำถามนี้คือของฉันเอง และคำตอบนั้นก็คือยอมรับว่าฉันไม่สามารถทำได้และฉันจะยอมรับทางเลือกหนึ่งอย่าง:

  1. ใช้แอปพลิเคชัน virtualisation / VM ที่ทำงานในโฮสต์ Windows XP (พาร์ติชันไดรฟ์ระบบเข้ารหัส) โฮสต์ Ubuntu เช่น VirtualBox, VMWare หรือ Parallels ดังนั้นฉันจะต้องบูตเข้าสู่ Windows จากนั้นเรียกใช้แอปพลิเคชันนี้และบูตเข้าสู่ Ubuntu จากภายในนี้ นักวิจารณ์บางคนระบุข้อเสียของวิธีนี้ว่าคุณต้องบูตสองครั้ง (XP แรกจากนั้น Ubuntu) เพื่อไปที่ Ubuntu อย่างไรก็ตามฉันจะบอกว่ามันมีข้อได้เปรียบกว่าบู๊ทคู่ที่เปิดตัว BIOS โดยทั่วไปซึ่งคุณมีทั้งระบบปฏิบัติการที่ทำงานในเวลาเดียวกัน ยอดเยี่ยมถ้าคุณต้องการทดสอบแอปพลิเคชันหรือเว็บเพจอย่างรวดเร็วบนหลายแพลตฟอร์ม

  2. ใช้ฮาร์ดไดรฟ์รองหรือการ์ด SD (เช่น 8gb, 16Gb) สำหรับ Ubuntu และเลือกจากการบูตไบออส (ครั้งเดียว) เพื่อบูต Ubuntu จากนั้น

* Can't = จริงๆหมายถึงฉันใช้เวลามากพอ (ประมาณ 6 ชั่วโมงมากกว่า 3 วันหายไปล้างใจค้นหาฟอรั่มกลับมารีเฟรช) เกี่ยวกับเรื่องนี้และไม่พร้อมที่จะใช้จ่ายอีกต่อไป ดังนั้นฉันจึงไม่สามารถถูกกล่าวหาว่าขี้เกียจและพึ่งพาผู้อื่นได้ Can't = ยังหมายถึง: ไม่สามารถในขณะนี้ ฉันอาจกลับมาทบทวนอีกครั้ง

นี่คือข้อมูลอ้างอิงบางอย่างที่คนอื่น ๆ เห็นว่ามีประโยชน์:

ทั้งหมดข้างต้นนำเสนอข้อมูลเชิงลึกบางอย่าง แต่ไม่ใช่คำตอบที่สมบูรณ์ซึ่งครอบคลุมทุกเหตุการณ์หรือด้วง

ฉันได้โพสต์คำถามเดียวกันนี้ที่นี่ใน superuser, บน ubuntuforums และฟอรัม truecrypt:

เหตุผลของฉันในการทำเช่นนี้คือผู้อ่านของฟอรัมเหล่านี้ไม่จำเป็นต้องอ่านฟอรัมอื่น ๆ แต่จะมีบางอย่างทับซ้อนกัน แต่คำแนะนำที่สำคัญบางอย่างอาจพลาดได้

พื้นหลังความคิดและการเรียนรู้ (ถ้าสนใจ!)

จริง ๆ แล้วฉันยินดีที่จะบอกว่าฉันเรียกมันมาทั้งวันแล้วมาหาทางเลือกอื่นแม้ว่าฉันจะปล่อยให้มันดีขึ้นจากตัวฉันและยังคงต่อสู้เพื่อที่จะชนะ แต่มันเป็นการผ่อนปรนที่จะยอมรับว่าไม่สามารถทำได้ (ง่าย) และมีทางเลือกอื่น ตอนนี้ฉันสามารถทำสิ่งที่สำคัญกว่านี้ได้แล้ว! ฉันได้ทำการบูทสองครั้ง Windows 7 และ Ubuntu 10.04 บนเดสก์ท็อปโดยไม่มีการเข้ารหัสซึ่งเป็นขั้นตอนที่ค่อนข้างตรงไปตรงมา และด้วยทางเลือกอื่นฉันไม่ได้ห่างไกลจากสิ่งที่ฉันต้องการในคำตอบเดิม จริงๆแล้วฉันไม่ได้ใช้ Ubuntu บนโน้ตบุ๊กมากเท่ากับ Windows ในขณะนี้ดังนั้นฉันจะไม่พลาดมันมากนัก ฉันยังมี MacBookPro ดังนั้นฉันไม่ได้เป็นแฟน Windows มากกว่า OS อื่น ๆ !

นี่คือเหตุผลที่ฉันต้องการ truecrypt windows ที่เข้ารหัสด้วยการบูทคู่กับ Ubuntu จากมุมมองของผู้ใช้คนอื่น:

http://blog.mfabrik.com/2008/07/15/perfect-dual-boot-crypted-hard-disk-setup-with-truecrypt-and-luks/

"ฉันมีแล็ปท็อปทำงานที่ใช้ใน Symbian และการพัฒนาเว็บฉันต้องสามารถบูตทั้ง Vista และ Linux ได้เนื่องจากความเป็นส่วนตัวของไคลเอนต์ระบบปฏิบัติการทั้งสองจะต้องได้รับการเข้ารหัสสำหรับแล็ปท็อปที่สูญหายแม้ว่าฉันจะไม่ใช้ Windows ข้อมูลเว็บเบราว์เซอร์อาจมีรหัสผ่านที่เก็บไว้สำหรับระบบไคลเอ็นต์และมันจะเป็นความหายนะที่จะทำให้เกิดการรั่วไหลโดยไม่ตั้งใจ "

Grub2 นั้นซับซ้อนกว่าด้วงมากบางคนอาจโต้แย้งว่าจำเป็น ฉันประสบความสำเร็จกับ Ubuntu รุ่นก่อน 10.04 (GRUB ไม่ใช่ GRUB2) กับ Windows XP:

http://www.howtoforge.com/forums/showthread.php?p=184776#post184776

ฉันบอกว่าซับซ้อนมากขึ้นเพราะตอนนี้มีไฟล์การตั้งค่ามากกว่าปัจจุบันมีการกระจายไปทั่วไดเรกทอรีที่มีการอ้างอิงระหว่างกันบ้างตอนนี้บางเครื่องถูกสร้างขึ้นและแนะนำให้แก้ไขเช่นเมนูบูตมีภาษาสคริปต์เพื่อเรียนรู้และ ล่ามสคริปต์ให้ทำงานเมื่อมีการเปลี่ยนแปลง ตอนนี้มันมีส่วนเกี่ยวข้องกับฉันมากเกินไปและมันเป็นเพียงการเปิดตัวระบบปฏิบัติการไม่ใช่จรวดไปยังดวงจันทร์!


ตัวเลือกที่ฉันยังไม่ได้พิจารณาคือการใช้อิมเมจสำรองซีดี / .ISO ของ Ubuntu - ดาวน์โหลดที่นี่: release.ubuntu.com/lucidหากคุณดูฟอรัม Ubuntu (ลิงก์ด้านบน) ที่ฉันโพสต์สำเนาคำถาม คุณจะเห็นการโพสต์จากผู้ตอบที่กล่าวถึงเรื่องนี้ จุดสำคัญคือมันให้คุณเลือกที่จะใส่ GRUB (และจะทำอย่างเป็นทางการและถูกต้องมากกว่าที่จะคาดเดาด้วยตนเองตามที่ฉันได้ทำ) และโปสเตอร์อ้างว่าพวกเขาได้รับการเข้ารหัส Ubuntu และ Truecrypted Windows บนเครื่องเดียวกัน - ซึ่งเป็นเป้าหมายของฉัน
therobyouknow

1

ฉันคิดว่าฉันแก้ปัญหานี้ได้อย่างราบรื่น สถานการณ์เดิมของฉันเป็นดังนี้: ฉันมีเน็ตบุ๊กที่ไม่ได้เข้ารหัส (MSI U160) ที่มีพาร์ติชัน Windows 7 และพาร์ติชัน Ubuntu 10.10 (grub2 ของ Ubuntu นั่งอยู่ใน MBR)

  1. ในการติดตั้ง Truecrypt ฉันต้องติดตั้ง Windows 7 ใหม่ในพาร์ติชั่นเดิม
  2. จากนั้นฉันติดตั้ง truecrypt (เข้ารหัสพาร์ทิชันทั้ง windows 7)
  3. การใช้คำแนะนำเหล่านี้ฉันติดตั้ง Ubuntu ใหม่จากคีย์ USB แล้ววาง grub2 loader ลงในพาร์ติชัน Ubuntu
  4. หลังจากรีบูตเครื่องฉันได้รับ TrueCrypt สำหรับบูตโหลดเดอร์ ฉันกด [ESC] แล้วฉันจะได้รายชื่อของพาร์ติชั่นที่สามารถทำการส่งได้รวมถึงลินุกซ์อันหนึ่ง (มันแสดงพาร์ติชั่นของ windows ด้วย แต่เนื่องจากมันถูกเข้ารหัสการบูทที่จะล้มเหลว)

ฉันหวังว่านี่คือสิ่งที่คุณต้องการเช่นกัน


1

ฉันเพิ่งใช้เวลา 2 วันในการต่อสู้กับสิ่งนี้และไม่สามารถหาคำตอบเหล่านี้ให้ฉันได้ อะไรในที่สุดผมก็ไม่ได้รับการทำงานที่ผมได้รับการบันทึกไว้ในบล็อกของฉัน นี่คือเวอร์ชั่นสรุป (ทำโดย Debian wheezy; ควรใช้กับ Ubuntu ได้เช่นกันดิสทริบิวชันอื่น ๆ อาจต้องการการแก้ไขเล็กน้อย):

โดยพื้นฐานแล้วคุณจะโหลด GRUB2 เพื่อโหลด SYSLINUX ซึ่งจะบู๊ตอิมเมจ TrueCrypt Rescue ISO ซึ่งจะช่วยให้คุณสามารถบูตเข้าสู่ Linux

  1. ติดตั้ง syslinux:

    sudo aptitude install syslinux
    
  2. คัดลอกไฟล์เข้าที่:

    sudo cp /usr/lib/syslinux/memdisk /boot/
    sudo cp TrueCrypt\ Rescue\ Disk.iso /boot/truecrypt-rescue-disk.iso
    
  3. กำหนด UUID ของพาร์ติชันสำหรับเริ่มระบบของคุณ:

    sudo blkid /dev/sda2
    

    ผลลัพธ์ควรมีลักษณะดังนี้:

    / dev / sda3: UUID = "12345678-1234-1234-123-1267459090"

  4. กำหนดค่า GRUB2:

    เพิ่มรายการต่อไปนี้ใน/etc/grub.d/40_custom:

    menuentry "TrueCrypt ISO boot" {
        insmod part_msdos
        insmod fat
        insmod ext2
        insmod search_fs_uuid
        search --fs-uuid --no-floppy --set=boot [UUID without quotes]
        linux16 ($boot)/memdisk iso raw
        initrd16 ($boot)/truecrypt-rescue-disk.iso
    }
    
  5. โหลดการกำหนดค่า GRUB2 อีกครั้ง

    sudo update-grub
    

โปรดทราบว่าสิ่งนี้จะแสดงตัวเลือกการซ่อมแซม [F8] ทุกครั้งที่คุณบูตเข้าสู่ Windows เนื่องจากเราหลอกว่าระบบบูทอิมเมจ TrueCrypt Rescue CD จากฮาร์ดไดรฟ์แทนที่จะเป็นวิธีการบูตปกติ "ปกติ" แต่ดูเหมือนว่าเป็นข้อเสียเปรียบเล็กน้อยสำหรับฉัน (และอาจได้รับการพิจารณาเป็นคุณสมบัติเพิ่มเติม!)


+1 upvote สำหรับความพยายามในการทำงานที่ยอดเยี่ยมของคุณ @Flimzy ณ จุดหนึ่งฉันอยากลองตอบคำถามและรายงานกลับมาและถ้าฉันสามารถทำซ้ำความสำเร็จของคุณได้ฉันก็อยากจะตอบคำถามของคุณให้เป็นที่ยอมรับ ฉันไม่มีเครื่องที่จะทำการทดสอบพวกเขาทั้งหมดถูกใช้เพื่อสิ่งอื่น ๆ ในขณะนี้) ขอบคุณอีกครั้ง!
therobyouknow

-1

วิธีแก้ปัญหา: อาจจะคัดลอก truecrypt bootloader ไปยังไฟล์ IMG เพื่อบูตโดยด้วง? หรืออาจใช้ Grub4Dos เพื่อโหลด Ubuntu?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.