Windows'ta edithd komutuyla sabit boyut VDI nasıl değiştirilir?


70

Bir VDI dosyasının boyutunu nasıl değiştireceğimi bulmaya çalışıyorum. VirtualBox'da yeniyim ve öğrenecek çok şeyim var. Ama sanırım temel bilgileri çözdüm. Windows 7'yi ilk konuğum olarak yükledim. Ev sahibi ayrıca Windows 7'dir. Ne kadar disk alanı ayıracağımdan emin değildim, bu yüzden 40 GB'lık VDI boyutunda ve performans artışı için sabit boyutta gittim. Ama fikrimi şimdi değiştirdim ve 10 GB daha eklemek istiyorum. Programın çevresini tıklayıp Yardım menüsü içeriğini okudum, ancak yardımcı olmuyor. Disk denetleyicileri, SAS, SATA, SCSI, yada yada yada açık aradığımı değil.

Cevaplar için dünya çapındaki ağı aradım, VirtualBox forumunda en kolay yöntemi (bazı modlar yapışkan olduğu için) istiyorsanız Gparted kullanmanız gerektiğini söylüyor. Bazı kullanıcılar ddkomut kullanarak tartışırlar . Ama hepsi Linux şeyleri. Ayrıca, burada SU'da VDI dosya boyutlarının artırılması ve azaltılmasıyla ilgili birçok soru var, ancak hepsi Linux'u konukçu olarak kullanmak ve Windows'u konuk olarak kullanmakla ilgili.

Bu güzel blog gönderisini modifyhdVBoxManage komutuyla nasıl yapacağınızı öğrendim . Bu adam aynı zamanda Linux'ta sunucu işletim sistemi olarak da çalışıyor. Hatta benim için yaptığı gibi VDI dosyası için aynı boyutu (50 GB) istedi, ne tesadüf. Bu yüzden yine de denemeyi ya da denemeyi düşündüğümü düşündüm. Ne yanlış gidebilir ki? ... ha? İşte bu çirkin sürpriz.

C:\Program Files\Oracle\VirtualBox>VBoxManage.exe modifyhd "%userprofile%\virtua
lbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab.vdi" --resize 51200
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage.exe: error: Resize hard disk operation for this format is not impleme
nted yet!

C:\Program Files\Oracle\VirtualBox>

bir

Şimdi ne diyeyim ?! ... VDI formatındaki sanal sabit diskleri yeniden boyutlandıramıyor mu? Söylemiyor musun Kendi biçiminizi desteklemiyor musunuz? Şimdi buna ne dersin ...

Bir VDI dosyasının boyutunu, tercihen VirtualBox içinde birkaç tıklama ile değiştirmenin gerçekten basit bir yolu yok mu? Devam eden bir şey var mı?


4
VirtualBox'ın rantını kaldırdım, ki bu soruya faydalı bir şey eklemiyor.
sleske

1
İleride, modifyhdartık olarak bilinir modifymediumfakat geriye uyumlu kalır - bkz virtualbox.org/manual/ch08.html#vboxmanage-modifyvdi
djule5

Yanıtlar:


121

Özet:

  • VBoxManage.exe modifyhd --resize Disk görüntüsünün (misafir işletim sistemi tarafından görülen boyut) mantıksal boyutunu artırabilir (ancak azaltamaz).
  • VBoxManage.exe modifyhd inputfile.vdi --compactFiziksel disk görüntü boyutunu düşürebilir (diskteki görüntü dosyasının ana işletim sistemi işletim sistemindeki gibi). Ancak bu, mantıksal disk boyutunu değiştirmez. Bunun yalnızca konuk işletim sisteminde boş alan sıfırlanmışsa işe yaradığını unutmayın.
  • modifyhd yalnızca dinamik biçim değişkeni ile çalışır ("dinamik olarak ayrılmış görüntü").
  • modifyhd sadece VDI ve VHD görüntü formatları ile çalışır.
  • Anlık görüntüler kullanıyorsanız, "Anlık Görüntüler" alt klasöründen en son anlık görüntü VDI'yi klonlamanız gerekir.

Detaylar için bölüm 8.23'e bakınız . VBoxManage kılavuzdaki modifikasyonu .


Bir VDI'nın mantıksal disk boyutunu azaltmanın henüz uygulanmamasının nedeni, ortaya çıkabilecek veri bozulmalarını önlemek ve bunun sonucunda önlenemez VM'lere sahip olmanızdır. Bu nedenle, --resizeseçenek kullanıldığında, yeni disk boyutunun geçerli boyuttan büyük olması gerekir. Mevcut boyuttan daha küçük veya ona eşit olması yasaktır. Başka bir deyişle, 40 GB'lık bir disk yalnızca 41 GB'a veya daha büyük bir boyuta yeniden boyutlandırılabilir, 40 GB'a (sadece aptal) veya 39 GB'a veya daha küçük bir boyuta yeniden boyutlandırılamaz.

VirtualBox'ın eski sürümleri VDI dosyalarını "sabit" format değişkeni olarak yarattı. Yeni varsayılan ayar şimdi yeni VDI (sanal disk görüntüsü) dosyaları oluşturulduğunda "dinamik" biçim değişkenleri oluşturmaktır. (Sanırım bu, hangi sürümde tanıtılsa olsun, dinamik format varyantının kullanılmasından bu yana böyle bir durumdur.)

Bu nedenle, "bu biçim için işlem henüz uygulanmadı" hata iletisinin, VDI dosyanızın "sabit" biçim değişkenini kullandığı anlamına gelir. Bu sorunu aşmak için VDI dosyanızı clonehdkomutu kullanarak klonlamanız gerekecektir . Şu anda VDI dosyanızın hangi formatta olduğunu görmek için showhdinfokomutu kullanabilirsiniz .

Çalışma örneği

Geçerli disk hakkında VDI bilgilerini göster.

Giriş komutu: vboxmanage.exe showhdinfo path\inputfile.vdi

C:\Program Files\Oracle\VirtualBox>VBoxManage.exe showhdinfo "%userprofile%\virt
ualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab.vdi"
UUID:           132e9af1-0428-49f4-bc45-4d84680e17f5
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       C:\Users\Name\VirtualBox VMs\sg2_win7_x64_lab\sg2_win7_x64_lab.
vdi
Storage format: VDI
Format variant: fixed default
Capacity:       40960 MBytes
Size on disk:   40962 MBytes
In use by VMs:  sg2_win7_x64_lab (UUID: dcd106b3-7ed6-4f19-ad94-820ab4dc10d3)

C:\Program Files\Oracle\VirtualBox>

"Sabit varsayılan" yazdığını gördün mü? Bu yüzden yeniden boyutlandırmaya çalıştığınızda yukarıdaki hatayı dağıtıyor.

Eski VDI dosyasını yeni bir VDI dosyasına klonlayın.

Giriş komutu: vboxmanage.exe clonehd path\inputfile.vdi path\outputfile.vdi

C:\Program Files\Oracle\VirtualBox>VBoxManage.exe clonehd "%userprofile%\virtual
box vms\sg2_win7_x64_lab\sg2_win7_x64_lab.vdi" "%userprofile%\virtualbox vms\sg2
_win7_x64_lab\sg2_win7_x64_lab_clone.vdi"
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: 34dafa68-3093-4946-926a-8237ea263
e5c

C:\Program Files\Oracle\VirtualBox>

Voila Eski dosya şimdi yeni bir dosyaya kopyalandı. VirtualBox'ın yeni sürümlerinde varsayılan ayar "dinamik" biçim değişkenini kullanmak olduğundan, bunu açıkça tanımlamanız gerekmez. Bununla birlikte, daha eski bir VirtualBox sürümüyle çalışıyorsanız, VirtualBox'ın gelecekteki sürümleriyle daha iyi uyumluluk ve / veya esneklik sağlamak için bu seçeneği "dinamik" (eğer varsa) olarak ayarlamak isteyebilirsiniz.

Klonlanmış disk hakkındaki VDI bilgilerini gösterin.

Giriş komutu: vboxmanage.exe showhdinfo path\inputfile_clone.vdi

C:\Program Files\Oracle\VirtualBox>VBoxManage.exe showhdinfo "%userprofile%\virt
ualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_clone.vdi"
UUID:           34dafa68-3093-4946-926a-8237ea263e5c
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       C:\Users\Name\virtualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_
clone.vdi
Storage format: VDI
Format variant: dynamic default
Capacity:       40960 MBytes
Size on disk:   7806 MBytes

C:\Program Files\Oracle\VirtualBox>

Şimdi "dinamik varsayılan" yazdığını gördün mü? Ne kadar güzel!

(Yan notta, burada fiziksel boyut olarak 7806 MB yazmasının nedeni --compact, orijinal VDI dosyasındaki seçeneği dinamik format değişkenine dönüştürmeyi zorlamak amacıyla kullanmamdı. Sözde, VirtualBox forumunda okuduğum bir şey, sözde eski sürümlerle çalışacaktı, bu yüzden denemeye çalışabileceğimi düşündüm. İşe yaramadı.)

Klonlanmış diski yeniden boyutlandırma.

Giriş komutu: vboxmanage.exe modifyhd path\inputfile.vdi --resize 51200

C:\Program Files\Oracle\VirtualBox>VBoxManage.exe modifyhd "%userprofile%\virtua
lbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_clone.vdi" --resize 51200
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

C:\Program Files\Oracle\VirtualBox>

Başarı! Artık biçim saçmalığı yok. Sadece yeni, klonlanmış diski değil, orijinali yeniden boyutlandırmayı unutmayın. Boyutun MB cinsinden ifade edildiğini unutmayın. Sana örneğin kullanabilirsiniz inanıyoruz 51200yanı sıra 50G(veya muhtemelen "GB"). --resizebyteBoyutu bayt cinsinden ifade etmek için kullanılabilecek bir seçenek de vardır .

Yeniden boyutlandırılmış klon disk hakkındaki VDI bilgilerini gösterin.

Giriş komutu: vboxmanage.exe showhdinfo path\inputfile_clone.vdi

C:\Program Files\Oracle\VirtualBox>VBoxManage.exe showhdinfo "%userprofile%\virt
ualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_clone.vdi"
UUID:           34dafa68-3093-4946-926a-8237ea263e5c
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       C:\Users\Name\virtualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_
clone.vdi
Storage format: VDI
Format variant: dynamic default
Capacity:       51200 MBytes
Size on disk:   7806 MBytes

C:\Program Files\Oracle\VirtualBox>

Bu kadar! Buradan yapmanız gereken, bu klonlanmış sürücüyü VM için yeni VDI'nız olarak eklemek. Bunu VirtualBox içinde yaptınız. Buna girmeyeceğim. Bunu şimdiye kadar okuyup anlayabildiyseniz, daha fazla rehberliğe ihtiyacınız yoktur. Eski "sabit" dosyayı silebilir veya yedek olarak bırakabilirsiniz. Orijinal kaynak dosyayı silmeden önce yeni VDI dosyasını test ettiğinizden emin olun.

Not! Klonlanmış diskin yeni boyutunu hemen göremezsiniz. Sanal Makineyi onunla başlatmanız gerekir ve sonra sanal diski doldurmak için (veya daha fazla bölüm oluşturmak için) bölümünüzü genişletmek üzere bölüm yönetimi aracınızı kullanmanız gerekir. Windows için, sadece çalıştırın diskmgmt.mscve oradaki bölümü genişletebileceksiniz.

Ekran görüntüleri

bir b c d e f g

Referans



Güzel göz! Modifyhd parametresini düzelttim. Bu hususları dikkatime sunduğunuz için teşekkür ederim.
Samir

2
Gerçekten iyi yazılmış bir cevap! IMHO bu çok oy almalı.
Johan Karlsson

+1: Sizin gibi insanlar ve özgürce paylaştığınız bilgiler, bu da StackExchange ekosistemini bu kadar harika bir kaynak yapıyor!
Homunculus Reticulli

1
Anlık görüntüler kullandığınız için sorun yaşıyorsanız , virtualbox.org/ticket/9103 adresini inceleyin . Temel olarak, modifymedium/ modifyhdişlemini anlık görüntü dosyasının kendisinde uygulamanız gerekir .
djule5

11

İşte benim sanal işletim sistemi (v. 4.3.16) sabit boyutlu bir diski, Mac'imde (OS X 10.9.4) 60 GB'lık dinamik bir diske yeniden boyutlandırmak için çalıştığım ve misafir işletim sistemi olarak Linux çalıştıran (Ubuntu 14.04) oldukça basit bir işlem:

Mac'teki Terminal'de, VDI dosyasına sahip dizine bir CD yerleştirin ve aşağıdakini yazın:

VBoxManage showhdinfo mydisk.vdi  
VBoxManage clonehd mydisk.vdi mydiskClone.vdi  
VBoxManage modifyhd mydiskClone.vdi --resize 61440  
VBoxManage showhdinfo mydiskClone.vdi

VirtualBox uygulama depolama bölümünde, ikinci bir HD olarak mydiskClone.vdi ekleyin, ardından VM'yi normal şekilde başlatın.

Konuk işletim sistemindeki kabuğa şunu yazın:

sudo fdisk /dev/sdb
- delete all partitions
- create new partition on full disk

Konukları yeniden başlatın. Geri döndüğünde, tekrar kabuğa git ve şunu yaz:

sudo resize2fs /dev/sdb1

Konuk işletim sistemini kapatın.

VirtualBox uygulama depolama bölümünde tekrar mydiskClone.vdi dosyasını önyükleme diski olarak ayarlayın. Ardından konuk işletim sistemini başlatın ve dosya tarayıcısındaki "Bilgisayar" özelliklerini kullanarak yeni disk boyutunu doğrulayın.


Bu cevap bir anlam ifade etmiyor. İlk önce / dev / sdb'de büyük bir bölüm yaratır, sonra yeniden boyutlandırırsınız, ancak önce üzerinde bir dosya sistemi oluşturmazsınız. Orijinal bölüme kopyalamanın adımını belki unuttun mu?
15'te sleske

5

Klonlama aslında daha iyi bir çözüm ve bunu yapmanın daha kolay bir yolu var.

Dosya menüsünden, Sanal Medya Yöneticisi'ni seçip Kopyala'yı tıklatın. Kaynak, orijinal sabit boyutlu vdi sabit diskiniz olacak ve hedefiniz seçtiğiniz bir şey olacak (yeni bir seçenek de dahil).


Bu sammyg'in cevabının bir parçası.
Efren

4

Tamam, klonlamadan gerçekleşmesini sağladım .

Üzerinde Ubuntu olan bir 100GB VDI dosyam (sabit format) vardı. İyi çalışıyor. Sanal Makineyi küçülterek ana bilgisayarda biraz yer açmak istedim.

Adımlar:

  1. Temizlemek

İstenmeyen dosyalar silindi. 45GB ücretsiz. Kurtulmak için sadece 30GB'a ihtiyacım var.

  1. Misafir işletim sistemini düzeltin

Sadece bir bölümüm var, bu yüzden misafir Ubuntu'nun içinden bir şey yapamam. Monte edilmiş Ubuntu Sanal Makinede canlandırın ve önyükleyin.

gpartedBölmeyi 70GB'a kadar küçültmek için kullanılır . Alanındaki kullanılmayan alanda yeni bir bölüm oluşturuldu ext4.

  1. Boş alanı sil

Yeni bölümdeki boş alan (30GB).

Bu kılavuzu takip etti: Ubuntu'da sanal bir sabit diski sıfırsız kullanarak Misafir ve Ana Bilgisayar İşletim Sistemi olarak küçültün

Yeni bölümüm öyleydi /dev/sda3.

$ sudo apt-get install zerofree
$ sudo init 1

...

# mkdir /tmp3
# mount -o ro -t ext4 /dev/sda3 /tmp3
# zerofree -v /dev/sda3
  1. VDI'yi sıkıştırın

    VBoxManage modifikasyonu "ubuntu.vdi" kompakt

Biraz zaman aldı ama işe yaradı!


1
Bunun işe yaradığından emin misin? VirtualBox kılavuzuna göre, --compactsabit boyutlu olanlar için değil , yalnızca dinamik olarak ayrılmış görüntüler için çalışır.
15'te sleske

1
@ ATOzTOA: Eğer disk imaj dosyası büyürse, o zaman "sabit format" bir resim değil, cevabınıza yazdığınız "dinamik olarak tahsis edilmiş" bir resimdir.
15'te sleske

3
Hayır, bu dinamik olarak tahsis edilmiş bir görüntü . El kitabından alıntı yapmak için: "Sabit boyutlu bir görüntü oluşturursanız, ana sisteminizde sanal diskin kapasitesi ile aynı boyutta bir görüntü dosyası oluşturulur." Virtualbox.org/manual/ch05.html#vdidetails
sleske

1
"Sabit boyutlu bir görüntü, belirtilen boyutun ötesinde büyüyemeyeceği anlamına gelir." HAYIR. "Sabit boyut", boyutun sabit olduğu, yani her zaman aynı olduğu anlamına gelir. Belgeleri oku.
sleske

1
Kimse bunu okuyorsa ve kimin doğru olduğunu bilmiyorsa. Sleske doğru. Sabit boyutlu görüntüler tam olarak söyledikleri gibidir. Görüntüyü oluştururken belirtilen boyuta sabitlenir. Kıyaslama ölçütlerinde bu, dinamik olarak tahsis edilen görüntülere göre çok daha fazla performans sağlar, bu nedenle HD yoğun görevler için VBox kullanan herkes, sınırlamalarına rağmen muhtemelen bu biçimi göz önünde bulundurmalıdır.
Jack,

2

Partiye biraz geç kaldım ama 2 kuruş ekleyeceğim. Öncelikle bunun, sıradan kullanıcıları anlamaya çalışan çıldırmış bir süreç olduğunu söyleyeceğim. Neden Oracle bunu VBox GUI'ye dahil etmedi, bu bir gizemdir.

Adım 1: Sürücü boyutunu artırmak için windows komut satırını (VBoxmanage) kullanın. Buradaki ipucu, vdi sürücüsünün kimliğini, dosya konumunu girmeye çalışmak ve hata mesajları almak yerine kullanmaktır.

Adım 2: Yeni alanı kullanmak için birincil bölümünüzü genişletmeniz gerekir. Gparted iso'yu indirin ve VBox'ta IDE kaynağı olarak kullanarak yeni bir sanal makine oluşturun. Sonra varolan VDI sürücüsünü sata diski olarak kullanın. Bu makine için sanal bir sürücü oluşturmayın. Yeni makinenin önyüklemesini yapın ve GPartili Gui'yi çalıştıracaksınız. Bu kendi kendine halletmek için birkaç yeniden başlatma alabilir.

Gparted çalışırken, vdi sürücünüzün yeniden boyutlandırmak istediğiniz bölümlerini göreceksiniz. ÖNEMLİ: Birincil bölümün boyutunu artırabilmek için uzatılmış bölümü silmek ve dosya alanını değiştirmek zorunda kalacaksınız, bu yüzden PP için tüm yeni alanı tahsis etmeyin. Bunu yaptıktan sonra, yeni genişletilmiş bölüm için kalan alanı belirlemeniz ve bunun içinde yeni bir takas dosyası alanı oluşturmanız gerekecektir. Bunu komut satırıyla uğraşmaktan daha kolay buldum.

Bir parça kek değil ama yapılabilir ... bunu bulmak için interneti araştırmamın yarım günü sürdü. VBox'ta win8.1 / Ubuntu kullanıyor

Willie


2

Sabit bir VDI görüntüsünü nasıl yeniden boyutlandırdığım / büyütdüğüm / genişlettiğim (onları küçültme işlemim başka bir cevapta):

  1. İstenilen boyutta yeni bir disk oluşturmak için VirtualBox kullanın (boyut en azından orijinaliyle aynı olmalıdır ). Bunu, konuk VM için Sanal Kutu Ayarları'nı açarak yapın, Depolama'ya gidin, HDD Denetleyicisini (örn. "SATA") tıklayın ve ardından bir sabit disk eklemek için "+" düğmesini tıklayın. Ardından yeni diski istediğiniz şekilde yapılandırın.
  2. Gparted live ISO'yu indirin ve konuk VM'yi önyüklemesi için yapılandırın (tekrar, Depolama ayarları).
  3. Konuk VM'nizin mevcut depolama alanını yedekleyin.
  4. Konuk VM'yi önyükleyin (bölünmüş canlı ortama önyüklenmelidir). Bölünmüş çevrenin içinden:
    1. Mevcut diskinizin "/ dev / sda" olduğunu ve yeni (daha büyük) diskinizin "/ dev / sdb" olduğunu (sağ üst aşağı açılır) doğrulamak için gparted uygulamasını kullanın.
    2. Gparted uygulamasını kapatın.
    3. Kök ayrıcalıklarına sahip bir terminal açın (masaüstüne sağ tıklayın -> Terminaller -> kök ayrıcalıklı terminal).
    4. Aşağıdaki komutu yazın: dd if=/dev/sda of=/dev/sdb status=progress bs=128Mve tamamlanmasını bekleyin. Bu, orijinal diski MBR vb. Dahil olmak üzere yeni bayt bayt diskine kopyalayacaktır (Not: Orijinal diskin boyutlarına, ana bilgisayardaki disk hızına vb. Bağlı olarak bu işlemin tamamlanması biraz zaman alabilir). (Not: konuk VM’nizin kendisine atanmış> 1 GB RAM'i varsa, 'bs' paramını "bs = 256M" olarak değiştirebilirsiniz, bu da kopyayı biraz hızlandırabilir).
    5. Gparted uygulamasını tekrar açın
    6. Sağ üstteki açılır listeden yeni (daha büyük) sürücüyü (/ dev / sdb olmalıdır) seçin.
    7. Bölümleri istediğiniz gibi genişletin. Sonunda olmayan bir bölümü genişletmek için genişletmek istediğiniz bölümlerin arkasındaki bölümleri taşımak zorunda kalabilirsiniz. Bölümleme planınızın özelliklerine bağlı olarak, bunu, son bölümü sonuna kadar büyütmek ve daha sonra her şeyi sonuna kadar hareket ettirerek küçültmek gibi birden fazla adımda yapmanız gerekebilir. Benim durumumda, son bölüm linux-swap'dı, bu yüzden basitçe sildim, birincil bölümümü istenildiği şekilde genişlettim ve sonra takas bölümünü sonunda yeniden yarattım (orijinal bölümleme şemasını çoğaltmak için dikkatli olun).
    8. Değişiklikleri uygula.
    9. Bu noktada, orijinal içeriğin tümü ve orijinalinden daha fazla alan içeren yeni bir sabit boyutlu diskiniz olmalıdır. Yeni diski gparted live env'ye bağlayabilir ve doğrulayabilirsiniz.
    10. Konuk VM'yi kapatın (canlı yayınlanmış) ve ISO'yu VM sürücüsünden kaldırın.
  5. Konuk VM için VBox Ayarları'na gidin, Depolama'ya gidin ve orijinal diski listeden çıkarın (sağ tıklayın ve "Eklentiyi Kaldır" ı seçin). Bu, yeni oluşturulan diskinizi VM için terk etmelidir. Not: Bu adım, diski konuk VM yapılandırmasından kaldırmaktır - orijinal konuk VM diskiniz (yani küçük olan) ana makinede hala mevcuttur.
  6. Sanal Makineyi çalıştırın ve tadını çıkarın!
  7. (Her şey beklendiği gibi çalıştığını onayladıktan sonra, orijinal VM diskini silebilirsiniz.)

Yukarıdakiler benim için birçok kez harika olsa da, LVM kullanılıyorsa birkaç adım daha gerekli görünüyor. (NOT: LVM kullanılıyorsa, istediğiniz boyutta yeni bir disk ekleyebilir ve ardından bu diski birim grubuna ekleyebilirsiniz.) LVM'nin kullanıldığı CentOS 6.6 ile LVM içindeki boşluğu da arttırmalıydım. Bu yüzden yukarıda oluşturulan yeni diski açtıktan sonra, bu satırlar boyunca bir şeyler yaptım (bunun çeşitli bölümleri kurulumunuzun adlarına bağlı olarak değişebilir):

  1. LVM kurulumu hakkında bilgi edinin:

    # pvs
      PV         VG          Fmt  Attr PSize  PFree
      /dev/sda2  vg_rhel6bm1 lvm2 a--  31.51g    0 
    # vgs
      VG          #PV #LV #SN Attr   VSize  VFree
      vg_rhel6bm1   1   2   0 wz--n- 31.51g    0 
    # lvs
      LV      VG          Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      lv_root vg_rhel6bm1 -wi-ao---- 28.31g
      lv_swap vg_rhel6bm1 -wi-ao----  3.20g
    
  2. Fiziksel hacmi genişletme (PV) (cilt grubu (VG) aynı artışı otomatik olarak yansıtacaktır):

    # pvresize /dev/sda2
      Physical volume "/dev/sda2" changed
      1 physical volume(s) resized / 0 physical volume(s) not resized
    # pvs
      PV         VG          Fmt  Attr PSize  PFree
      /dev/sda2  vg_rhel6bm1 lvm2 a--  39.51g 8.00g
    # vgs
      VG          #PV #LV #SN Attr   VSize  VFree
      vg_rhel6bm1   1   2   0 wz--n- 39.51g 8.00g
    
  3. Mantıksal hacmi genişlet (LV):

    # lvextend /dev/vg_rhel6bm1/lv_root /dev/sda2
      Size of logical volume vg_rhel6bm1/lv_root changed from 28.31 GiB (7247 extents) to 36.31 GiB (9295 extents).
      Logical volume lv_root successfully resized
    # lvs
      LV      VG          Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      lv_root vg_rhel6bm1 -wi-ao---- 36.31g
      lv_swap vg_rhel6bm1 -wi-ao----  3.20g
    
  4. Dosya sistemini genişlet:

    Önce:

    # df -h
      Filesystem            Size  Used Avail Use% Mounted on
      /dev/mapper/vg_rhel6bm1-lv_root
                             28G   24G  3.1G  89% /
      tmpfs                 939M  232K  939M   1% /dev/shm
      /dev/sda1             477M   85M  368M  19% /boot
    

    Komut:

    # resize2fs /dev/mapper/vg_rhel6bm1-lv_root
      resize2fs 1.41.12 (17-May-2010)
      Filesystem at /dev/mapper/vg_rhel6bm1-lv_root is mounted on /; on-line resizing required
      old desc_blocks = 2, new_desc_blocks = 3
      Performing an on-line resize of /dev/mapper/vg_rhel6bm1-lv_root to 9518080 (4k) blocks.
      The filesystem on /dev/mapper/vg_rhel6bm1-lv_root is now 9518080 blocks long.
    

    Sonra:

    # df -h
      Filesystem            Size  Used Avail Use% Mounted on
      /dev/mapper/vg_rhel6bm1-lv_root
                             36G   24G   11G  69% /
      tmpfs                 939M  232K  939M   1% /dev/shm
      /dev/sda1             477M   85M  368M  19% /boot
    

Güzel cevap! Siteye Hoşgeldiniz!
djsmiley2k - CoW 12:16

1

Sabit bir VDI görüntüsünü nasıl yeniden boyutlandırdığım / küçültdüğüm (küçültdüğüm): (onu genişletme sürecim aynı konunun başka bir cevabında):

Öncelikle, neden buna ihtiyaç duyduğumla ilgili kısa bir geçmiş (bazıları bu yaklaşımla mümkün olmayabilecek VDI'yi küçültmek için pek çok senaryo olduğu için): Yıllar önce, bir Windows Server konuğu için sabit bir VDI oluşturdum ve onu 600 GB'da boyutlandırdım. Neden bu boyutu seçtiğimi hatırlamıyorum, ancak bugün itibariyle bu misafirde sadece 100GB kullandım ve kalan alanın çoğunu geri almak istiyorum. Bu yüzden, benim durumumda, konukdaki tüm verileri korumak istiyorum ve sadece misafirdeki kullanılmayan alanı boşaltmak istiyorum.

(Aşağıdaki adımlar çoğunlukla bunu son 2 saat içinde yaptığımın hafızasıdır, bu yüzden burada bir şeyi kaçırırsam özür dilerim.)

  1. Yeni boyutun ne kadar büyük olmasını istediğinizi belirleyin. Doğal olarak, muhtemelen konukları, şu anda kullandıklarının ötesinde bir miktar fazladan boşluk bırakarak bırakmak isteyeceksiniz. Boyut en azından en yakın GB'ye yuvarlanmış kaynak / orijinal diskteki verilerle aynı olmalıdır.
  2. Önceki adımda belirlenen boyutta yeni bir sabit boyutlu disk oluşturmak için VirtualBox kullanın. Bunu, konuk VM için Sanal Kutu Ayarları'nı açarak yapın, Depolama'ya gidin, HDD Denetleyicisini (örn. "SATA") tıklayın ve ardından bir sabit disk eklemek için "+" düğmesini tıklayın. Ardından yeni diski istediğiniz şekilde yapılandırın.
  3. Gparted live ISO'yu indirin ve konuk VM'yi önyüklemesi için yapılandırın (tekrar, Depolama ayarları).
  4. Konuk VM'nizin mevcut depolama alanını yedekleyin.
  5. Konuk VM'yi önyükleyin (bölünmüş canlı ortama önyüklenmelidir). Bölünmüş çevrenin içinden:

    1. Hangi diskin "orijinal" ve hangisinin "yeni" olduğunu belirlemek için gparted uygulamasını kullanın. Orijinalin en az bir bölümü olacak ve yenisi tamamen boş olacaktır. (Genellikle "orijinal", / dev / sda atanan ilk disktir ve "yeni" disk / dev / sdb atanan ikinci disktir.)
    2. Orijinal / kaynak bölümlerini / bölümlerini istediğiniz boyuta getirmek için gparted uygulamasını kullanın. Tüm işlemleri tamamladıktan sonra "Uygula" düğmesine tıklamayı unutmayın . (Bu, bölüm boyutlarınıza ve disk hızınıza bağlı olarak tamamlanması biraz zaman alabilir.)
    3. Yeni diskte bir bölüm tablosu oluşturmak için gparted uygulamasını kullanın (Aygıt -> Bölüm Tablosu Oluştur ..., türü MSDOS olarak bırakın).
    4. Yeni diskte aynı bölümleri oluşturmak için gparted uygulamasını kullanın. (Aynı olduklarından emin olmak için, Bölüm-> Bilgi ... menü seçeneğini kullanarak orijinal diskteki her bölüm için ayrıntılı bilgileri açtım ve aynı bölümü oluştururken kullanmak üzere ekran görüntüsünü kaydettim ( s) yeni / hedef diskte.) Şunlardan emin olun:
      • Her hedef bölümü (yeni ayarlanmış) orijinal ile aynı boyutta oluşturun.
      • Bölümlerdeki bayrakları işaretlenecek şekilde ayarlayın (bölüm oluşturulduktan sonra yapılması gerekebilir).
      • Eşleşecek bölümlerdeki herhangi bir etiketi ayarlayın.
      • (NOT: Veri kopyalandığında UUID otomatik olarak ayarlanacaktır.)
    5. Tüm değişiklikleri yapmak için "Uygula" düğmesine tıklayın.
    6. Hangi diskin "orijinal" ve hangisinin "yeni" olduğunu not edin ve karşılık gelen bölümlerin numaralarını not edin (ör. / Dev / sda1 -> / dev / sdb1, / dev / sda2 -> / dev / sdb2, ...)
    7. Gparted uygulamasını kapatın.
    8. Kök ayrıcalıklarına sahip bir terminal açın (masaüstüne sağ tıklayın -> Terminaller -> kök ayrıcalıklı terminal).
    9. "Orijinal" diskinizin / dev / sda ve "yeni" / dev / sdb olduğunu varsayalım (değilse, aşağıdaki komutu uygun şekilde ayarlayın), sonra her bölümü birer birer kopyalayacağız. Yukarıdaki adımdan not ettiğiniz her bölüm için, terminalde aşağıdaki komutu girin:

      # dd if=/dev/sda1 of=/dev/sdb1 status=progress bs=128M
      

      ve tamamlanmasını bekleyin. Bu, bölüm 1'i orijinal diskten yeni bayt bayt diskindeki bölüm 1'e kopyalar.
      Kalan her bölüm için komutu tekrarlayın:

      # dd if=/dev/sda2 of=/dev/sdb2 status=progress bs=128M
      # dd if=/dev/sda3 of=/dev/sdb3 status=progress bs=128M
      # ...
      

      Notlar:

      • Bu, bölümlerin boyutlarına, anasistemdeki disk hızına, vb. Bağlı olarak tamamlanması biraz zaman alabilir.
      • Konuk VM’nizin kendisine ayrılmış> 1 GB RAM'i varsa, 'bs' paramünü "bs = 256M" olarak değiştirerek, kopyayı biraz hızlandırabilir.
    10. Bu noktada, tüm orijinal içeriğe sahip yeni bir sabit boyutlu diske ve orijinalden daha küçük bir VDI dosyasına sahip olmalısınız. Yeni diski gparted live env'ye bağlayabilir ve verilerin orada olduğunu doğrulayabilirsiniz.
    11. Konuk VM'yi kapatın (gparted live) ve gparted ISO'yu VM sürücüsünden kaldırın.
  6. Konuk VM için VBox Ayarları'na gidin, Depolama'ya gidin ve orijinal diski listeden çıkarın (sağ tıklayın ve "Eklentiyi Kaldır" ı seçin). Bu, yeni oluşturulan diskinizi VM için terk etmelidir. Not: Bu adım, diski konuk VM yapılandırmasından kaldırmaktır; orijinal konuk VM diskiniz (yani büyük VDI), ana makinede hala kullanılabilir durumdadır.
  7. Windows konuğum için atmam gereken son adım MBR ve / veya BCD'yi ayarlamak / düzeltmekti. (Bunlardan herhangi birini henüz yapmadığım bir Linux konuk için gerekli olup olmadığını bilmiyorum.) Yeni VDI'mdan basitçe boot ettiğimde, bu içeriğe sahip bir Windows Boot Mgr hata ekranı açtım (ne yazık ki yapmadım ' sorunu çözmeden önce bir ekran görüntüsü kapma):

    windows failed to start
    status 0xc000000e
    information A required device isn't connected or can't be accessed.
    
  8. Bir Windows kurulumu veya onarımı ISO'su (ideal olarak işletim sistemi sürümünüze uygun olanı) edinin ve konuk VM'yi önyüklemesi için yapılandırın (tekrar, Depolama ayarları).

  9. Konuk VM'yi başlatın ve CD / DVD'den başlatmayı seçin.

    1. Windows yükleme / onarımının her sürümü farklı olduğundan, burada herkes için kesin adımlar atamıyorum. Ancak fikir "Onar" seçeneğini seçmek ve komut istemine giden yolu bulmaktır. Benim Windows Server 2012 örneğimde: (a) Dilimi / yerel ayarımı seçin; (b) Sol alt köşedeki "Bilgisayarınızı onarın" seçeneğini seçin; (c) "Sorun Giderme" yi seçin; (d) "Komut İstemi" ni seçin.
    2. Komut isteminde bulunduktan sonra aşağıdaki komutları çalıştırın ( bilgi için http://loverofcode.blogspot.com/2013/11/fixed-0xc000000e-boot-error.html !):

      > bootrec /fixmbr
      > bootrec /fixboot
      > bootrec /rebuildBcd
      

      Bu son komut, Windows kurulumunuzu bulmalı ve BCD'ye eklemesini istemelidir. 'Y' cevabını verin.

    3. Komut isteminden çıkın ve ardından konuk VM'yi kapatın.
  10. Konuk VM için VBox Ayarları'na gidin, Depolama'ya gidin ve Windows Kurulum / Onarım ISO'sunu CD / DVD sürücüsünden çıkarın.
  11. Sanal Makineyi çalıştırın ve tadını çıkarın!
  12. (Her şey beklendiği gibi çalıştığını onayladıktan sonra, orijinal VM diskini silebilirsiniz.)

0

Herhangi bir ana bilgisayar işletim sisteminde çalışan herhangi bir ana bilgisayar işletim sistemine yayılmış bir cevap veriyorum. Bu cevap, boyutunu artırmak istediğinizi (uzatmak) istediğinizi varsayar.

Not: djule5'in belirttiği gibi (sorudan hemen sonraki yoruma bakınız), modifyhdşimdi bilinir modifymedium(ancak geriye dönük olarak uyumlu kalır). İşte kullanıyorum modifymedium.

1. Çalışan VM’den çıkın

Evet, bu cevap bir VirtualBox VM tarafından zaten kullanılan bir VDI dosyası içindir.

2. Disk görüntüsünü yeniden boyutlandırmak için ana makinenizde bir terminal açın

VBoxManage komut satırı, VDI dosya adını kullanarak bir disk görüntüsünü yeniden boyutlandırmak istemiyor.

$ ls -s1 *.vdi
10260316160 my_disk_image.vdi

$ vboxmanage modifymedium my_disk_image.vdi --resizebyte 16260316160                                                                      VBoxManage: error: Cannot register the hard disk '/home/user/vm/my_disk_image.vdi' {181540c7-b791-4b2f-8e01-5feaff04a6eb} because a hard disk '/home/user/vm/my_disk_image.vdi' with UUID {181540c7-b791-4b2f-8e01-5feaff04a6eb} already exists
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBoxWrap, interface IVirtualBox, callee nsISupports
VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 179 of file VBoxManageDisk.cpp

Bu nedenle, disk görüntünüzün UUID'sini tanımlayın.

$ ls -s1 *.vdi
10260316160 my_disk_image.vdi

$ vboxmanage list hdds
UUID:           181540c7-b791-4b2f-8e01-5feaff04a6eb
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/user/vm/my_disk_image.vdi
Storage format: VDI
Capacity:       10240 MBytes
Encryption:     disabled

Disk görüntüsü boyutunu genişletin.

$ vboxmanage modifymedium 181540c7-b791-4b2f-8e01-5feaff04a6eb --resizebyte 16260316160
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

3. Mantıksal bölümü genişletmek için bir bölümlendirme aracı kullanın.

Barındırılan VM'nizi çalıştırın. Ardından bir bölümlendirme aracı kullanın .

Barındırılan GNU / Linux için bazı araçlar:

Barındırılan sistem Windows kullanıyorsa:

4. Bölüm boş alanını kontrol edin

VDI dosyanızın boyutu (ana sisteminizde), VM'niz henüz fazladan boşluk kullanmamış olduğundan değişmemiş olabilir. İyi eğlenceler.


-1

Bu benim için işe yarayacak ve Sabit Disk Kapasitesi toplam miktarını belirtmelidir. Arttırmamız gereken yer değil ...

C: \ Program Files \ Oracle \ VirtualBox> VBoxManage.exe değiştirir "D: \ Sanal Makine \ VirtualBox Sanal Makineleri \ Windows 7 (FileZilla Sunucusu) \ Windows 7 (FileZilla Sunucusu) .vdi" - özgeçmiş 15360

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.