it-swarm-ja.com

Windowsでmodifyhdコマンドを使用して固定サイズVDIを変更する方法

VDIファイルのサイズを変更する方法を見つけようとしています。私はVirtualBoxが初めてです、そして学ぶことがたくさんありました。しかし、私は私が基本のこつを手に入れたと思います。私は最初のゲストとして既にWindows 7をインストールしました。ホストもWindows 7です。どのくらいのディスク容量を割り当てるべきかわからないので、パフォーマンスを向上させるために40 GBのVDIサイズと固定サイズを選択しました。しかし、私は今、気が変わったので、さらに10 GB追加したいと思います。プログラムをクリックして[ヘルプ]メニューの内容を読んでいますが、役に立ちません。ディスクコントローラ、SAS、SATA、SCSI、やだ、やだについて説明していますが、探しているものではありません。

私は答えをワールドワイドウェブで調べた、VirtualBoxフォーラムはあなたが最も簡単な方法が欲しいならばGpartedを使うべきだと言っている(modはスティッキーを投稿した)。何人かのユーザはddコマンドの使用について議論しています。しかし、それがすべてLinuxのものです。また、SUにはVDIファイルのサイズの増減に関する質問がたくさんありますが、それらはすべて、ホストとしてのLinuxとゲストとしてのWindowsの使用に関するものです。

VBoxManageのmodifyhdコマンドでそれを行う方法についてのこのNice ブログ の投稿を見つけました。この男はホストOSとしてLinuxでもやっています。私の場合と同じサイズ(50 GB)のVDIファイルも必要でした。これは偶然の一致です。だから私はとにかく試してみるか、それを作るか壊すかのどちらかをしようと思った。何が問題になる可能性がありますか?...え?まあこれは私が得た醜い驚きです。

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>

a

今何を言う?!... VDIフォーマットの仮想ハードディスクのサイズを変更することはできませんか?あなたは言わないのですか?あなた自身のフォーマットをサポートしていませんか?今それはどうですか...

VirtualBox内を数回クリックするだけで、VDIファイルのサイズを変更する簡単な方法は本当にありませんか。進行中の何か

68
Samir

概要:

  • VBoxManage.exe modifyhd --resizeは、ディスクイメージの論理サイズ(ゲストOSから見たサイズ)を増やすことはできますが、減らすことはできません。
  • VBoxManage.exe modifyhd inputfile.vdi --compactは、物理ディスクのイメージサイズ(ホストOSから見たディスク上のイメージファイルのサイズ)を減らすことができます。ただし、これによって論理ディスクサイズが変わることはありません。これは、最初にゲストOSの空き容量がゼロになった場合にのみ機能することに注意してください。
  • modifyhdは動的フォーマットバリアント( "動的に割り当てられた画像")でのみ機能します。
  • modifyhdはVDIとVHDの画像フォーマットでのみ動作します。
  • スナップショットを使用している場合は、「スナップショット」サブフォルダから最新のスナップショットVDIを複製する必要があります。

詳しくは 8.23節をご覧ください。マニュアルのVBoxManage modifyhd


VDIの論理ディスクサイズを減らすことがまだ実装されていない理由は、起こり得るデータ破損を防ぐためであり、その結果として起動不可能なVMがあるでしょう。したがって、--resizeオプションを使用するときは、新しいディスクサイズを現在のサイズより大きくする必要があります。現在のサイズ以下にすることはできません。言い換えれば、40 GBのディスクは41 GB以上にしかサイズ変更できません。40GB(これは単なるダムです)または39 GB以下にサイズ変更することはできません。

VirtualBoxの古いバージョンはVDIファイルを "固定"形式のバリアントとして作成しました。新しいデフォルト設定では、新しいVDI(仮想ディスクイメージ)ファイルが作成されたときに「動的な」フォーマットバリアントが作成されるようになりました。 (これは、動的フォーマットのバリエーションが導入されてから、どちらのバージョンで導入されたかにかかわらず当てはまると思います。)

「このフォーマットの操作はまだ実装されていません」というエラーメッセージが表示されるのは、VDIファイルが「固定」フォーマットのバリエーションを使用していることです。この問題を回避するには、clonehdコマンドを使用してVDIファイルを複製する必要があります。あなたのVDIファイルが現在どのようなフォーマットバリアントであるかを見るために、あなたはshowhdinfoコマンドを使うことができます。

作業例

現在のディスクに関するVDI情報を表示します。

入力コマンド: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>

「固定デフォルト」と表示されている箇所を見てください。そのため、サイズ変更しようとすると上記のエラーが発生します。

古いVDIファイルを新しいVDIファイルに複製します。

入力コマンド: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>

ほら!古いファイルは新しいファイルに複製されました。 VirtualBoxの新しいバージョンのデフォルト設定は "動的な"フォーマットバリアントを使うことですので、それを明示的に定義する必要はありません。ただし、古いバージョンのVirtualBoxを使用している場合は、将来のバージョンのVirtualBoxとの互換性や柔軟性を向上させるために、オプションを "dynamic"に設定することをお勧めします。

クローンディスクに関するVDI情報を表示します。

入力コマンド: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>

それが今どのように「動的デフォルト」を言うか見てください?なんて素敵なことでしょう。

(注意!物理サイズとして7806 MBと表示されているのは、動的フォーマットへの変換を強制するために、元のVDIファイルで--compactオプションを使用していたためです。 VirtualBoxフォーラムでは、それはおそらく古いバージョンでうまくいったでしょうから、試してみるのもいいと思いました。

クローンディスクのサイズを変更します。

入力コマンド: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>

成功!これ以上フォーマットのばかげたことはありません。元のディスクではなく、新しいクローンディスクのサイズを変更することを忘れないでください。サイズはMBで表されることに注意してください。私はあなたが使用できると思います。 51200および50G(または場合によっては「GB」)。サイズをバイト単位で表すために使用できるオプション--resizebyteもあります。

サイズ変更されたクローンディスクに関するVDI情報を表示します。

入力コマンド: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>

それでおしまい!ここから、このクローンドライブをVMの新しいVDIとして追加します。あなたはVirtualBoxの中でそれをします。私はそれに入りません。これまでに読んで理解したことがあれば、おそらくそれ以上のガイドは必要ないでしょう。古い "修正済み"ファイルを削除するか、バックアップとして残しておくことができます。元のソースファイルを削除する前に、必ず新しいVDIファイルをテストしてください。

注意!新しいサイズのクローンディスクがすぐに表示されることはありません。それを使ってVMを起動する必要があります。次に、パーティション管理ツールを使用して仮想ディスクをいっぱいにするようにパーティションを拡張する必要があります(または、さらにパーティションを作成します)。 Windowsの場合は、diskmgmt.mscを実行するだけで、そこにあるパーティションを拡張できます。

スクリーンショット

abcdefg

参照

119
Samir

ゲストOSとしてLinux(Ubuntu 14.04)を実行している私のMac(OS X 10.9.4)上でVirtualBox(v。4.3.16)固定サイズのディスクを60GBのダイナミックディスクにリサイズするために働いた非常に簡単なプロセスは次のとおりです。

Macのターミナルで、VDIファイルのあるディレクトリにCDを挿入し、次のように入力します。

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

VirtualBoxアプリケーションストレージセクションで、2番目のHDとしてmydiskClone.vdiを追加してから、通常どおりVMを起動します。

ゲストOSのシェルで、次のように入力します。

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

ゲストを再起動します。それが戻ってきたら、もう一度シェルに行き、次のようにタイプしてください。

Sudo resize2fs /dev/sdb1

ゲストOSをシャットダウンします。

VirtualBoxアプリケーションのストレージセクションで、mydiskClone.vdiを起動ディスクに設定します。次に、ゲストOSを起動し、ファイルブラウザの[コンピュータ]のプロパティを使用して新しいディスクサイズを確認します。

10
Grant Braught

クローニングは実際にはより良い解決策であり、それを行うためのより簡単な方法があります。

[ファイル]メニューから[Virtual Media Manager]を選択し、[コピー]をクリックします。ソースはあなたの元の固定サイズのvdiハードディスクで、あなたの行き先はあなたが選んだ何か新しいものになるでしょう(新しいのオプションを含みます)。

5
Taky Djarou

それで、私はクローンを作成せずにそれを実現させました。

Ubuntuが入った100GBのVDIファイル(固定フォーマット)を持っていました。正常に動作しています。 VMを縮小して、ホスト内のスペースをいくらか解放したいと思いました。

ステップ:

  1. 掃除

不要なファイルを削除しました。 45GBの空き容量。解放するには30GBしか必要ありません。

  1. ゲストOSを修正する

パーティションは1つしかないので、ゲストUbuntuからは何もできません。 Ubuntu LiveをVMにマウントし、そこから起動します。

gpartedを使用してパーティションを70GBに縮小しました。 ext4の未使用スペースに新しいパーティションを作成しました。

  1. 空きスペースを拭く

新しいパーティションの空き容量(30GB).

このガイドに従ってください: zerofreeを使用してゲストおよびホストOSとしてUbuntu上の仮想ハードドライブを縮小してください

私の新しいパーティションは/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をコンパクトにする

    VBoxManage modifyhd "ubuntu.vdi"コンパクト

しばらく時間がかかりましたが、うまくいきました!

4
ATOzTOA

固定VDIイメージをリサイズ/拡大/拡大する方法は次のとおりです(縮小するプロセスは別の回答です)。

  1. VirtualBoxを使用して、目的のサイズの新しいディスクを作成します(size必ずを元のディスクと同じにする)。これを行うには、ゲストVMのVirtualBox設定を開き、[Storage]に移動して[HDD Controller](例: "SATA")をクリックし、次に[+]をクリックしてハードディスクを追加します。その後、必要に応じて新しいディスクを構成します。
  2. Gparted live ISOをダウンロードし、そこから起動するようにguest VMを設定します(ここでもStorageの設定)。
  3. ゲストVMの現在のストレージをバックアップします。
  4. Guest VMを起動します(gpartedのライブ環境で起動するはずです)。分割環境の内側から:
    1. Gpartedアプリケーションを使用して、既存のディスクが "/ dev/sda"で、新しい(大きい)ディスクが "/ dev/sdb"であることを確認します(右上のドロップダウン)。
    2. Gpartedアプリケーションを閉じます。
    3. Root権限を持つ端末を開きます(デスクトップを右クリック - >端末 - > root権限を持つ端末)。
    4. 次のコマンドを入力してください:dd if=/dev/sda of=/dev/sdb status=progress bs=128Mそしてそれが完了するのを待ちます。これにより、元のディスクが新しいディスクにMBRなどのバイト単位でコピーされます(注:元のディスクのサイズ、ホスト上のディスクの速度などによっては、完了するまでに時間がかかる場合があります)。 (注:あなたのguest VMに> 1GB RAMが割り当てられている場合は、 'bs'パラメータを "bs = 256M"に変更すると、コピーが少し速くなります。 ).
    5. Gpartedアプリケーションを再度開く
    6. 右上のドロップダウンから新しい(より大きな)ドライブ(/ dev/sdbにする必要があります)を選択します。
    7. 必要に応じてパーティションを拡張します。最後にないパーティションを拡張するには、拡張したいパーティションの後ろにあるパーティションを移動する必要があります。パーティション分割スキームの詳細によっては、最後のパーティションを最後まで拡張してから、すべてを最後まで移動して縮小するなど、複数の手順でこれを実行する必要があります。私の場合は、最後のパーティションがlinux-swapだったので、それを削除し、必要に応じてプライマリパーティションを拡張し、最後にスワップパーティションを再作成しました(元のパーティション分割スキームを複製するように注意してください)。
    8. 変更を適用してください。
    9. この時点で、元のコンテンツをすべて含み、元のコンテンツよりも多くの容量を持つ新しい固定サイズのディスクがあるはずです。新しいディスクをgparted live envにマウントして確認することができます。
    10. ゲストVM(gparted live)をシャットダウンし、VMドライブからISOを削除します。
  5. ゲストVMのVBox設定に移動し、ストレージに移動してリストから元のディスクを削除します(右クリックして[添付ファイルの削除]を選択します)。これでVM用に新しく作成されたディスクが残るはずです。注:この手順では、ゲストVMの設定からディスクを削除するだけです。元のゲストVMディスク(つまり小さい方のディスク)は、ホストマシンで引き続き使用できます。
  6. VMを起動してお楽しみください。
  7. (すべてが期待通りに動作していることが確認されたら、元のVMディスクを削除できます。)

上記は私にとって何度も素晴らしい働きをしてきましたが、LVMを使用する場合にはさらにいくつかのステップが必要と思われます。 (注:LVMが使用されている場合は、希望するサイズの新しいディスクを追加してからそのディスクをボリュームグループに追加することができます。)LVMが使用されているCentOS 6.6では、LVM内のスペースも増やす必要がありました。それで、上で作成された新しいディスクを起動した後、私はこれらの行に沿って何かをしました(これの様々な部分はあなたの設定の名前に基づいて異なります):

  1. LVMのセットアップに関する情報を入手してください。

    # 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. 物理ボリューム(PV)を拡張します(ボリュームグループ(VG)は自動的に同じ増加を反映します)。

    # 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. 論理ボリューム(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. ファイルシステムを拡張します。

    前:

    # 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
    

    コマンド:

    # 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.
    

    後:

    # 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
    
2
codesniffer

ここでパーティーに遅刻しますが、2セント追加します。まず最初に、これはたいていのカジュアルなユーザーが解決しようとしている複雑なプロセスであると言います。なぜOracleがVBox GUIにこれを含めなかったのかは謎です。

ステップ1:Windowsのコマンドライン(VBoxmanage)を使用してドライブサイズを増やします。ここでのヒントは、ファイルの場所を際限なく入力しようとしてエラーメッセージを表示するのではなく、vdiドライブのIDを使用することです。

ステップ2:次に、新しいスペースを利用するために1次区画を拡張する必要があります。 gparted isoをダウンロードし、それをIDEソースとして使用してVBoxで新しい仮想マシンを作成します。次に、既存のVDIドライブをSATAディスクとして使用します。このマシンには仮想ドライブを作成しないでください。新しいマシンを起動すると、gparted Guiが起動します。これはそれ自身を整理するために数回の再起動を要するかもしれません。

Gpartedが実行されると、サイズ変更したいvdiドライブのパーティションが表示されます。重要:プライマリパーティションのサイズを大きくするには、拡張パーティションを削除してファイルスペースをスワップする必要があるため、PP用に新しいスペースをすべて割り当てないでください。これを実行したら、新しい拡張パーティション用の残りのスペースを指定し、その中に新しいスワップファイルスペースを作成する必要があります。私はこれがはるかに簡単であることを発見し、それからコマンドラインを使いまわりました。

ちょっとしたケーキではありませんが、それは実行可能です...これを理解するのに私はウェブを調査するのに半日ほどかかりました。 VBoxでwin8.1/Ubuntuを実行する

ウィリー

2
Willie

固定VDIイメージをリサイズ/縮小/縮小する方法は次のとおりです(これを拡張するプロセスは、これと同じトピックのもう1つの回答です)。

最初に私がこれを必要とした理由についての簡単な背景(VDIを縮小するシナリオはいくつかありますが、このアプローチでは実行できない場合があります)。私がなぜこのサイズを選んだのか思い出せませんが、今日の時点ではそのゲストで100GBしか消費しておらず、残りのスペースの大部分を再利用したいのです。したがって、私の場合は、ゲスト内のすべてのデータを保存したいだけで、ゲスト内の未使用スペースを解放したいだけです。

(以下のステップは、過去2時間にこれを行ったという私の記憶からのものなので、ここで何かを見逃した場合はお詫び申し上げます。)

  1. 新しいサイズの大きさを決めます。当然のことながら、おそらく現在の消費量を超えた余分なスペースをゲストに残したいと思うでしょう。サイズはソース/オリジナルのディスクのデータと少なくとも同じでなければならず、最も近いGBに丸められます。
  2. VirtualBoxを使用して、前の手順で決定したサイズの新しい固定サイズのディスクを作成します。これを行うには、ゲストVMのVirtualBox設定を開き、[Storage]に移動して[HDD Controller](例: "SATA")をクリックし、次に[+]をクリックしてハードディスクを追加します。その後、必要に応じて新しいディスクを構成します。
  3. gparted live ISO をダウンロードし、そこから起動するようにguest VMを設定します(これもStorageの設定です)。
  4. ゲストVMの現在のストレージをバックアップします。
  5. Guest VMを起動します(gpartedのライブ環境で起動するはずです)。 gparted環境の内側から:

    1. Gpartedアプリケーションを使用して、どのディスクが「オリジナル」でどれが「新しい」ディスクであるかを判断します。元のパーティションには少なくとも1つのパーティションがあり、新しいパーティションには完全に空白のパーティションがあります。 (通常、 "オリジナル"は/ dev/sdaが割り当てられている最初のディスク、 "new"ディスクは/ dev/sdbが割り当てられている2番目のディスクです。)
    2. Gpartedアプリケーションを使用して、元の/ソースパーティションを希望のサイズに縮小します。 すべての操作を完了したら、忘れずに[適用]ボタンをクリックしてください。 (パーティションサイズとディスク速度によっては、完了するまでに少し時間がかかる場合があります。)
    3. Gpartedアプリケーションを使用して、新しいディスクにパーティションテーブルを作成します([Device] - > [Create Partition Table ...]をクリックし、タイプは[MSDOS]のままにします)。
    4. Gpartedアプリケーションを使用して、新しいディスクに同一のパーティションを作成します。 (それらが同じであることを確認するのを助けるために、私はPartition-> Information ...メニューオプションを使ってオリジナルのディスクの各パーティションの詳細情報を引き出し、同じパーティションを作成したときに使うスクリーンショットを保存しました。 s)新しい/コピー先のディスク上にあることを確認してください。
      • 各宛先パーティションを(新しく調整した)オリジナルと同じサイズで作成します。
      • 一致するようにパーティションにフラグを設定します(パーティションの作成後に実行する必要があるかもしれません)。
      • 一致するようにパーティションのラベルを設定します。
      • (注:データがコピーされると、UUIDは自動的に設定されます。)
    5. [適用]ボタンをクリックしてすべての変更を確定します。
    6. どのディスクが "オリジナル"でどれが "新しい"ディスクであるかを書き留め、対応するパーティションの番号を書き留めます(例:/ dev/sda1 - >/dev/sdb1、/ dev/sda2 - >/dev/sdb2、 ...)
    7. Gpartedアプリケーションを閉じます。
    8. Root権限を持つ端末を開きます(デスクトップを右クリック - >端末 - > root権限を持つ端末)。
    9. あなたの "オリジナルの"ディスクが/ dev/sdaで "new"が/ dev/sdbであると仮定して(そうでなければ、以下のコマンドを適切に調整してください)、各パーティションを一つずつコピーします。上記の手順で書き留めたパーティションごとに、端末で次のコマンドを入力します。

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

      そしてそれが完了するのを待ちます。これにより、パーティション1が元のディスクから新しいディスクのパーティション1に1バイトずつコピーされます。
      残りの各パーティションに対してコマンドを繰り返します。

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

      ノート:

      • パーティションのサイズ、ホスト上のディスクの速度などによっては、完了するのにしばらく時間がかかる場合があります。
      • ゲストVMに> 1GB RAMが割り当てられている場合、 'bs'パラメータを "bs = 256M"に変更すると、コピーが少し速くなります。
    10. この時点で、オリジナルのコンテンツをすべて含む新しい固定サイズのディスクと、オリジナルよりも小さいVDIファイルがあるはずです。新しいディスクをgparted live envにマウントして、データがすべてそろっていることを確認できます。
    11. ゲストVM(gparted live)をシャットダウンし、VMドライブからgparted ISOを削除します。
  6. ゲストVMのVBox設定に移動し、ストレージに移動してリストから元のディスクを削除します(右クリックして[添付ファイルの削除]を選択します)。これでVM用に新しく作成されたディスクが残るはずです。注:この手順では、ゲストVMの設定からディスクを削除するだけです。元のゲストVMディスク(つまり、大容量VDI)は、ホストマシン上で引き続き使用できます。
  7. 私が私のWindowsゲストのためにしなければならなかった最後のステップは、MBRおよび/またはBCDを設定/修正することでした。 (まだ実行していないので、Linuxゲストにこれが必要かどうかはわかりません。)新しいVDIから起動しただけでは、Windows Boot Mgrエラー画面が表示されます。私は問題を解決する前にスクリーンショットをつかむt):

    windows failed to start
    status 0xc000000e
    information A required device isn't connected or can't be accessed.
    
  8. Windowsのインストールまたは修復のISO(理想的にはお使いのOSのバージョンと一致するもの)を取得し、そこから起動するようにguest VMを設定します(ここでもStorageの設定)。

  9. Guest VMを起動し、CD/DVDから起動することを選択します。

    1. Windowsのインストール/修復のバージョンはそれぞれ異なるため、ここでは正確な手順を説明することはできません。しかし考えは「修理」の選択を選び、命令プロンプトへのあなたの方法を見つけることである。私の場合は、Windows Server 2012の場合、次のことが必要でした。(a)自分の言語/ロケールを選択します。 (b)左下隅にある[コンピュータを修復する]を選択します。 (c)[トラブルシューティング]を選択します。 (d)「コマンドプロンプト」を選択してください。
    2. コマンドプロンプトが表示されたら、次のコマンドを実行します( http://loverofcode.blogspot.com/2013/11/fixed-0xc000000e-boot-error.html に感謝します)。情報!):

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

      この最後のコマンドは、あなたのWindowsインストールを見つけ、それをBCDに追加するように促します。 'Y'と答えてください。

    3. [プロンプト]コマンドを終了してから、ゲストVMをオフにします。
  10. ゲストVMのVBox設定に移動し、ストレージに移動して、CD/DVDドライブからWindowsのインストール/修復ISOを削除します。
  11. VMを起動してお楽しみください。
  12. (すべてが期待通りに動作していることが確認されたら、元のVMディスクを削除できます。)
1
codesniffer

任意のホストオペレーティングシステムで実行されている任意のホストオペレーティングシステムに拡張された回答を提供します。この答えはあなたが(拡大するために)サイズを大きくしたいと仮定しています。

注:djule5 で指摘されているように(質問の直後のコメントを参照)、modifyhdは現在 modifymedium として知られています(ただし、下位互換性は保たれています)。ここではmodifymediumを使います。

1.実行中のVMを終了します

はい、この回答はVirtualBox VMで既に使用されているVDIファイルに対するものです。

2.ホスト上の端末を開いてディスクイメージのサイズを変更します

コマンドラインVBoxManageは、VDIファイル名を使用してディスクイメージのサイズを変更したくありません。

$ 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

そのため、ディスクイメージのUUIDを識別してください。

$ 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

ディスクイメージサイズを拡張します。

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

3.区分化ツールを使用して論理区画を拡張する

ホステッドVMを実行します。それから パーティショニングツール を使ってください。

ホスト型GNU/Linux用のいくつかのツール:

ホストシステムがWindowsを使用している場合:

4.パーティションの空き容量を確認します

VMはまだ余分な容量を使用していないため、(ホストシステム上の)VDIファイルのサイズは変更されていない可能性があります。楽しむ。

0
olibre