Làm cách nào tôi có thể nén tệp VHD với Ubuntu?


9

Tôi sử dụng máy chủ windows 2008r2 với vai trò Hyper-V. Hệ thống khách là Ubuntu 12.04 LTC. Nó nằm trên đĩa cứng ảo động.

Tôi muốn thu gọn VHD này (Kích thước thật là 50 GB, 360 GB trên đĩa). Nhưng tôi không thể làm điều này, vì hệ thống tệp Ubuntu không phải là NTFS. Tôi cần gì (gparted, sdelete, ...) để giải quyết vấn đề này?

Vấn đề chính là hệ thống tập tin không phải là NTFS, mà là ext4.

Câu trả lời:

1) Tải xuống systemrescuecd

http://sourceforge.net/projects/systemrescuecd/files/sysresccd-x86/3.8.1/systemrescuecd-x86-3.8.1.iso/doad

2) Thêm .iso này vào hệ điều hành Ubuntu

3) Khởi động máy ảo này

4) Sử dụng zerofree

zerofree /dev/sda1

5) Poweroff máy ảo này

6) Sử dụng trình quản lý Hyper-V (Chỉnh sửa -> chống phân mảnh)

Vhd này là 360 Gb. Bây giờ 70 GB.


1
Nếu bạn muốn trả lời câu hỏi của riêng bạn, xin vui lòng gửi câu trả lời , không phải là chỉnh sửa cho chính câu hỏi.
Massimo

xem xét fstrimvào năm 2019, đặc biệt là cho ext4 theo LVM superuser.com/questions/1491437/ trên
Alec Istomin

Câu trả lời:


6

Cấp nguồn cho máy ảo của bạn, sao lưu VHD và chạy một máy ảo khác (tôi sử dụng SystemResTHERCD vì nó nhỏ và nhanh) có phân vùng ext4 có sẵn cho nó, tức là HD cho SysResTHER (nhưng không gắn kết nó!). Từ SysResTHER VM, chạy ' zerofree ' trên phân vùng ext4, tắt nguồn VM đó, sau đó sử dụng Trang web quản trị của bạn để thu gọn VHD.


Tôi bắt đầu thực hiện (tải xuống SystemResTHERCD, sau đó là zerofree / dev / sda1), nhưng tôi không biết tôi có thể nén VHD này trong Windows không (sau khi tất cả không gian trống sẽ không có giá trị)
AmShegar


3

Tôi có thể xác nhận: zerofree đang làm việc để thu gọn các tệp đĩa ảo

NHƯNG: bạn không cần sử dụng bất kỳ đĩa CD cứu hộ nào hoặc để gắn VHDX vào một máy ảo khác:

sudo apt-get install zerofree

Khởi động ở chế độ an toàn, sau đó chạy:

zerofree /dev/sda1

Sau đó, chúng ta phải bắt đầu tối ưu hóa cho tệp đĩa ảo. Trên máy chủ lưu trữ tệp VHDX, tạo tệp sau ShrinkVhdx.ps1:

[CmdletBinding()]
Param(
    $VHDFiles
)

    #Find the disks
    foreach($VHD in $VHDFiles){
        Write-Verbose "Working on $VHD, please wait"
        Write-Verbose "Current size $([math]::truncate($(Get-VHD -Path $VHD).FileSize/ 1GB)) GB"
        Mount-VHD -Path $VHD -NoDriveLetter -ReadOnly
        Optimize-VHD -Path $VHD -Mode Full
        Write-Verbose "Optimize size $([math]::truncate($(Get-VHD -Path $VHD).FileSize/ 1GB)) GB"
        Dismount-VHD -Path $VHD
        Write-Verbose ""
        }

Và bây giờ hãy chạy tệp và tận hưởng không gian đĩa được phát hành :-)

ShrinkVhdx.ps1 .\hdd1.vhdx

Điều này phụ thuộc vào hệ thống tập tin nếu đó là XFS bạn không gặp may khi sử dụng zerofree.
Brad

1

Quá trình dường như là

  • Sao lưu tập tin VHD hiện tại của bạn.
  • Sử dụng Trình quản lý ảnh chụp để xóa / hợp nhất mọi ảnh chụp nhanh.
  • Không lấp đầy không gian đĩa không sử dụng

viz

sudo apt-get install secure-delete 
sudo sfill -llz .

Điều này tạo ra một tập tin gọi là oooooooo.ooođầy 0s. Bạn nên lặp lại lệnh sfill trên tất cả các phân vùng tôi đoán.

Lưu ý điều này cũng không nhanh, sẽ mất hàng giờ nếu không phải vài ngày để hoàn thành.

  • gọn nhẹ
  • Lợi nhuận

cảm ơn, nhưng tôi không có internet trên máy với hyper-v và vhd với linux. Vì vậy, tôi không thể thực hiện "sudo apt-get install
safe


0

Tôi đã cố gắng khởi động Systemrescuecd trong một máy thế hệ 2. Nhưng nó không hoạt động, vì vậy tôi đã tạo ra một máy thế hệ 1 mới và thêm VHDX vào nó. systemrescuecd bắt đầu. Tôi đã không làm bất kỳ hoạt động. Đã xóa máy thế hệ thứ nhất và đưa VHDX trở lại máy ban đầu. Sau đó, Ubuntu đã không khởi động cả. Chỉ có menu Grub.

Xem bài viết của tôi ở đây: Hyper-V Ubuntu vhdx scsi ide

Vì vậy, hãy lưu ý về điều này và hãy sao lưu (lần này tôi không làm vậy) ...


0

Bạn có thể làm điều này bằng cách kiểm tra một số tham số trong các tệp sau: / sys / block // queue / Discard_granularity / sys / block // queue / Discard_max_bytes nếu có 0 có thể không được hỗ trợ bởi cấu hình phần cứng + phần mềm của bạn.

Dưới đây là hướng dẫn đầy đủ để thực hiện việc này tại: http://www.1337admin.org/unc Classified / compacting-matrix-disks-on-generic-2-linux-hyper-v-2012-r2- vms /

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.