web-dev-qa-db-ja.com

VirtualBoxでDebianのサイズを変更する

サイズ3GBのHDが1つあるVM)があり、HDを7GBに拡大したいと思います。

したがって、ホストでこのコマンドを実行します(ゲストがシャットダウンしている間)。

VBoxManage modifyhd debian.vdi --resize 7168

次に、ゲストのDebian 6を実行し、次のようにします。

smith@debian6:~$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             2.8G  2.6G   60M  98% /
tmpfs                  61M     0   61M   0% /lib/init/rw
udev                   57M  160K   57M   1% /dev
tmpfs                  61M     0   61M   0% /dev/shm
smith@debian6:~$ Sudo parted /dev/sda print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 3221MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system     Flags
 1      1049kB  3035MB  3034MB  primary   ext3            boot
 2      3036MB  3220MB  185MB   extended
 5      3036MB  3220MB  185MB   logical   linux-swap(v1)
smith@debian6:~$ cat /proc/partitions
major minor  #blocks  name

   8        0    3145728 sda
   8        1    2962432 sda1
   8        2          1 sda2
   8        5     180224 sda5

したがって、HD /パーティションの自動サイズ変更(検出)はありません(ホスト内のVirtualBoxは現在7GBであることを示しています)。 OK...

それから私はします:

smith@debian6:~$ Sudo resize2fs /dev/sda1 
resize2fs 1.41.12 (17-May-2010)
The filesystem is already 740608 blocks long.  Nothing to do!
smith@debian6:~$ Sudo parted
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) select /dev/sda1                                                 
Using /dev/sda1
(parted) resize                                                           
WARNING: you are attempting to use parted to operate on (resize) a file system.
parted's file system manipulation code is not as robust as what you'll find in
dedicated, file-system-specific packages like e2fsprogs.  We recommend
you use parted only to manipulate partition tables, whenever possible.
Support for performing most operations on most types of file systems
will be removed in an upcoming release.
Partition number? 1                                                       
Start? 0                                                                  
End?  [3034MB]?

ここで私は立ち往生しています。上記のpartedで、3GBにサイズ変更するように求められます。その意味はありませんね。

このパーティションを拡大するにはどうすればよいですか?

1
Poni

VMをまだ再起動していない場合、OSはディスクが拡張されたことを認識していない可能性があります。そのため、最初にそれから始めます(または完全なVMシャットダウンしてから起動します。2番目に発生する問題は、使用中のドライブのパーティションテーブルへの編集は、システムが再起動されるまで(または、ドライブが再起動されないようになるまで)表示されないことです。したがって、再起動後にドライブが7GBとして表示されると仮定すると、パーティションを拡大してから再起動し、最後にresize2fsコマンドを発行する必要があります。ところで、私は通常partedを使用しませんが、次のようになります。 re-sizeコマンドは、パーティションとファイルシステムの両方のサイズを変更しようとします。この場合、最初に(fdiskを介して)パーティションのサイズを変更し、OSができるようになってからファイルシステムのサイズを変更することをお勧めします。 (再起動によって)パーティションテーブルを再読み込みします。ああ、最初に適切なバックアップがあることを確認します。

編集:3GBのDebian VMをVirtualBoxにセットアップし、7GBに拡張するために使用した手順のログを記録しました。概要:VMをシャットダウンし、VDIをバックアップします。ファイル、VDIの拡張、VMの再起動、fdiskの使用-ユニットをセクターに設定し(uコマンド)、パーティションテーブルを表示し(p)、既存のパーティションを削除し、ルートパーティションを再作成します(元のセクターと同じ開始セクターを使用するように注意してください)、再作成します拡張パーティションとスワップ、プライマリを起動可能としてマーク(a)、書き込み、再起動、ファイルシステムのサイズ変更。

root @ debian:〜#cat/proc/partitions
メジャーマイナー#blocks名

8 0 3145728 sda
8 1 2962432 sda1
8 2 1 sda2
8 5 180224 sda5

root @ debian:〜#exit

$ VBoxManageリストrunningvms
"Debian" {b32e56f1-a6b9-4753-a67d-19f03503f884}

$ VBoxManage controlvm Debian acpipowerbutton

$ cp Debian.vdi Debian.vdi.backup

$ VBoxManage modifyhd Debian.vdi 7168

$ VBoxManage startvm Debian

$ ssh [email protected]

root @ debian:〜#cat/proc/partitions
メジャーマイナー#blocks名

8 0 7340032 sda
8 1 2962432 sda1
8 2 1 sda2
8 5 180224 sda5

root @ debian:〜#swapoff/dev/sda5
root @ debian:〜#fdisk/dev/sda

コマンド(ヘルプの場合はm):
表示/入力単位をセクターに変更する

コマンド(ヘルプの場合はm):p

ディスク/ dev/sda:7516 MB、7516192768バイト

デバイスの起動開始終了ブロックIDシステム
/dev/sda1 * 2048 5926911 2962432 83 Linux
パーティション1はシリンダー境界で終了しません。
/dev/sda2 5928958 6289407 1802255拡張
パーティション2はシリンダー境界で終了しません。
/dev/sda5 5928960 6289407 180224 82Linuxスワップ/ Solaris

コマンド(ヘルプの場合はm):d
パーティション番号(1-5):5

コマンド(ヘルプの場合はm):d
パーティション番号(1-5):2

コマンド(ヘルプの場合はm):d
選択したパーティション1

コマンド(ヘルプの場合はm):n
コマンドアクション
e拡張
pプライマリパーティション(1-4)
p
パーティション番号(1-4):1
最初のセクター(63-14680063、デフォルト63):2048
最後のセクター、+セクターまたは+サイズ{K、M、G}(2048-14680063、デフォルト14680063):+ 6G

#Impportant!この場合のFdiskのデフォルトは開始セクター63ですが、元のOSインストールはセクター2048で開始されました。元の開始セクターと同じ(手動で)指定する必要があります。

コマンド(ヘルプの場合はm):p

ディスク/ dev/sda:7516 MB、7516192768バイト

デバイスの起動開始終了ブロックIDシステム
/dev/sda1 2048 12584960 6291456+ 83 Linux

コマンド(ヘルプの場合はm):n
コマンドアクション
e拡張
pプライマリパーティション(1-4)
e
パーティション番号(1-4):2
最初のセクター(63-14680063、デフォルト63):12584961
最後のセクター、+セクターまたは+サイズ{K、M、G}(12584961-14680063、デフォルトは14680063):
デフォルト値14680063を使用

コマンド(ヘルプの場合はm):n
コマンドアクション
l論理(5以上)
pプライマリパーティション(1-4)
l
最初のセクター(12585024-14680063、デフォルト12585024):
デフォルト値12585024を使用
最後のセクター、+セクターまたは+サイズ{K、M、G}(12585024-14680063、デフォルト14680063):
デフォルト値14680063を使用

コマンド(ヘルプの場合はm):p

デバイスの起動開始終了ブロックIDシステム
/dev/sda1 2048 12584960 6291456+ 83 Linux
パーティション1はシリンダー境界で終了しません。
/dev/sda2 12584961 14680063 1047551 + 5拡張
パーティション2はシリンダー境界で終了しません。
/dev/sda5 12585024 14680063 1047520 83 Linux

コマンド(ヘルプの場合はm):a
パーティション番号(1-5):1

コマンド(ヘルプの場合はm):t
パーティション番号(1-5):5
16進コード(コードをリストするにはLを入力):82
パーティション5のシステムタイプを82に変更(Linuxスワップ/ Solaris)

コマンド(ヘルプの場合はm):w
パーティションテーブルが変更されました!

Ioctl()を呼び出してパーティションテーブルを再読み取りします。

警告:パーティションテーブルの再読み取りはエラー16で失敗しました:デバイスまたはリソースがビジーです。
カーネルは引き続き古いテーブルを使用します。新しいテーブルはで使用されます
次回の再起動時、またはpartprobe(8)またはkpartx(8)の実行後
ディスクの同期。
root @ debian:〜#再起動

$ ssh [email protected]

root @ debian:〜#cat/proc/partitions
メジャーマイナー#blocks名

8 0 7340032 sda
8 1 6291456 sda1
8 2 1 sda2
8 5 1047520 sda5
root @ debian:〜#df /
ファイルシステム1K-ブロック使用可能使用可能使用%マウント済み
/dev/sda1 2915832 809244 1958468 30%/

root @ debian:〜#resize2fs/dev/sda1
resize2fs 1.41.12(2010年5月17日)
/dev/sda1のファイルシステムは/にマウントされています。オンラインサイズ変更が必要
old desc_blocks = 1、new_desc_blocks = 1
/dev/sda1から1572864(4k)ブロックへのオンラインサイズ変更を実行しています。
/dev/sda1のファイルシステムの長さは1572864ブロックになりました。

root @ debian:〜#df /
ファイルシステム1K-ブロック使用可能使用可能使用%マウント済み
/dev/sda1 6194240 810684 5071636 14%/

root @ debian:〜#mkswap/dev/sda5

3
Derek Pressnall

この特定のインスタンスでは、/ dev/sda1パーティションのサイズを増やすことはできません。これは、/ dev/sda1パーティションに隣接して拡張パーティション(最終的にはスワップパーティション)があるためです。

スペースを拡張できるのは、ターゲットパーティションの周囲に連続したスペースがある場合のみです。この場合、スペースはありません。もちろん、これはパーティションをリロードしたくない場合にも当てはまります。

この場合、スワップパーティションを削除し、拡張パーティションを削除し、パーティション1を拡張してスワップパーティション用のスペースを残し、拡張パーティションを再作成してから、スワップパーティションを再作成する必要があります。次に、拡大されたパーティションでresize2fsを実行できます。正しく機能させるには、変更されたスワップパーティションでもそのmkswapを実行する必要があります。

2
mdpc