Phân mảnh phân vùng NTFS từ Linux


Câu trả lời:


12

Có, bạn có thể sử dụng lắc . Trước tiên bạn sẽ cần thêm một kho lưu trữ tùy chỉnh vào hệ thống của mình:

sudo add-apt-repository ppa:un-brice/ppa
sudo apt-get update
sudo apt-get install shake-fs

Sau đó bạn có thể làm

sudo shake /some/dir

10
Shake không phải là một trình chống phân mảnh, nó chỉ đơn giản là sao chép từng tệp với hy vọng rằng bản sao sẽ ít bị phân mảnh hơn. Tất nhiên đó là cách xa các trình chống phân mảnh thực sự hoạt động.
rustyx

9

Không có một công cụ như vậy xung quanh, cho những gì tôi biết.

Một số trang web báo cáo lệnh sau

# WARNING - does not work
fsck -t ntfs --kerneldefrag /dev/hdX

nhưng điều này không hoạt động, và không rõ họ lấy nó ở đâu.


7
-1 Tại sao thêm câu trả lời khi nó thậm chí không hữu ích theo bất kỳ cách nào?
Wolfer

1
@Wolfer thật tốt vì vậy khi chúng tôi tìm thấy nó ở một nơi khác, chúng tôi biết rằng nó không hoạt động
krispy

6

Cập nhật: UltraDefrag cho Linux:

UltraDefrag là một công cụ chống phân mảnh nguồn mở mạnh mẽ cho Nền tảng Windows. Nó có thể chống phân mảnh bất kỳ tệp hệ thống bao gồm tổ ong đăng ký và tệp hoán trang. Ngoài ra, một trong những mục tiêu chính của UltraDefrag là thực hiện công việc nhanh nhất và đáng tin cậy nhất có thể. Nó đang được chuyển sang Linux và NTFS-3G để chống phân mảnh các phân vùng NTFS. Hiện tại chỉ có một phiên bản thử nghiệm trong chế độ giao diện điều khiển có sẵn. Vui lòng đọc tệp đính kèm README.linux để biên dịch và thử nghiệm

http://jp-andre.pagesperso-orange.fr/advified-ntfs-3g.html

[Tôi chưa sử dụng cái này cho mình. Tìm thấy nó thông qua một chủ đề trên một diễn đàn Arch . Hơn nữa theo chủ đề thông qua trang tiếp theo dẫn đến nhiều hơn về chủ đề. Thử tự chịu rủi ro. Vay kevjonesin]


1

Đây là một cảnh báo LỚN cho tất cả các bạn nghĩ rằng NFTS có thể được phân mảnh trên Linux chỉ bằng cách sao chép các tệp (chỉ sao chép các tệp), v.v .:

  • Một số NTFS (tệp / thư mục) có thể có một thuộc tính đặc biệt hoạt động, nó được gọi là Nén NTFS

từ những gì tôi biết, bất cứ khi nào Linux (cp, fsarchiver, v.v.) viết một tệp / thư mục trên NTFS, nó luôn ghi nó mà không nén NTFS, bất kể tệp / thư mục có nén hay tắt.

Vì vậy, bạn có thể gặp tình huống (tôi gặp nó một cách khó khăn), trong đó việc khôi phục bằng fsarchive (hoặc cp, v.v.) sẽ làm cho phân vùng trở nên đầy đủ và không đủ.

Một số loại dữ liệu có thể đạt tỷ lệ nén NTFS hơn 3, vì vậy bạn có thể có phân vùng X GiB với rất nhiều tệp và tổng số tệp có kích thước gần 3 * X.

Tôi đưa ra cảnh báo đó vì nó không được biết đến nhiều và đôi khi tạo ra những cơn đau đầu thực sự lớn. giống như khi khôi phục bản sao cần nhiều dung lượng hơn toàn bộ phân vùng đã được sao chép, nguyên nhân là do nén NTFS bị mất trên Linux.

Ngoài ra, với dữ liệu rất đặc biệt (tỷ lệ NTFS lớn hơn 5) tôi gặp tình huống này:

  • Kích thước phân vùng NTFS của X GiB
  • Tệp giữ bản sao (với công cụ nén tốt nhất mà công cụ cho phép, GZip tôi nghĩ) đã lấy 2 * X GiB

Ồ vâng, bản sao đã được nén và mất gấp đôi kích thước phân vùng đó.

Điều đó được gây ra bởi vì công cụ nhân bản đọc các tệp đơn giản (rõ ràng, không bị nén) sau đó nén dữ liệu (với tỷ lệ thực sự tồi tệ hơn so với NTFS đã làm).

Tất nhiên, việc khôi phục dữ liệu đó sẽ không phù hợp với phân vùng đó, vì dữ liệu được khôi phục sẽ được đưa vào mà không cần nén NTFS.

Hy vọng rõ ràng một lý do khác tại sao không sử dụng nén NFTS? Chà, hoàn toàn không, tôi sử dụng nén NTFS rất nhiều (trong quá khứ). Các tệp VDI (Virtual Box) có tỷ lệ thực sự tốt.

Bây giờ tôi đã phát hiện ra tệp Pismo Mount (và nó cũng hoạt động trên Linux). nó có thể tạo một tệp hoạt động như một thùng chứa (như một thư mục) và có thể được nén (cũng với tỷ lệ tốt hơn so với NFTS) và đồng thời được mã hóa.

Tại sao tôi đề cập đến nó. bởi vì bất kỳ công cụ nhân bản nào cũng sẽ thấy bộ chứa đó như một tệp (khi không được gắn dưới dạng thư mục) và đọc / kết xuất / sao lưu luồng dữ liệu đã nén, chứ không phải dữ liệu không nén đơn giản (như nén NTFS). vì vậy khôi phục là như với bất kỳ tập tin khác.

Thay vì nén một thư mục NTFS với thuộc tính nén NTFS, tôi đặt một tệp Pismo Mount thư mục ảo. có được nén tốt hơn, vv

Tôi cũng phải cảnh báo tất cả các bạn quan tâm đến công cụ miễn phí như vậy. nó không có co lại (ít nhất là vậy), vì vậy nếu nội dung thư mục thay đổi nhiều thì đó không phải là một ý tưởng hay.

Nhưng đối với Đĩa ảo, ISO và những thứ không thay đổi, tỷ lệ mà nó nhận được rất gần với LZMA2 (7-Zip) và có thể đọc / ghi khi đang di chuyển.

Và nó là đa nền tảng.

Lưu ý kẻ xấu của nén NTFS nói về phân mảnh. Khi bạn viết một tệp thành NTFS với nén NTFS, nó sẽ thực hiện theo cách này (vâng, được thiết kế khủng khiếp, tôi nghĩ rằng nó được thực hiện như thế để đảm bảo phân mảnh lớn hơn theo cách có chủ ý, điều tồi tệ nhất không thể được thực hiện):

  1. Vị trí bắt đầu ghi được tính trước là 64K * N, trong đó N là số lượng đoạn 64K sẽ được cố gắng nén
  2. Một bộ đệm cho 64K được dành riêng
  3. Bộ đệm đó được lấp đầy với 64K và sau đó được nén
  4. Chỉ các khối 4K cần thiết được viết, phần còn lại được để dưới dạng không gian trống

Vì vậy, nó tạo ra rất nhiều GAP ở giữa tệp và chỉ sau khi phân mảnh tệp mà GAP biến mất, nhưng sự phân mảnh đó không xảy ra cho đến khi người dùng đặt hàng (contig.exe, defrag.exe, v.v.).

Có, nó ghi đoạn 64K thứ N trên bội số vị trí là 64K, bất kể dữ liệu trước đó có thể được nén hay không, nó sẽ để lại một Khoảng cách giữa mỗi đoạn 64K (nếu tất cả có thể được nén).

Pismo File Mount nén thư mục ảo hoạt động giống như bất kỳ nén thông thường nào được thực hiện, chế độ đường ống, do đó không có khoảng trống. ít nhất là cho đến khi bạn xóa một cái gì đó.

Ngoài ra, một cảnh báo khác, không đặt các tệp VHD / VHDX bên trong nó, Windows sẽ không thể đính kèm chúng! Windows sử dụng thủ thuật kernel để gắn kết những thứ như vậy, nó không sử dụng mức hệ thống tệp, hoạt động ở mức thấp.

Tôi cũng muốn dùng thử trình chống phân mảnh NTFS của Linux, chắc chắn sẽ nhanh hơn tất cả những gì chạy trên Windows. đó là một sự điên rồ hoàn toàn để chống phân mảnh không gian trống. hoặc nói tốt hơn. tạo ra một tổng thể đủ lớn cho một tập tin lớn mới.

Ngoài ra nó sẽ là tuyệt vời bộ nhớ của tôi làm việc tốt hơn. trước đây tôi đã sử dụng một công cụ (dòng lệnh, xin lỗi) trên Windows có thể sao chép / di chuyển tệp theo cách không phân mảnh. di chuyển các tập tin cần thiết đi trong khi nhận được toàn bộ tập tin đó, và không phân đoạn những tập tin đó. nó chỉ đưa ra một thông báo nếu nó không thể tìm ra cách đặt tệp (không thể có lỗ) hoặc một cảnh báo khác nếu nó cần phân đoạn một tệp khác (hỏi nếu được người dùng ủy quyền), v.v. thì thực sự tuyệt vời. Tôi không nhớ tên (và có lẽ nó không hoạt động với các cửa sổ hiện đại, nó dành cho Win2000).


0

Không. Đây là các hệ thống tệp Windows, do đó bạn sẽ cần sử dụng Windows để chống phân mảnh chúng.


Không Wine có ứng dụng chống phân mảnh Windows tiêu chuẩn? ???
Juan

2
@Juan, không, đó là một phần của Windows. RƯỢU chỉ cho phép chạy các ứng dụng của bên thứ ba được viết cho windows. Nó cũng sử dụng các ioctls trình điều khiển hệ thống tập tin windows không có sẵn trên linux.
psusi

0

Có một mánh khóe rất khó biết để lưu trữ phân mảnh NTFS (bao gồm cả không gian trống) ... có thể được thực hiện với Live Linux như SystemResTHERCD ...

Nhưng, bạn phải có ổ cứng thứ hai hoặc ít nhất 51% dung lượng trống (nếu không sử dụng nén).

Thủ thuật (rất khó) là sử dụng các công cụ để "sao chép" phân vùng, nhưng không phải là công cụ điển hình ... có một công cụ có thể "sao chép" một phân vùng NTFS nhưng không thực hiện "nhân bản" chính xác ... hãy để tôi giải thích ...

Công cụ này là fsarchive (nếu tôi không nhớ xấu).

Nó tạo ra một tệp rất lớn (như các công cụ nhân bản), với tất cả các tệp (hãy cẩn thận với siêu dữ liệu đặc biệt của tệp NTFS, các luồng tôi nghĩ rằng chúng được gọi là), giống như một công cụ "nhân bản" ...

Nhưng phần khó khăn xuất hiện khi khôi phục ... nó không đặt các tệp ở đâu, nó đặt các tệp mà không có bất kỳ sự phân mảnh nào.

Tôi đã sử dụng nó cho phân vùng Windows System cũng như cho các phân vùng dữ liệu NTFS ... với sự thành công ... không dễ sử dụng / hiểu được (đọc kỹ các tài liệu) ... nhưng có thể thực hiện thủ thuật.

Hãy nhớ rằng ... tập tin lớn như vậy mà nó tạo ra có thể được nén, vì vậy không thực sự cần phải có 51% miễn phí.

Nhưng dù sao đi nữa, trước tiên bạn phải Thu nhỏ phân vùng NTFS ... sử dụng GParted (nếu tôi không nhớ xấu).

Vì vậy, các bước:

  1. Trường hợp xấu nhất: HDD chỉ có một phân vùng NTFS LỚN, có đủ dung lượng trống
  2. Khởi động SystemRescuCD (nếu bạn muốn khởi động X windows bằng lệnh wizard)
  3. Sử dụng GParted để thu nhỏ phân vùng NTFS xuống kích thước tối thiểu (sẽ phân mảnh các tệp NTFS nhiều hơn, không vấn đề gì)
  4. Sử dụng GParted để tạo một phân vùng khác trên không gian trống, tốt hơn nếu loại ext4 (tạp chí)
  5. Gắn kết phân vùng mới như vậy, nhưng không gắn kết NTFS
  6. Sử dụng fsarchiver để tạo "bản sao" của phân vùng NTFS, sử dụng nén và lưu trữ tệp bif trên phân vùng đã tạo
  7. Từ giờ trở đi, điều này rất RỦI RO: Sử dụng GParted để xóa phân vùng NTFS và tạo lại nó
  8. Khôi phục "bản sao" bằng cách sử dụng fsarchiver, tất cả các tệp trên phân vùng NTFS sẽ là 1 đoạn (ngoại trừ một hoặc hai vì $ MFT có thể được đặt ở giữa, không phải ở tầng hoặc cuối phân vùng)
  9. Sử dụng Gparted để thu nhỏ phân vùng NTFS nếu cần
  10. Kiểm tra NFTS là chính xác, có thể được gắn, đọc / ghi và tháo gỡ
  11. Bỏ kết nối phân vùng ext4 mới được tạo
  12. Sử dụng Gparted để phát triển ext4 đó (hoặc tốt hơn, xóa nó và tạo lại nó)

Đó là, mọi người ... như tôi đã nói rất khó khăn và mạo hiểm, tất nhiên.

Cẩn thận với các điểm chính:

  • Thu nhỏ NFTS cho phép đủ không gian trống để giữ hình ảnh nén của phân vùng NTFS (miễn phí 51% trên ổ cứng sẽ đảm bảo có đủ)
  • fsarchiver không lưu các luồng NTFS?
  • Khôi phục fsarchiver không đặt các tệp ở nơi chúng ở, nó đặt chúng không bị phân mảnh (như một bản sao)
  • Sau khi xóa và tạo lại phân vùng NTFS, không có cách nào quay lại

Các bước dành cho: Sử dụng linux LiveCD / LiveUSB để phân mảnh phân vùng NTFS sử dụng 100% đĩa, không có ổ cứng nào khác kết nối với PC đó [phải có đủ dung lượng trống].

QUAN TRỌNG:

  • Một số người có thể nghĩ rằng nếu bạn có 51% miễn phí trên ổ cứng sau khi thu nhỏ NTFS thì có thể an toàn hơn khi chỉ cần tạo ext4 đó và sao chép tất cả NTFS sang nó, sau đó xóa NTFS, tạo lại và sao chép chúng lại ... như hoán vị bảo mật NTFS, v.v.

Miễn là tôi biết GParted / fsarchiver là giải pháp gần nhất (chỉ sử dụng LiveCD / LiveUSB với Linux), không nhanh, bằng cách nào đó có rủi ro, nhưng thỏa mãn các điều khoản được đặt ra bởi người đăng câu hỏi.

TUYỆT VỜI: Nó rất, rất rủi ro ... như với bất kỳ công cụ "nhân bản" nào ... và hiện tại tôi không biết cách nào khác tốt nhất ... và nó sẽ làm mất các luồng NTFS (nếu tôi không nhớ xấu)

XIN VUI LÒNG: Đọc tài liệu fsarchiver cẩn thận, trước khi sử dụng nó.

Tôi có bất kỳ khả năng đáp ứng nào (tôi đã sử dụng nó trên dữ liệu của riêng mình, nhưng dù sao tôi cũng có BackUP bên ngoài - các phần tốt).

Trong thực tế ... tất cả thông tin tôi có, tôi đã đặt chúng trên ít nhất ba phương tiện khác nhau (HDD, DVD, Flash Memories), với ít nhất ba bản sao trên mỗi phương tiện, vì vậy tôi có 9 bản sao ... nếu tôi mất 8 bản Họ còn lại một lần nữa để khôi phục dữ liệu ... tôi hơi hoang tưởng, tôi không biết.


Tôi sẽ không đề xuất phương pháp này, vì (giống như bạn nói) nó rất rủi ro và thường không có giá trị vì sự phân mảnh. Sử dụng tốt hơn các hệ thống Windows trực tiếp để thực hiện một công việc như vậy (hoặc hệ thống Windows gốc - tại sao không?).
Chỉ huy Byte

fsarchive chỉ là một kho lưu trữ tar tinh vi lưu trữ một số thuộc tính mở rộng. Nó không chống phân mảnh gì cả. Phương pháp của bạn cũng tốt như sao chép đơn giản các tệp từ một phân vùng sang một hệ thống tệp sạch khác.
ZAB
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.