การปรับขนาดบูตพาร์ติชันด้วยการเข้ารหัสดิสก์เต็มรูปแบบ


12

ฉันได้เห็นคำตอบสำหรับคำถามทั่วไปเกี่ยวกับการปรับขนาดพาร์ติชันสำหรับเริ่มระบบ ในกรณีของฉันฉันได้ติดตั้ง Ubuntu 12.04 Alternate พร้อมการเข้ารหัสดิสก์เต็มรูปแบบ เนื่องจากไม่สามารถติดตั้งไดรฟ์ระหว่างการดำเนินการปรับขนาดได้พาร์ติชันหลักนี้จะไม่เสียหายหรือไม่

ฉันมีข้อมูลสำรองทุกอย่างดังนั้นฉันจึงสามารถทำการติดตั้งใหม่ได้ แต่ฉันไม่ทราบวิธีระบุขนาดพาร์ติชันสำหรับบูตก่อนการเข้ารหัส

คำตอบ:


3

ฉันรู้ว่าคำถามนี้เก่า แต่เกิดขึ้นเมื่อค้นหาปัญหาพาร์ทิชันบูตขนาดเล็กและใช้การเข้ารหัสดิสก์

โปรแกรมติดตั้ง Ubuntu ubiquityใช้partmanสำหรับการแบ่งพาร์ติชัน เมื่อเลือกตัวเลือก "ใช้ทั้งดิสก์" การกำหนดค่าพาร์ติชั่นจะมาจากไฟล์สูตรพาร์ทแมนใน/lib/partman/recipes-[arch]/*และ/lib/partman/recipes/*ในซีดีสด ค้นหาสูตรที่โปรแกรมติดตั้งใช้และแก้ไขขนาดสูงสุดสำหรับ/bootพาร์ติชัน /lib/partman/recipes/30atomicในระบบของฉันสูตรเริ่มต้นที่ใช้คือ เปิด Terminal:

ubuntu@ubuntu:~$ sudo nano /lib/partman/recipes/30atomic

ไปที่ส่วนสำหรับพาร์ติชันสำหรับบูตและเปลี่ยนหมายเลขที่สาม (256 ด้านล่าง) เป็นขนาดที่คุณต้องการ (ฉันแนะนำอย่างน้อย 512):

128 512 256 ext2
    $defaultignore{ }
    method{ format }
    format{ }
    use_filesystem{ }
    filesystem{ ext2 }
    mountpoint{ /boot }

ส่วนนี้กล่าวว่าขนาดจะอยู่ระหว่าง 128M ถึง 256M โดยมีความสำคัญเป็น 512 ซึ่งจะกำหนดขนาดของพาร์ติชันนี้ที่มีความสำคัญต่อผู้อื่น

บันทึกด้วยCtrl+ ,O Enterจากนั้นเริ่มตัวติดตั้งติดตั้งตามปกติ


2

ฉันถือว่าการเข้ารหัสดิสก์เต็มคุณหมายถึงมีพาร์ติชันสำหรับเริ่มระบบที่ไม่ได้เข้ารหัสขนาดเล็กและอีกพาร์ติชันซึ่งเป็นฟิสิคัลวอลุ่มสำหรับการเข้ารหัส (dm-crypt) หากไม่มีที่ว่างในระหว่างนั้นคุณจะไม่สามารถปรับขนาดพาร์ติชันที่เข้ารหัสโดยไม่ทำลายเพื่อสร้างพื้นที่เพิ่มเติมสำหรับ / boot

ดูคำตอบของฉันที่นี่ - สิ่งนี้อาจช่วยได้


0

ใช่การปรับขนาดการบูตเป็นไปได้ แต่มันซับซ้อนมาก ฉันจะลองทำสิ่งนี้หลังจากสำรองข้อมูลทั้งหมดของคุณแล้ว หากคุณทำผิดพลาดโอกาสในการสูญหายของข้อมูลค่อนข้างสูง คุณจะต้องการให้ Ubuntu พร้อมใช้งาน USB / CD ที่สามารถบู๊ตได้เนื่องจากคุณควรทำการดำเนินการเหล่านี้หลังจากบูตไปยัง USB / CD สด

ฉันพบวิธีที่ยากในขณะที่กลับเมื่อชุมชน linux เปลี่ยนข้อกำหนดเกี่ยวกับขนาดที่ต้องการของพาร์ทิชันบูต ก่อนหน้านี้ 100-200 MB นั้นเพียงพอสำหรับการบู๊ต แต่แล้วชุมชนก็เพิ่มขนาดความต้องการเป็นสองเท่า สิ่งนี้ส่งผลกระทบต่อผู้ใช้ที่ปฏิบัติตามแนวทางก่อนหน้านี้

/server/334663/what-is-the-recommended-size-for-a-linux-boot-partition

สำหรับความต้องการในปัจจุบันสำหรับ / boot ฉันจะแนะนำคุณให้ทราบแนวทางอย่างเป็นทางการ

https://help.ubuntu.com/community/DiskSpace

ในขณะที่เขียนนี้แนวทางแนะนำ / boot จาก 250MB ถึง 1GB ของพื้นที่ ฉันอยากจะแนะนำพาร์ติชันสำหรับบูตแยกต่างหากด้วยพื้นที่ที่ต้องการมากที่สุด พาร์ติชันสำหรับเริ่มระบบจำเป็นต้องถูกเข้ารหัสในระหว่างกระบวนการเริ่มระบบ กระบวนการบูตจะทำการติดตั้งพาร์ติชั่นที่เข้ารหัสที่แตกต่างกันไปพร้อมกันตัวอย่างเช่นดิสก์ที่เข้ารหัสของ LUKS หรือไดเรกทอรี HOME ที่เข้ารหัสและมีความแตกต่างระหว่างวิธีการเหล่านี้ จากประสบการณ์ของฉันการใช้ตัวเลือกการเข้ารหัสฮาร์ดดิสก์ของ Ubuntu มีแนวโน้มที่จะทำให้เกิดปัญหาเมื่ออัพเกรด Ubuntu ในภายหลังว่าต้องการการแทรกแซงด้วยตนเอง

สำหรับภาพรวมทั่วไปฉันจะส่งต่อคุณไปยังบทความนี้ซึ่งฉันคิดว่าเขียนได้ดี

'LUKS เข้ารหัสหลายพาร์ติชันบน Debian / Ubuntu ด้วยข้อความรหัสผ่านเดียว'

https://www.martineve.com/2012/11/02/luks-encrypting-multiple-partitions-on-debianubuntu-with-a-single-passphrase/

เมื่อคุณต้องการเปลี่ยนพาร์ติชันของคุณฉันพบว่าโพสต์นี้มีประโยชน์มาก

'วิธีปรับขนาดระบบไฟล์ที่เข้ารหัส LUKS'

https://ubuntuforums.org/showthread.php?t=726724

ขณะนี้เนื่องจาก gparted ไม่สนับสนุนการย้ายพาร์ติชัน LUKS ที่เข้ารหัสสิ่งนี้ไม่สามารถทำได้โดยใช้คำสั่ง gparted จากบรรทัดคำสั่งหรือ GUI ฉันพบว่าคุณสามารถใช้ gparted เพื่อสร้างพาร์ติชันแล้วใช้ dd เพื่อย้ายพาร์ติชันที่เข้ารหัสของคุณไปรอบ ๆ โดยใช้เซกเตอร์โดยการคัดลอกเซกเตอร์ สิ่งนี้เกี่ยวข้องกับความสามารถในการคำนวณขนาดของพาร์ติชั่นในแง่ของภาค ทำผิดหมายถึงการสูญเสียข้อมูลและติดตั้งใหม่

ในกรณีของฉันฉันต้องเพิ่มขนาดของพาร์ติชันการบูตจาก 537MB เป็น 1GB ฉันต้องการสิ่งนี้เป็นส่วนหนึ่งของการอัปเกรดจาก Ubuntu 12.04 ถึง 14.04 เพื่อให้การอัปเกรด Ubuntu สามารถหาพื้นที่บน / boot ได้เพียงพอ ใช่คุณสามารถลบ autoremove เพื่อเพิ่มพื้นที่ว่างใน / boot แต่ข้อกำหนดทั่วไปมีการเปลี่ยนแปลงดังนั้นฉันจึงขยายการบูตเพื่อปรับให้เข้ากับแนวทางเหล่านั้นเช่นกัน นี่คือเค้าโครงพาร์ติชันของฉัน

Partition Table: gpt

Number  Start   End    Size   File system  Name  Flags
 1      1049kB  538MB  537MB  fat32              boot
 2      538MB   794MB  256MB  ext2
 3      794MB   240GB  239GB

ฉันมีดิสก์ที่เข้ารหัสของ LUKS ในส่วนที่ 3 และการบู๊ตของฉันในพาร์ติชัน # 1 จึงมีพื้นที่ไม่เพียงพอที่จะขยาย / บู๊ต หมายเหตุ Gparted ไม่สามารถย้ายพาร์ติชัน # 3 ได้เนื่องจากเป็นพาร์ติชันที่เข้ารหัส ในการแก้ไขปัญหานี้ฉันได้สร้างพาร์ทิชันที่สี่ที่ส่วนท้ายของดิสก์ที่มีขนาดเท่ากันในเซกเตอร์และใช้ dd เพื่อคัดลอกเนื้อหาของพาร์ติชัน # 3 ไปยังพาร์ติชัน # 4 ฉันพบว่ามีประโยชน์ในการปรับขนาดรูตของฉันให้เล็กที่สุดเท่าที่จำเป็น ดังนั้นฉันได้ดำเนินการดังต่อไปนี้เพื่อระบุขนาดของ / boot ของฉัน

  1. หดระบบไฟล์รูทในพาร์ติชัน # 3
  2. ปรับขนาดพาร์ติชัน # 3 (ให้เล็กลง)
  3. สร้างพาร์ติชั่น # 4 ที่มีขนาดเท่ากัน (ท้ายดิสก์)
  4. ใช้ DD เพื่อคัดลอกเซ็กเตอร์ของพาร์ติชัน # 3 ไปยังพาร์ติชัน # 4
  5. ลบพาร์ติชัน # 3 เพื่อเพิ่มพื้นที่ว่างในดิสก์
  6. ใช้ Gparted เพื่อปรับขนาดและย้ายพาร์ติชัน # 1 และ # 2
  7. สร้างพาร์ติชั่น # 3 ใหม่ที่มีขนาดเดียวกันกับ shrunk # 3 (หรือพาร์ติชัน # 4)
  8. ใช้ DD เพื่อคัดลอกเซ็กเตอร์ของพาร์ติชัน # 4 ไปยังพาร์ติชัน # 3
  9. ลบพาร์ติชัน # 4
  10. ขยายขนาดของพาร์ติชั่น # 3 เป็นขนาด # 3 ดั้งเดิม
  11. อัปเดตระบบไฟล์ที่มีอยู่ในพาร์ติชั่นที่เข้ารหัส # 3 เป็นพื้นที่ที่เหลือ

วิธีนี้ฉันสามารถลบพาร์ติชัน # 3 และใช้ gparted เพื่อย้ายและขยายพาร์ติชัน # 1 และ # 2 การอ่านคำแนะนำข้างต้นควรให้ข้อมูลเชิงลึกที่เพียงพอเพื่อนำทางไปข้างหน้า ไม่แสดงที่นี่ แต่ในการลดขนาดพาร์ติชันรากของฉันฉันลบกลุ่มวอลุ่ม swap บนพาร์ติชันเดียวกันและสร้างใหม่ในตอนท้าย ทั้งหมดนี้กำลังดำเนินการอยู่ในขณะบู๊ตเป็นแฟลชไดรฟ์ Linux Live USB ต่อไปนี้เป็นบันทึกบางส่วนของฉันที่ยังไม่พร้อมใช้งานในคู่มือด้านบน

ฉันพบว่า blockdev มีประโยชน์ในการแสดงขนาดของพาร์ติชันในเซกเตอร์ สิ่งนี้ช่วยฉันในขณะที่ฉันกำลังคำนวณขนาดเซกเตอร์

sudo blockdev --getsize /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500p2
499712

คำสั่ง Gparted 'หน่วย' จะแสดงตารางพาร์ติชันของคุณในภาค การกำหนดขนาดการลบและการสร้างพาร์ติชันทั้งหมดเสร็จสิ้นโดยใช้ Gparted วิธีนี้คุณสามารถทำคณิตศาสตร์ทั้งหมดในภาคได้ 'หน่วยกระชับ' จะเปลี่ยนกลับเป็นรูปแบบ MB / GB หากคุณต้องการดูว่าภาคคณิตศาสตร์มีลักษณะอย่างไร

(parted) unit s
(parted) p                                                                
Model: Linux device-mapper (mirror) (dm)
Disk /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500: 468857096s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start     End         Size        File system  Name  Flags
 1      2048s     1050623s    1048576s    fat32              boot
 2      1050624s  1550335s    499712s     ext2
 3      1550336s  456656896s  455106561s

คำสั่ง resize2fs มีตัวเลือกที่ดีเพื่อปรับขนาดเป็นขั้นต่ำ นอกจากนี้ฉันลบกลุ่มวอลุ่มการสลับระหว่างส่วนนี้

ubuntu@ubuntu:~$ sudo resize2fs -M -p /dev/ubuntu-vg/root
resize2fs 1.42.9 (4-Feb-2014)
Resizing the filesystem on /dev/ubuntu-vg/root to 2261211 (4k) blocks.
Begin pass 3 (max = 1600)
Scanning inode table          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/ubuntu-vg/root is now 2260992 blocks long.

เมื่อคุณปรับขนาดตารางพาร์ทิชันกลับไปและอัปเดต gparted ใช้ 4096 * 2260992 แล้วปิดกั้นเพื่อตรวจสอบคณิตศาสตร์ที่นี่ นี่คือคำสั่ง gparted

(parted) resizepart 3
End?  [224419843s]? 225970179s 
Warning: Shrinking a partition can cause data loss, are you sure you want to continue?
Yes/No? yes                                                               
Device /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500p3 not found
device-mapper: table ioctl on  failed: No such device or address
(parted) p                                                                
Model: Linux device-mapper (mirror) (dm)
Disk /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500: 468857096s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start     End         Size        File system  Name  Flags
 1      2048s     1050623s    1048576s    fat32              boot
 2      1050624s  1550335s    499712s     ext2
 3      1550336s  225970179s  224419844s

โปรดสังเกตว่าขนาดการนับเซกเตอร์ของพาร์ติชัน # 3 มีขนาดเล็กกว่ารายการเดิมของฉันนั่นคือวิธีนี้คุณสามารถใช้ gparted เพื่อสร้างพาร์ติชัน # 4 ล่วงหน้าของการคัดลอก DD การย่อขนาดทำให้เนื้อที่ดิสก์เพิ่มขึ้นสำหรับการทำสำเนานั้น

ubuntu@ubuntu:~$ sudo dd if=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 of=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 bs=512 skip=1550336 count=224419844 seek=244437218
224419844+0 records in
224419844+0 records out
114902960128 bytes (115 GB) copied, 2146.1 s, 53.5 MB/s

หลังจากคัดลอก DD ไปข้างหน้าและขยายขนาดของพาร์ติชัน / boot ของคุณ คุณจะลบพาร์ติชัน # 3 ต้นฉบับจากนั้นสร้างพาร์ติชันใหม่ # 3 ที่ตำแหน่งเซกเตอร์ใหม่หลังจากพาร์ติชันที่ขยาย # 1 และ # 2 อีกครั้ง blockdev ใช้ในการวัดขนาดภาค ฉันสร้างพาร์ติชัน # 3 นี้เป็นขนาดเดียวกับพาร์ติชัน # 4 ซึ่งเล็กกว่า # 3 เดิม ใช้ DD เพื่อคัดลอกเซกเตอร์ # 4 ไปยังพาร์ติชัน # 3

ubuntu@ubuntu:~$ sudo dd if=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 of=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 bs=512 skip=244437218 count=224419844 seek=9242624

หลังจากคัดลอกลบพาร์ติชัน # 4 และขยายขนาดของพาร์ติชัน # 3 ในกรณีของฉันฉันเพิ่งเรียกคืนไปยังส่วนที่ 3 ขนาดเมื่อมันเริ่ม ฉันมีพื้นที่มากพอที่จะทำสิ่งนี้

(parted) resizepart 3                                                     
End?  [464349185s]? 464349184s                                           
Warning: Shrinking a partition can cause data loss, are you sure you want to continue?
Yes/No? y                                                                 
Device /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500p3 not found
device-mapper: table ioctl on  failed: No such device or address
(parted) p                                                                
Model: Linux device-mapper (mirror) (dm)
Disk /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500: 468857096s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start     End         Size        File system  Name  Flags
 1      2048s     4192255s    4190208s    fat32              boot
 2      5146624s  9242623s    4096000s    ext2
 3      9242624s  464349184s  455106561s

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

user@zagyg:/$ sudo resize2fs /dev/ubuntu-vg/root
resize2fs 1.42.9 (4-Feb-2014)
Filesystem at /dev/ubuntu-vg/root is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 13
The filesystem on /dev/ubuntu-vg/root is now 54266880 blocks long.

โดยสรุปขณะที่ Gparted ไม่สนับสนุนการทำงานของเขา แต่เป็นเครื่องมือที่มีประโยชน์อย่างมากสำหรับการจัดการพาร์ติชัน ในความคิดของฉันมีประโยชน์มากกว่า fdisk เล็กน้อย ระหว่าง Gparted และ DD ฉันสามารถจัดการพาร์ติชั่นของฉันแล้วใช้เครื่องมือ Ubuntu เพื่ออัพเกรดจาก 12.04 LTS เป็น 14.04 LTS


พาร์ทิชันสำหรับบูตไม่ต้องถูกเข้ารหัส ฉันไม่มีพาร์ติชั่น / บูตแยกต่างหากมันเป็นเพียงส่วนหนึ่งของรูทที่เข้ารหัสของฉัน ด้วงสามารถบูตในการกำหนดค่าดังกล่าวได้ดี II บูตจากพาร์ติชัน 1 MiB EFI ของฉัน และในขณะที่การปรับขนาด / บูตใช้ขั้นตอนเหล่านี้โดยประมาณไม่จำเป็นต้องทำด้วยตนเอง คุณสามารถใช้ KDE Partition Manager 3.0 เพื่อทำตามขั้นตอนเหล่านี้ทั้งหมด เช่นฉันทำการดำเนินการบางอย่างที่นี่ใน rootfs ที่เข้ารหัสของฉันจากภายในระบบโดยไม่ต้องใช้ live cd youtube.com/watch?v=FKCQ7pJN1vYแม้ว่า Live CD จำเป็นต้องย้ายพาร์ติชัน luks
Andrius Štikonas
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.