Thay đổi kích thước phân vùng khởi động với mã hóa toàn bộ đĩa


12

Tôi đã thấy các câu trả lời cho câu hỏi chung liên quan đến thay đổi kích thước phân vùng khởi động. Trong trường hợp của tôi, tôi đã cài đặt Ubuntu 12.04 Alternate với mã hóa toàn bộ đĩa. Vì ổ đĩa không thể được gắn trong quá trình thay đổi kích thước, điều này sẽ không làm hỏng phân vùng chính?

Tôi đã sao lưu mọi thứ để có khả năng cài đặt lại, nhưng tôi không biết cách chỉ định kích thước phân vùng khởi động trước khi mã hóa.

Câu trả lời:


3

Tôi biết câu hỏi này đã cũ, nhưng xuất hiện khi tìm kiếm vấn đề phân vùng khởi động nhỏ và sử dụng mã hóa đĩa.

Trình cài đặt Ubuntu ubiquitysử dụng partmanđể phân vùng. Khi tùy chọn "Sử dụng toàn bộ đĩa" được chọn, các cấu hình phân vùng đến từ các tệp công thức partman trong /lib/partman/recipes-[arch]/*/lib/partman/recipes/*trên đĩa CD trực tiếp. Tìm công thức được sử dụng bởi trình cài đặt và sửa đổi kích thước tối đa cho /bootphân vùng. Trên hệ thống của tôi, công thức mặc định được sử dụng là /lib/partman/recipes/30atomic. Mở Terminal:

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

Chuyển đến phần dành cho phân vùng khởi động và thay đổi số thứ ba (256 bên dưới) thành kích thước bạn muốn (Tôi khuyên dùng ít nhất 512):

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

Phần này cho biết kích thước sẽ nằm trong khoảng từ 128M đến 256M với mức ưu tiên là 512, xác định kích thước của phân vùng này quan trọng như thế nào đối với các phân vùng khác.

Lưu nó với Ctrl+ O, Enter. Sau đó khởi động trình cài đặt, cài đặt như bình thường.


2

Tôi giả sử bằng mã hóa toàn bộ đĩa, bạn có nghĩa là có một phân vùng khởi động nhỏ không được mã hóa và một phân vùng khác là một khối lượng vật lý để mã hóa (dm-crypt). Nếu không có bất kỳ khoảng trống nào ở giữa chúng, bạn sẽ không thể thay đổi kích thước phân vùng được mã hóa để tạo thêm không gian cho / boot.

Hãy xem câu trả lời của tôi ở đây - điều này có thể giúp ích.


0

Có, thay đổi kích thước khởi động là có thể nhưng nó rất phức tạp. Tôi sẽ chỉ thử điều này sau khi sao lưu TẤT CẢ dữ liệu của bạn. Nếu bạn mắc lỗi, khả năng mất dữ liệu là khá cao. Bạn sẽ muốn có sẵn một số USB / CD có khả năng khởi động Ubuntu vì bạn nên thực hiện các thao tác này sau khi khởi động vào USB / CD trực tiếp.

Tôi đã phát hiện ra một cách khó khăn khi cộng đồng linux thay đổi các yêu cầu liên quan đến kích thước yêu cầu của phân vùng khởi động. Trước đây, 100-200 MB là đủ để khởi động nhưng sau đó cộng đồng đã tăng gấp đôi yêu cầu về kích thước của nó. Điều này tác động đến người dùng đang theo các hướng dẫn trước đó.

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

Đối với các yêu cầu hiện tại cho / boot tôi sẽ giới thiệu cho bạn các hướng dẫn chính thức.

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

Tại thời điểm viết bài này, các hướng dẫn khuyến nghị / khởi động từ 250MB đến 1GB dung lượng. Tôi muốn giới thiệu một phân vùng khởi động riêng biệt với không gian cần thiết lớn nhất. Phân vùng khởi động cần phải được mã hóa trong quá trình khởi động. Quá trình khởi động sẽ được gắn các phân vùng được mã hóa khác nhau trên đường đi, ví dụ như các đĩa được mã hóa LUKS hoặc các thư mục HOME được mã hóa và có sự khác biệt giữa các phương pháp này. Theo kinh nghiệm của tôi, việc sử dụng các tùy chọn mã hóa ổ cứng Ubuntu khác nhau có xu hướng dẫn đến các vấn đề khi nâng cấp Ubuntu sau này khi yêu cầu can thiệp thủ công.

Để có một cái nhìn tổng quan, tôi sẽ giới thiệu cho bạn bài viết này tôi coi là được viết tốt.

'LUKS mã hóa nhiều phân vùng trên Debian / Ubuntu bằng một cụm mật khẩu duy nhất'

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

Khi bạn thấy cần phải thay đổi phân vùng của mình, tôi thấy bài đăng này rất hữu ích.

'Cách thay đổi kích thước hệ thống tệp được mã hóa LUKS'

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

Bây giờ vì gparted không hỗ trợ di chuyển các phân vùng LUKS được mã hóa, điều này không thể được thực hiện bằng cách sử dụng các lệnh gparted từ dòng lệnh cũng như GUI. Tôi đã thấy rằng bạn có thể sử dụng gparted để tạo phân vùng và sau đó sử dụng dd để di chuyển các phân vùng được mã hóa của bạn xung quanh bằng cách sử dụng các bản sao của ngành. Điều này không liên quan đến việc có thể tính toán kích thước phân chia theo các lĩnh vực. Làm sai có nghĩa là mất dữ liệu và cài đặt lại.

Trong trường hợp của tôi, tôi cần tăng kích thước của phần khởi động của mình từ 537MB lên 1GB. Tôi cần điều này như là một phần của bản nâng cấp của tôi từ Ubuntu 12.04 đến 14.04 để bản nâng cấp Ubuntu có thể tìm đủ không gian trên / boot. Có, bạn có thể xóa autoremove để giải phóng không gian trong / boot nhưng các yêu cầu chung đã thay đổi nên tôi cũng đang mở rộng boot để điều chỉnh theo các nguyên tắc đó. Đây là cách bố trí phân vùng của tôi.

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

Tôi có đĩa được mã hóa LUKS ở phần 3 và khởi động của tôi trong phân vùng số 1 vì vậy không có đủ không gian để mở rộng / khởi động. Lưu ý Gparted không thể di chuyển phân vùng số 3 vì đây là phân vùng được mã hóa. Để khắc phục điều này, tôi đã tạo một phần thứ tư ở cuối đĩa có cùng kích thước trong các cung và sử dụng dd để sao chép nội dung của phân vùng # 3 sang phân vùng # 4. Tôi thấy nó hữu ích để thay đổi kích thước gốc của tôi đến kích thước tối thiểu cần thiết. Vì vậy, tôi đã thực hiện các thao tác sau để giải quyết kích thước của tôi / boot.

  1. Thu gọn hệ thống tập tin gốc trong phân vùng # 3
  2. Thay đổi kích thước phân vùng # 3 (nhỏ hơn)
  3. Tạo phân vùng số 4 có cùng kích thước (ở cuối đĩa)
  4. Được sử dụng DD để sao chép các lĩnh vực của phân vùng # 3 sang phân vùng số 4
  5. Đã xóa phân vùng số 3 để giải phóng không gian trên đĩa
  6. Được sử dụng Gparted để thay đổi kích thước và di chuyển các phân vùng # 1 và # 2
  7. Tạo một phần # 3 mới có cùng kích thước với phân số # 3 (hoặc phân vùng số 4) bị thu hẹp
  8. Được sử dụng DD để sao chép các lĩnh vực của phân vùng số 4 sang phân vùng số 3
  9. Xóa phân vùng số 4
  10. Mở rộng kích thước của phần # 3 thành kích thước # 3 ban đầu
  11. Đã cập nhật hệ thống tệp có trong phân vùng được mã hóa # 3 vào không gian còn lại

Bằng cách này, tôi có thể xóa phân vùng # 3 và sử dụng gparted để di chuyển và phóng to phân vùng # 1 và # 2. Đọc qua các hướng dẫn ở trên sẽ cung cấp đủ cái nhìn sâu sắc để điều hướng con đường phía trước của bạn. Nó không được hiển thị ở đây nhưng khi thu hẹp phân vùng gốc của tôi, tôi đã xóa một nhóm khối lượng trao đổi trên cùng một phân vùng và tạo lại nó ở cuối. Tất cả điều này đang được thực hiện trong khi khởi động vào ổ flash USB Linux Live. Sau đây là một số lưu ý của tôi không có sẵn trong hướng dẫn ở trên.

Tôi thấy blockdev hữu ích trong việc hiển thị kích thước của các phân vùng trong các ngành. Điều này giúp tôi khi tôi đang tính toán kích thước ngành.

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

Lệnh Gparted 'unit s' sẽ hiển thị bảng phân vùng của bạn trong các sector. Tất cả các kích thước phân vùng, xóa và tạo được thực hiện bằng Gparted. Bằng cách này, bạn có thể thực hiện tất cả các phép toán trong các lĩnh vực. 'Đơn vị nhỏ gọn' sẽ chuyển về định dạng MB / GB, nếu bạn muốn xem toán học ngành trông như thế nào.

(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

Lệnh resize2fs có một tùy chọn tiện lợi để thay đổi kích thước thành Tối thiểu. Ngoài ra, tôi đã xóa nhóm khối lượng trao đổi của mình trong phần này.

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.

Khi bạn thay đổi kích thước bảng phân vùng, hãy quay lại và cập nhật gparted. Đã sử dụng 4096 * 2260992 và sau đó blockdev để kiểm tra toán ở đây. Đây là lệnh 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

Lưu ý kích thước đếm khu vực của phân vùng số 3 nhỏ hơn danh sách ban đầu của tôi tức là Cách này bạn có thể sử dụng gparted để tạo phân vùng số 4 trước bản sao DD. Việc thu hẹp giải phóng thêm không gian đĩa cho bản sao đó.

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

Sau khi sao chép DD, hãy tiếp tục và phóng to kích thước phân vùng / boot của bạn. Bạn sẽ xóa phân vùng số 3 ban đầu và sau đó tạo lại phân vùng số 3 tại một vị trí khu vực mới sau khi phân vùng # 1 và # 2 được mở rộng. Một lần nữa blockdev đã được sử dụng để đo kích thước khu vực. Tôi đã tạo phân vùng số 3 này có cùng kích thước với phân vùng số 4 nhỏ hơn phân số 3 ban đầu. Sử dụng DD để sao chép phân vùng số 4 vào phân vùng số 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

Sau khi sao chép, xóa phân vùng số 4 và mở rộng kích thước của phân vùng số 3. Trong trường hợp của tôi, tôi chỉ khôi phục lại phần 3 để kích thước nó khi tôi bắt đầu. Tôi đã có đủ không gian để làm điều này.

(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

Khi gparted tăng kích thước phân vùng, nó không cập nhật hệ thống tập tin. Lưu ý hệ thống tập tin được chứa bên trong phân vùng được mã hóa để nó phải được mở và gắn kết để thực hiện thay đổi này. Sử dụng lệnh sau để khắc phục điều này. Điều này có thể được thực hiện trên hệ thống trực tiếp nếu cần thiết.

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.

Tóm lại, mặc dù Gparted không hỗ trợ hoạt động của anh ấy một cách tự nhiên nhưng nó là một công cụ hữu ích đáng kinh ngạc để quản lý các phân vùng. Theo tôi là hữu ích hơn một chút so với fdisk. Giữa Gparted và DD tôi đã có thể quản lý các phân vùng của mình và sau đó chỉ cần sử dụng các công cụ Ubuntu để nâng cấp từ 12.04 LTS lên 14.04 LTS.


Phân vùng khởi động không phải không được mã hóa. Tôi không có phân vùng khởi động / riêng biệt, nó chỉ là một phần của rootfs được mã hóa chính của tôi. Grub có thể khởi động trong cấu hình như vậy tốt. II khởi động từ phân vùng 1 MiB EFI của tôi. Và trong khi thay đổi kích thước / khởi động mất khoảng các bước này, không cần phải thực hiện thủ công. Bạn chỉ có thể sử dụng KDE Partition Manager 3.0 để thực hiện tất cả các bước này. Ví dụ: tôi thực hiện một số thao tác ở đây trên các rootfs được mã hóa của mình từ bên trong hệ thống mà không cần sử dụng live cd youtube.com/watch?v=FKCQ7pJN1vY Mặc dù cd trực tiếp là cần thiết để di chuyển phân vùng luks.
Andrius tikonas
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.