ฉันเพิ่งติดตั้ง Ubuntu 12.10 และต้องใช้วลีรหัสผ่านเพื่อบู๊ต (ฉันติดตั้งด้วยระบบไฟล์ที่เข้ารหัส)
ฉันต้องติดตั้งใหม่เพื่อเปลี่ยนเป็นระบบไฟล์ที่ไม่ได้เข้ารหัสแบบมาตรฐานหรือไม่?
ฉันเพิ่งติดตั้ง Ubuntu 12.10 และต้องใช้วลีรหัสผ่านเพื่อบู๊ต (ฉันติดตั้งด้วยระบบไฟล์ที่เข้ารหัส)
ฉันต้องติดตั้งใหม่เพื่อเปลี่ยนเป็นระบบไฟล์ที่ไม่ได้เข้ารหัสแบบมาตรฐานหรือไม่?
คำตอบ:
หาก Ubuntu ขอรหัสผ่านการเข้ารหัสระหว่างการบู๊ต (เช่นบนคอนโซลข้อความก่อนที่หน้าจอการเข้าสู่ระบบจะปรากฏขึ้น) แสดงว่ามีการใช้วิธีการเข้ารหัสดิสก์เต็มรูปแบบ (มีมากกว่าหนึ่งวิธีในการทำสิ่งนี้ แต่ฉันจะเก็บคำตอบทั่วไปไว้) การเข้ารหัสนั้นจัดการโดยเลเยอร์ซอฟต์แวร์พิเศษระหว่างระบบไฟล์และฮาร์ดไดรฟ์แบบฟิสิคัลไม่ใช่ระบบไฟล์
ไม่มีวิธีการหรือเครื่องมือง่ายๆในการยกเลิกการทำเช่นนี้ ด้วยความรู้บางอย่างเกี่ยวกับการทำงานของระบบลีนุกซ์ก็สามารถทำได้ คุณต้องย้ายระบบไฟล์ทั้งหมด (หรือไฟล์ทั้งหมด) ไปยังพาร์ติชันอื่น (ที่มีพื้นที่ว่างเพียงพอ) หรือ HDD ภายนอก จากนั้นลบคอนเทนเนอร์ที่เข้ารหัสแล้วสร้างระบบไฟล์ใหม่โดยไม่มีการเข้ารหัส สุดท้ายตรวจสอบให้แน่ใจว่าระบบไฟล์ใหม่ได้รับการยอมรับอย่างเหมาะสมจากตัวโหลดการบูตและmount -a
ก่อนที่จะทำการรีบูต
หากเป็นไปได้ควรหลีกเลี่ยงขั้นตอนที่ใช้เวลานานและเกิดข้อผิดพลาด เพียงทำการติดตั้งใหม่ สำหรับผู้ใช้ใหม่นี่คือตัวเลือกที่เร็วและปลอดภัยที่สุด
PS: โอกาสที่คุณสามารถเปลี่ยนข้อความรหัสผ่านการเข้ารหัสซึ่งอาจเป็นสตริงว่างเปล่า จากนั้นการถอดรหัสจะต้องกด Enter เท่านั้น บางทีคุณสามารถไปไกลกว่านั้นและกำจัดข้อความแจ้งรหัสผ่าน (ตอนนี้ไร้ประโยชน์) ได้ อย่างไรก็ตามสิ่งนี้ไม่ได้ปิดใช้งานการเข้ารหัส ข้อมูลจะยังคงถูกเข้ารหัสแม้ว่าการเข้ารหัสจะไร้ประโยชน์เนื่องจากคีย์สามารถเดาได้เล็กน้อย
dd
และไดรเวอร์พื้นฐานไม่ได้เขียนจนกว่าพวกเขาจะอ่านแต่ละบล็อกเสร็จแล้ว (อาจมีธงและการตั้งค่าเพื่อให้แน่ใจว่านี่) 2. การอ่าน / เขียน บล็อกไม่ทับขอบของบล็อกเข้ารหัส (สามารถตรวจสอบได้อาจเกี่ยวข้องกับคณิตศาสตร์) 3. ข้อมูลส่วนหัวที่สำคัญที่จำเป็นสำหรับการถอดรหัสจะไม่ถูกเขียนทับก่อนที่จะเสร็จสิ้น (ตรวจสอบรูปแบบการเข้ารหัสพื้นฐานซึ่งอาจดำเนินการตั้งแต่ต้นจนจบ) ฉันคิดว่ามันเป็นไปได้ แต่จะต้องมีการตั้งค่าและการวิเคราะห์อย่างระมัดระวังมากขึ้น
ด้านล่างนี้เป็นโซลูชันของฉันที่ใช้งานได้ โปรดจำไว้ว่าฉันไม่ใช่ผู้เชี่ยวชาญ Linux ดังนั้นจึงไม่ใช่ทางออกที่ดีที่สุด ไม่สามารถหาสิ่งที่ดีกว่าอยู่ดี
หมายเหตุ : เมื่อใดก็ตามที่ฉันพูดฉันหมายถึง
/dev/sda1 - boot partition
/dev/sda5 - encrypted partition
/dev/sda3 - clean non-encrypted EXT4 partition
/dev/sda2 - my newly created swap partition
บูตจากซีดีสด ฉันใช้ Ubuntu 13.10 32bit desktop ISO
เมานต์พาร์ติชันของคุณ:
sudo cryptsetup luksOpen /dev/sda5 crypt1
คัดลอกข้อมูลต้นทางไปยังพาร์ติชั่นปลายทางและบันทึก dd PID ไปยังตัวแปร pid:
sudo dd if=/dev/ubuntu-vg/root of=/dev/sda3 bs=1M & pid=$!
สิ่งนี้จะ ping กระบวนการ dd แต่ละวินาทีด้วยสัญญาณ USR1 และสถานะผลลัพธ์ dd:
while sudo kill -USR $pid; do sleep 1; done
หากคุณไม่ชอบ 'วิธีการ' ข้างต้นคุณสามารถใช้นาฬิกาได้ เปิดหน้าต่างเทอร์มินัลอื่นและรับ PID:
pgrep -l '^dd$' | awk '{ print $1 }'
แทนที่ด้วย ID กระบวนการของคุณ:
watch kill -USR1 <pid>
คุณควรเห็นผลลัพธ์ใน terminal dd ของคุณในแต่ละ 2s
เมื่อเสร็จแล้วคุณสามารถเมาต์พาร์ติชันที่ไม่มีการเข้ารหัสของคุณเพื่อดูว่ามันใช้ได้หรือไม่:
sudo mount /dev/sda3 /mnt
หลังจากนั้นยกเลิกการต่อเชื่อมพาร์ติชันของคุณ:
sudo umount /dev/sda3
พาร์ทิชัน crypt ที่วางจำหน่าย:
sudo cryptsetup luksClose /dev/sda5
เรียกใช้ gparted ลบพาร์ติชัน LUKS ของคุณ (ทั้งแบบขยายและแบบลอจิก) ปรับขนาด / dev / sda3 ของคุณแล้วเลื่อนไปทางซ้าย สร้างพาร์ติชันสลับ
หมายเหตุ: การย้าย / dev / sda3 ของคุณไปทางซ้ายอาจใช้เวลานาน สำหรับฉันมันใช้เวลา 30 นาทีในพาร์ติชั่น 120GB และไดรฟ์ SSD หากคุณมี 500GB + HDD จะต้องรอเป็นเวลาสองสามชั่วโมง คุณอาจต้องการสร้าง swap ก่อนพาร์ติชันของคุณแทนที่จะย้าย / dev / sda3
สร้างระบบไฟล์ swap ใหม่บนพาร์ทิชัน swap ของคุณ:
sudo mkswap /dev/sda2
และเก็บที่ใดที่หนึ่ง UUID
รับรูทพาร์ติชันของคุณ UUID:
sudo blkid /dev/sda3
แก้ไข fstab:
sudo nano /etc/fstab
ลบหรือใส่ความคิดเห็น overlayfs และบรรทัด tmpfs
เพิ่มการแทนที่บรรทัดด้วยผลลัพธ์ blkid:
UUID=<uuid_root> / ext4 errors=remount-ro 0 1
UUID=<uuid_swap> none swap sw 0 0
ลบไฟล์:
rm /etc/crypttab
อัปเดต initramfs ของคุณเพื่อหลีกเลี่ยงข้อผิดพลาดเช่น "cryptsetup: evms_activate ไม่พร้อมใช้งาน":
sudo -i
mount /dev/sda3 /mnt
mount -t proc none /mnt/proc
mount -o bind /sys /mnt/sys
mount -o bind /dev /mnt/dev
mount /dev/sda1 /mnt/boot
chroot /mnt /bin/bash
apt-get remove --purge cryptsetup
update-initramfs -u -k all
มันใช้ได้ผลสำหรับฉัน แต่มีโอกาสที่การทำตามขั้นตอนอาจไม่เหมาะกับคุณ ก่อนที่ฉันจะหาวิธีการ update-initramfs ฉันได้ติดตั้งเคอร์เนลอีกสองสามครั้งก็ทำการแก้ไขด้วง อย่างไรก็ตามมันไม่ควรเป็นกรณีสำหรับคุณ โปรดจำไว้ว่าคำแนะนำข้างต้นอาจจะลบข้อมูลของคุณจึงควรระมัดระวังและทำให้การสำรองข้อมูล , ก่อนที่จะดำเนินการต่อไปว่า
ในกรณีที่คุณมีปัญหาเคอร์เนล (chrooted และ / boot mount):
uname -r
sudo apt-get install --reinstall linux-image-3.X.Y-ZZ-generic
แน่นอนแทนที่ linux-image-3.XY-ZZ ด้วยวันที่เคอร์เนลของคุณจาก uname
หรือด้วง (นอก chroot):
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && (boot-repair &)
รายละเอียดเพิ่มเติม: https://help.ubuntu.com/community/Boot-Repair
โชคดี
/etc/initramfs-tools/conf.d/resume
ด้วยตนเองและฉันขอแนะนำให้คัดลอกเนื้อหาระบบไฟล์ด้วยcp -a
หรือrsync -a
จะเร็วกว่าทั่วไปและปลอดภัยกว่าสำหรับ SSD
dd
คัดลอกพาร์ทิชันทั้งหมดแม้กระทั่งบล็อกที่ควรจะว่างเปล่าซึ่งทำให้การเขียนที่ไม่จำเป็นไปยัง SSD (และในบางพาร์ติชันนั้นยังเป็นอันตรายต่อประสิทธิภาพการเขียนไปยังเซลล์เกือบทั้งหมด) ไม่กี่ปีที่ผ่านมาฉันและคนอื่น ๆ ก็พบว่าการคัดลอกdd
และเปิดใช้งาน TRIM (ตัวเลือกยกเลิก EXT4) จะทำให้ TRIM ลบบล็อกที่คิดว่าว่างเปล่าและทำให้คุณติดตั้งไม่ได้หลังจากสองสามชั่วโมง
ในกรณีที่ตกลงเพื่อให้การเข้ารหัส แต่การปิดพรอมต์ข้อความรหัสผ่านวิธีการที่ง่ายกว่าคือการตั้งรหัสผ่านที่ไม่สำคัญเช่น "รหัสผ่าน" แล้วบันทึกรหัสผ่านเล็กน้อยใน initramfs ใน cleartext ปิดการใช้งานรหัสผ่านการเข้ารหัส LUKS
เป็นหลักเพิ่มเบ็ดสคริปต์ซึ่งจะเพิ่ม "keyscript" เพื่อ initramfs โดยปกติสคริปต์เหล่านี้จะใช้ในการรับรหัสผ่านทาง Bletooth จากอุปกรณ์ USB ฯลฯ แต่ในกรณีนี้ให้พิมพ์รหัสผ่านเล็กน้อย