Cách thay đổi kích thước / phóng to / phát triển phân vùng ext4 không LVM


20

Tôi đã tìm kiếm các diễn đàn, nhưng không thể tìm thấy câu trả lời phù hợp:

Tôi có Ubuntu Server 10.04 với tư cách là Máy chủ KVM và một hệ thống khách, cũng chạy 10.04. Hệ thống máy chủ sử dụng LVM và có ba khối hợp lý, được cung cấp cho khách dưới dạng thiết bị khối ảo - một cho /, một cho / nhà và một cho trao đổi. Khách đã được phân vùng mà không có LVM.

Tôi đã mở rộng khối lượng logic trong hệ thống máy chủ - khách thành công nhìn thấy đĩa ảo lớn hơn. Tuy nhiên, đĩa ảo này chứa một phân vùng "cũ tốt", vẫn có kích thước nhỏ cũ.

Đầu ra của fdisk -l là

me@produktion:/$ LC_ALL=en_US sudo fdisk -l

Disk /dev/vda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c8ce7

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *           1        3917    31455232   83  Linux

Disk /dev/vdb: 2147 MB, 2147483648 bytes
244 heads, 47 sectors/track, 365 cylinders
Units = cylinders of 11468 * 512 = 5871616 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000f2bf7

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1               1         366     2095104   82  Linux swap / Solaris
Partition 1 has different physical/logical beginnings (non-Linux?):
     phys=(0, 32, 33) logical=(0, 43, 28)
Partition 1 has different physical/logical endings:
     phys=(260, 243, 47) logical=(365, 136, 44)

Disk /dev/vdc: 225.5 GB, 225485783040 bytes
255 heads, 63 sectors/track, 27413 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00027f25

   Device Boot      Start         End      Blocks   Id  System
/dev/vdc1               1        9138    73398272   83  Linux

Đầu ra của in tất cả là

Model: Virtio Block Device (virtblk)
Disk /dev/vda: 32.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  32.2GB  32.2GB  primary  ext4         boot


Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 2147MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
 1      1049kB  2146MB  2145MB  primary  linux-swap(v1)


Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 225GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  75.2GB  75.2GB  primary  ext4

Những gì tôi muốn đạt được chỉ đơn giản là phát triển hoặc thay đổi kích thước phân vùng / dev / vdc1 để nó sử dụng toàn bộ không gian được cung cấp bởi thiết bị khối ảo / dev / vdc. Vấn đề là, khi tôi cố gắng làm điều đó với chia tay, nó phàn nàn:

(parted) select /dev/vdc                                                  
Using /dev/vdc
(parted) print                                                            
Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 225GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  75.2GB  75.2GB  primary  ext4

(parted) resize 1                                                         
WARNING: you are attempting to use parted to operate on (resize) a file system.
parted's file system manipulation code is not as robust as what you'll find in
dedicated, file-system-specific packages like e2fsprogs.  We recommend
you use parted only to manipulate partition tables, whenever possible.
Support for performing most operations on most types of file systems
will be removed in an upcoming release.
Start?  [1049kB]?                                                         
End?  [75.2GB]? 224GB                                                     
Error: File system has an incompatible feature enabled.  Compatible features are has_journal, dir_index, filetype, sparse_super and large_file.  Use tune2fs
or debugfs to remove features.

Vậy tôi có thể làm gì? Đây là một hệ thống sản xuất không đầu. Một cách an toàn để phát triển phân vùng này là gì? Tôi có thể ngắt kết nối nó, mặc dù vậy - vì vậy đây không phải là vấn đề.

Chỉnh sửa: Cfdisk đã hiển thị một không gian trống không phân vùng nhỏ, sau đó phân vùng (được gắn cờ là "boot" và Linux / ext3) và sau đó là phần còn lại của không gian không liên kết. Sau khi xóa phân vùng và tạo lại phân vùng bằng cfdisk - cfdisk hiển thị một vùng được phân vùng lớn (sẽ ổn với tôi) và vì hệ thống tệp chỉ có loại "Linux"

Resize2fs trả về lỗi này resize2fs 1.41.11 (14-Mar-2010) resize2fs: Bad magic number in super-block while trying to open /dev/vdc1 Couldn't find valid filesystem superblock

Câu trả lời:


18

Đây trang chỉ ra cách để làm điều đó là unmount, xóa, tạo lại phân vùng với kích thước mong muốn, và resize2fs sử dụng để mở rộng phân vùng. Trang man resize2fs đồng ý.

Tôi biết 'xóa phân vùng' nghe có vẻ đáng sợ, nhưng nó không thay đổi dữ liệu. Nó chỉ thay đổi điều tham chiếu đến container. Miễn là bạn KHÔNG làm mkfs.ext4bạn sẽ ổn.

Điểm bắt đầu phân vùng của bạn cần giống như cũ hoặc HĐH sẽ không biết cách diễn giải những gì đằng sau nó. Điểm cuối có thể đi xa hơn để tạo một phân vùng lớn hơn.

Tôi nghĩ rằng lỗi trong nhận xét có liên quan đến việc di chuyển điểm bắt đầu. Bạn cần bắt đầu nó tại cùng một điểm chính xác như nó đã được bắt đầu. Điểm cuối có thể di chuyển xung quanh.

Tín dụng cho psusi để đề xuất fdisk thay vì cfdisk và xác nhận vấn đề điểm bắt đầu.


Được rồi, tôi đã xóa phân vùng bằng cfdisk và tạo một phân vùng mới. Nhưng tôi không thể thay đổi kích thước2fs sau đó và tôi cũng không thể gắn kết nó nữa.
Mischa

resize2fs 1.41.11 (14 tháng 3 năm 2010) resize2fs: Số ma thuật xấu trong siêu khối trong khi cố gắng mở / dev / vdc1 Không thể tìm thấy siêu khối hệ thống tệp hợp lệ.
Mischa

1
thực tế, cfdisk đã cho thấy một không gian trống không phân vùng nhỏ, sau đó phân vùng (được gắn cờ là "boot" và Linux / ext3) và sau đó là phần còn lại của không gian không liên kết. Sau khi xóa phân vùng và tạo lại phân vùng bằng cfdisk - cfdisk hiển thị một vùng được phân vùng lớn (sẽ ổn với tôi) và vì hệ thống tệp chỉ có loại "Linux".
Mischa

8
Bạn cần tạo lại phân vùng để nó bắt đầu tại cùng một khu vực mà nó đã làm ban đầu. Bạn không thể làm điều này với cfdisk. Sử dụng fdisk hoặc chia tay và đặt chúng ở chế độ sector.
psusi

1
Có cách nào để thay đổi kích thước phân vùng ext4 theo cách để bắt đầu phân vùng được di chuyển không? Bởi vì tôi có không gian trống ở phía trước phân vùng ext4 hiện tại, không phải ở phía sau ... may mắn là tôi có nhiều không gian trống hơn phân vùng lớn, vì vậy tôi đoán tôi có thể làm như sau: sao chép toàn bộ phân vùng ra phía trước, loại bỏ cái ở phía sau, và sau đó thay đổi kích thước cái đã di chuyển đến toàn bộ kích thước? nhưng đó dường như là một vụ hack khủng khiếp đối với tôi tại thời điểm này ...
mã hóa

6

Một ví dụ:

/ dev / sdb2 là phân vùng / boot. Nó là 100 MB, khá nhỏ. Để tăng phân vùng ext4 này trên một hệ thống đang chạy (dưới dạng root hoặc sudo):

khởi động / khởi động

chia tay / dev / sdb

(chia tay) in

Model: ATA Patriot Torqx 2 (scsi)
Đĩa / dev / sdb: 32.0GB
Kích thước ngành (logic / vật lý): 512B / 512B
Bảng phân vùng: msdos

Số Bắt đầu Loại Kết thúc Kích cỡ Hệ thống tệp Cờ
1 1049kB 12,9GB Loại chính 12,9GB = 83
2 12,9GB 13,0GB 107MB loại ext4 chính = 83

(chia tay) rm 2

(chia tay) mkpart

Loại phân vùng? chính / mở rộng?
Loại hệ thống tệp chính ? [ext2]?
Khởi đầu?
Kết thúc 12,9GB ? 13,4GB

(chia tay) bỏ

thay đổi kích thước2fs / dev / sdb2

resize2fs 1.42.6 (21-tháng 9 năm 2012)
Hệ thống tập tin tại / dev / sdb2 được gắn trên / boot;
Thay đổi kích thước trực tuyến bắt buộc old_desc_blocks = 1, new_desc_blocks = 2
Hệ thống tập tin trên / dev / sdb2 hiện dài 498688 khối.

làm xong!

Tất cả dữ liệu vẫn còn tại chỗ. / boot đã sẵn sàng để sử dụng và 472MB lớn (chia tay không an toàn với kích thước, hãy đọc hướng dẫn để biết lý do)

Tất cả dữ liệu đã được sao lưu trước đó, nhưng chỉ là một biện pháp phòng ngừa. Tôi khuyên bạn nên làm như vậy.

Sử dụng lệnh sau để tìm quá trình dừng việc ngắt kết nối / boot nếu thất bại:

lsof / khởi động

Chúc may mắn!


2
Bạn cần sử dụng các đơn vị của các lĩnh vực, không phải GB, để chắc chắn rằng bạn có được nó ở cùng một nơi.
psusi

0

Nếu bạn cố gắng xóa và tạo lại một phân vùng, khi phân vùng của bạn bắt đầu dưới 2048, bạn có thể gặp một số rắc rối như tôi gặp phải resize2fs.

Couldn't find valid filesystem superblock.

Từ phiên bản fdisk 2.17.2 , fdisk IIUC buộc bạn phải bắt đầu từ năm 2048 để đảm bảo ổ cứng của bạn được "căn chỉnh chính xác". Vì vậy, nếu phân vùng ban đầu của bạn bắt đầu trước năm 2048, bạn đang trong một chuyến đi gập ghềnh đang cố gắng tạo lại phân vùng.

Cách tiếp cận tốt nhất là rsync khi sao chép đĩa .

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.