VMwareでは、オンラインで仮想ディスクのサイズを拡張できます-VMが実行されている場合。Linuxシステムで次に期待される手順は次のとおりです。
fdisk
を使用して、大きなパーティションを削除して作成しますpvresize
で拡張しますlvresize
操作に空きエクステントを使用するresize2fs
(ファイルシステムの場合)しかし、私は最初のステップで立ち往生しています:fdisk
とsfdisk
はまだディスクの古いサイズを表示しています。
私のディスクは、仮想LSI Logicコントローラーのおかげで接続されたSCSI仮想ディスクです。
Linuxカーネルで利用可能な仮想ディスクサイズとパーティションテーブル情報を更新する方法再起動なし?
私の知る限り、VMWareツールのおかげで、再起動することなく、さらにはユーザーの操作なしに、実行中のWindowsでこの手順を実行できます。 Linuxでは、すべてのステップをオンラインでも実行することを期待しており、ステップ2、3、および4がオンラインで機能することをすでに知っています。しかし、最初の1つ-パーティションテーブルで宣言されたパーティションサイズの変更(まだ)には、再起動が必要なようです。
更新:私のシステムはカーネル2.6.26のDebian Lennyであり、拡張したディスクは「/」の「ルート」LVを含む大きなPVのメインディスクです。
再起動せずにこれを行うことができます。追加されたスペースでパーティションが更新されるまで、pvresizeは物理ボリュームのサイズを変更しません。パーティションをfdiskし、新しいフルサイズのディスクで再作成する必要があります。ドライブを再スキャンして、最初の場所に余分なスペースがあることを確認できます。
詳細: http://theducks.org/2009/11/expanding-lvm-partitions-in-vmware-on-the-fly/
他の回答はあなたの質問に対応していません。すでに接続されているディスクを再スキャンする正しいコマンドを特定しました。
すでに接続されているディスクを再スキャンする必要があります。まず、再スキャンするディスクを特定します。
ls /sys/class/scsi_disk/
私の例では、0:0:0:0
という名前のシンボリックリンクが表示されるので、このscsi-diskを再スキャンします。
echo '1' > /sys/class/scsi_disk/0\:0\:0\:0/device/rescan
私はVMwareディスクも拡張したばかりで、正しいコマンドを見つけるために他の答えを探す必要がありました。うまくいけば、これは無駄な試みから将来の検索者を救うでしょう。
ルートファイルシステム/
がサイズ変更されたディスクにマウントされている限り、パーティションテーブルとディスクサイズは、Linux 2.6.26でのSCSI再スキャンでは更新されません。
新しいカーネルのバージョンですぐに良くなることを願っています。
だから私はしなければならなかった:
fdisk
に新しいディスクサイズが表示されますfdisk
の古いプライマリPVパーティションを削除しますpartprobe
パッケージからparted
を実行します_/
がそこにマウントされていない場合のみpvresize
を実行して新しい空き領域を取得し、lvextend
およびresize2fs
を実行して、ファイルシステムにさらに領域を割り当てることができます。Grub2はカーネルイメージをLVMパーティション上のファイルシステムから直接ロードできるため、その愚かな古いパーティションテーブルを単に破棄して、デバイスで直接pvcreate
を実行することをお勧めします。しかし、そのようなセットアップは、ディストリビューションのインストーラーではまったく明白ではありません。
更新:カーネル3.16およびparted
3.2を実行しているDebian GNU/Linux Jessie 8.2で確認したところ、partprobe
はcfdisk
再起動なし。 pvresize
は直後に機能します。
論理PCパーティションとして保存されているPVを拡張する場合、たとえば、拡張プライマリパーティション/dev/sda5
の/dev/sda2
は、fdisk
を使用せず、parted
を使用してください。
parted /dev/sda2 -1
parted /dev/sda5 -1
pvresize /dev/sda5
より大きなパーティションを作成する前に、ディスクを再スキャンする必要があります。
Centosではこれを行うことができます
ls /sys/class/scsi_Host
その後、各ホスト
echo "- - -" > /sys/class/scsi_Host/host#/scan
(#を番号に置き換えます)
パーティションのサイズを変更したら、extまたは使用しているファイルシステムを拡張する上記の手順がもう1つあります。
ただし、いつかはそのパーティションをアンマウントする必要があります。 2番目のvmwareディスクを追加し、lvmを使用して新しいディスクに拡張する(そして古いディスクを置き換える場合は削減する)ことで、プロセス全体をライブで実行できます。
私のPVはパーティションにありませんでしたが、/ dev/sdbに直接存在していました。
Ubuntu 16.04.1では、ボリュームを1024GBから1.4TBにサイズ変更するために次のことができました。
echo '1' > /sys/class/scsi_disk/32\:0\:1\:0/device/rescan
pvresize /dev/sdb
lvextend -l +100%FREE /dev/nvr01-opt/opt
resize2fs /dev/nvr01-opt/opt
fdisk
は不要で、スペースはすぐに使用可能になりました。
必要な正確なコマンドを説明するのに十分な詳細情報を提供していませんが、基本的にはlvextend
コマンドを使用して論理ボリュームを拡張し、次にe2fsck
コマンドを使用する必要があります。実際にファイルシステムを拡張するresize2fs
コマンド。これらの各コマンドには、追加のパラメーター、具体的には提供できないデバイスとファイルシステムの情報が必要になりますが、これらを知る必要があります。各コマンドの--helpオプションを使用して、具体的な使用方法を説明するだけでなく、おそらく、これらのパラメータの入力に役立つpvdisplay
、lvdisplay
、mount
コマンドを使用することになります。
コマンドの完全なセットを誰も投稿していないので、ここに行きます:
# the following steps are for adding a new HDD
apt install scsitools
rescan-scsi-bus
pvcreate /dev/sdX
vgextend /dev/vgname /dev/sdx
lvextend -l +100%FREE /dev/vgname/root
resize2fs /dev/vgname/root
#if resizing existing HDD
fdisk /dev/sdX
create new partition
pvcreate /dev/sdXn
vgextend /dev/vgname /dev/sdXn
lvextend -l +100%FREE /dev/vgname/root
resize2fs /dev/vgname/root