Làm cách nào để mở rộng kích thước phân vùng ext4 trên debian


26

Tôi có một ổ đĩa với cấu hình này:

fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000f1b8b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        2612    20971520   83  Linux
/dev/sda3           60736       60801      525312   82  Linux swap / Solaris

Có 478GB dung lượng chưa được phân bổ, làm cách nào để thêm dung lượng này vào / dev / sda1 mà không làm mất dữ liệu hiện có trên / dev / sda1? (hệ thống tập tin là ext4).

LƯU Ý: đó là một máy chủ chỉ có SSH, không có GUI để chạy các công cụ như gparted.


Tôi có thể netboot máy chủ và sử dụng nó trong khi ổ đĩa không được kết nối.
Seb

Mục đặc biệt này đã được bảo hiểm nhiều lần trong các trang web SE. Tốt nhất nên làm thêm một chút nghiên cứu trước khi đăng câu hỏi.
mdpc

Ngoài ra, hãy xem Askubfox.com/a/937351/621883, đặc biệt là câu trả lời có chứa growpart và resize2fs rất hữu ích cho tôi.
klor

Câu trả lời:


38

Phóng to phân vùng : fdisk -u /dev/sda.

p để in bảng phân vùng, ghi chú số, bắt đầu, kết thúc, loại sda1.

Xóa nó d::

Tái tạo nó với cùng một số (1), bắt đầu và gõ nhưng với một kết thúc lớn hơn (chú ý không trùng lặp với các phân vùng khác). Cố gắng căn chỉnh mọi thứ trên một ranh giới megabyte cuối cùng , biến nó thành bội số của 2048 trừ 1. Thay đổi loại nếu cần với t(đối với các phân vùng giữ một extXhoặc btrfshệ thống tệp, mặc định 83là ổn).

Sau đó wđể viết và qbỏ.

Bảng phân vùng sẽ được sửa đổi nhưng kernel sẽ không thể tính đến điều đó vì một số phân vùng được gắn kết.

Tuy nhiên, nếu các phân vùng đang sử dụng chỉ được mở rộng, bạn sẽ có thể buộc kernel thực hiện bố cục mới với:

partx /dev/sda

Nếu thất bại, bạn sẽ cần phải khởi động lại. Hệ thống nên khởi động tốt.

Sau đó, thay đổi kích thước hệ thống tập tin để nó lan rộng đến phạm vi của phân vùng được mở rộng:

resize2fs /dev/sda1

ext4sẽ hoạt động tốt ngay cả trên một FS trực tiếp.


Tôi biết điều này là cũ, nhưng điều này sẽ giữ dữ liệu nếu bạn xóa phân vùng?
Luke Luke REINSTATE MONICA của Canada

3
@CanadianLuke, vâng, xóa phân vùng trong fdisk chỉ sửa đổi bảng phân vùng. Nếu bạn tạo lại nó cùng kích thước, sẽ không có thay đổi nào cả. Dữ liệu không bao giờ bị thay đổi trừ khi bạn thu nhỏ phân vùng và tạo một phân vùng logic hoặc mở rộng khác ở giữa phân vùng của bạn, trong trường hợp đó, bản ghi phân vùng cho phân vùng mở rộng / logic đó sẽ được ghi trên một số dữ liệu ở đó.
Stéphane Chazelas

Điều này cũng hoạt động tuyệt vời cho các phân vùng ntfs (với một khối lượng hiện có, với dữ liệu).
Kenny Evitt

Điều đó nghe có vẻ hợp lý, nhưng điều gì sẽ xảy ra nếu tôi có các phân vùng Extended / Linux LVM và Linux trao đổi / Solaris bắt đầu ở cuối phân vùng Linux? Tôi có nên xóa các phân vùng này>? Tôi lo lắng rằng trong trường hợp đó, hệ thống tập tin sẽ không khởi động, vì becuase có thể đang sử dụng Linux LVM chẳng hạn trong cùng một khởi đầu và kết thúc. Và tôi cũng không muốn mất dữ liệu.
lục lam

@cyan thay đổi kích thước âm lượng logic LVM với ext4 FS trên nó hoặc thay đổi kích thước phân vùng được sử dụng làm âm lượng vật lý cho LVM sẽ là những câu hỏi khác nhau với các quy trình khác nhau.
Stéphane Chazelas

7

Bạn không thể làm điều đó một cách an toàn trong khi phân vùng được gắn kết, có nghĩa là bạn cần khởi động một số phân vùng khác và thực hiện nó từ đó.

gpartedlà một GUI đẹp, dễ dàng cho mục đích này. Trong trao đổi nhận xét đã xóa của chúng tôi, bạn đã đề cập rằng nó sẽ không bắt đầu vì "không thể truy cập hiển thị" - điều này ngụ ý bạn không ở trong X; vì nó là GUI nên nó sẽ không hoạt động nếu không có nó.

Tất nhiên, nếu bạn không có phân vùng khác để sử dụng, bạn sẽ cần một đĩa CD trực tiếp hoặc một cái gì đó - tôi nghĩ rằng chúng thường đi kèm với gparted. Đặt cược tốt nhất của bạn có lẽ là CD trực tiếp thực sự , có vẻ như có phiên bản ổn định mới nhất gần đây (và sẽ phù hợp với CD , rất hay vì "CD trực tiếp" đang nhanh chóng trở thành "DVD trực tiếp").

Tôi chưa bao giờ gặp rắc rối vì vấn đề nhưng tất nhiên là làm lại sự quan trọng của bạn trước.


Tôi không thể sử dụng gparted vì tôi chỉ có quyền truy cập SSH (nó là một máy chủ không đầu). Tôi có thể ngắt kết nối ổ cứng, vì hệ thống không chạy trên / dev / sda.
Seb

1
Nếu bạn không có quyền truy cập vật lý vào hệ thống và do đó không thể ngắt kết nối và thay đổi phân vùng một cách hữu ích, tôi nghĩ bạn không gặp may, hoặc ít nhất là vào lãnh thổ rất sơ sài - ví dụ: bạn có thể cố gắng sử dụng fdisktrong khi gắn kết, chọn (x) pert, (c) số lượng xi lanh. Nhưng tôi đã không làm điều này và sẽ chỉ làm như vậy nếu hoàn toàn không có lựa chọn nào khác.
goldilocks

Tôi chỉ nói rằng tôi có thể ngắt kết nối phân vùng. Tôi thậm chí có thể netboot toàn bộ máy chủ và truy cập từ một máy chủ khác, điều này sẽ giống như sử dụng Live CD (chỉ cần không có GUI).
Seb

@Seb: xấu của tôi, xin lỗi.
goldilocks

2

Tôi biết đây là vấn đề rất cũ, nhưng nhiều người đang tìm kiếm giải quyết đó.

Đối với ví dụ này, bạn có tình huống điển hình sau đây. Ở đầu là một phân vùng duy nhất, và ở cuối, một phân vùng trao đổi được đặt. điều đó không tốt vì trao đổi có thể được tải rất nhiều và phần cuối của đĩa được quay là phần chậm nhất của nó. những gì tôi đề nghị?

  1. Tạo phân vùng khởi động khi bắt đầu. Tại sao lúc đầu? bởi vì nhiều công cụ đã gặp sự cố khi kết thúc đĩa lớn trên hàng rào 2TB. Sau khi phân vùng khởi động nên được phân vùng trao đổi. Đây là cho hiệu suất. Phần còn lại của đĩa nên được sử dụng cho các phân vùng khác.

Nhưng với tình huống này thì sao? Tôi không khuyên bạn nên mở rộng sda1. Tôi đề nghị tạo các phân vùng khác sau sda1 & sda2, được gắn kết như /home/usr. Trên các thư mục đó được lưu trữ nhiều dữ liệu người dùng và hệ thống nhất và có thể di chuyển an toàn dữ liệu từ các thư mục đó sang các phân vùng mới.

  1. Nhưng. (thứ hai "nhưng") nếu bạn vẫn muốn giữ cấu trúc hiện tại của mình, trước tiên bạn nên xóa phân vùng trao đổi. Bạn nên trao đổi, nhận xét này trong /etc/fstab. nếu hoán đổi cho bạn biết (xem người đàn ông) không sử dụng trao đổi, bạn có thể loại bỏ nó bằng công cụ phân vùng (fdisk hoặc tương tự).

    Khi bạn không có phân vùng này, bạn có thể phóng to sda1. Sử dụng fdisktrước tiên bạn nên in phân vùng. Nó là để nhớ nơi nó bắt đầu. Thứ hai xóa phân vùng bằng phím 'd'. Đừng hoảng sợ, không có gì được ghi vào ổ cứng :). Sau khi in bạn thấy, không có phân vùng tồn tại trên đĩa.

    Tiếp theo tạo phân vùng mới, nhưng hãy cẩn thận. Xem trên phân vùng ban đầu khu vực bắt đầu. Viết cùng một số. Sau đó nhìn vào kết thúc. fdisknhắc nhở bạn cho khu vực có sẵn cuối cùng. Sử dụng máy tính và chỉ định trong đầu bạn cần bao nhiêu trao đổi trong kilobyte. Nhân nó với 2 và trừ số này khỏi số khu vực cuối cùng được nhắc bởi fdisk. Tạo phân vùng. In cái này (nó vẫn còn trong bộ nhớ tạm thời fdisk), và xem tất cả đều ổn.

    Sau khi nhấn phím 'w' này, điều này sẽ ghi phân vùng mới vào ổ đĩa. Bạn sẽ thấy tất cả thông tin được đồng bộ hóa hoặc đồng bộ hóa không thành công. Nếu thất bại, bạn có thể gọi lệnh partx / dev / sda để thực hiện đồng bộ hóa. Nếu nó vẫn thất bại, bạn nên khởi động lại hệ thống của bạn. Sau khi khởi động lại, bạn đã chuẩn bị phân vùng lớn hơn, nhưng hệ thống tập tin trên nó vẫn nhỏ hơn. Bạn nên trồng nó. EXT4 có thể phát triển nhanh chóng :), sử dụng resize2fs /dev/sda1để làm điều đó.

    Bạn không cần phải khởi động lại, v.v. Cuối cùng, bạn nên khôi phục phân vùng trao đổi. Đơn giản chỉ cần sử dụng lại fdisk, tạo phân vùng mới dưới dạng trao đổi. Sau khi viết 'w', thiết bị sda2 sẽ được khôi phục. Chuẩn bị cấu trúc trao đổi trên nó bằng cách sử dụng mkswap /dev/sda2, loại bỏ nhận xét cho trao đổi trên /etc/fstabvà cuối cùng làm swapon -a. Nhìn bằng cách sử dụng hoán đổi hoặc lệnh hàng đầu, trao đổi được kích hoạt.

Tôi biết, đó là lời giải thích rất dài. Tôi hy vọng nó sẽ có thể sử dụng cho bất kỳ. Lưu ý, theo tôi, hệ thống tập tin xfs tốt hơn nhiều, thật không may, fs này không hỗ trợ thu nhỏ mà không sao chép tạm thời vào vị trí thay thế, nhưng hiếm khi sử dụng thu nhỏ. Thật tuyệt, xfs chiếm vị trí cực kỳ nhỏ cho siêu dữ liệu của chính anh ta và nhanh hơn về nhiều mặt so với ext4.

Một gợi ý khác, tốt hơn nên sử dụng một số LVM làm lớp giữa để phân vùng. sau đó bất kỳ thay đổi kích thước là dễ dàng hơn nhiều. Hiệu suất tương đương, tất nhiên, bạn có thể sử dụng kết hợp quản lý ổ cứng. bạn có thể sử dụng trong các phân vùng thô phổ biến và LVM.


Rất cám ơn slm đã chỉnh sửa ngôn ngữ tốt đẹp: D
Znik
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.