現在、96 GB の小さな SSD を搭載したマシンに Ubuntu 16.04 Server をインストールしています。これではサーバー上のすべてのユーザーには十分なスペースがないため、1 TB の HDD を追加し、フォルダーを/home
この 1 TB ドライブ上の新しいパーティションに明示的に移動したいと思います。
当初は、説明書に従ってこれをやろうと思っていましたここしかし、システムを詳しく調べてみると、LVM が有効になっていることがわかりました。
Filesystem Size Used Avail Use% Mounted on
udev 63G 0 63G 0% /dev
tmpfs 13G 9.5M 13G 1% /run
/dev/mapper/ubuntu--vg-root 98G 76G 18G 82% /
tmpfs 63G 0 63G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 63G 0 63G 0% /sys/fs/cgroup
/dev/sda2 473M 111M 338M 25% /boot
/dev/sda1 512M 136K 512M 1% /boot/efi
tmpfs 13G 0 13G 0% /run/user/1001
これまで読んだ内容に基づいて、新しいドライブをubuntu-vg
ボリュームグループに追加する必要があります(この答え)。しかし、この後どう進めていけばいいのかわかりません。ステップ4-5/home
? または、1 TB HDD にのみ明示的に移動し、/
SSD に残す別の方法はありますか?
答え1
やりたいことを実現するにはさまざまな方法がありますが、私がお勧めする方法は次のとおりです。
- 新しいディスクをパーティション分割します。1つの大きなLVMパーティションにすることも、他の目的のために1つ以上の非LVMパーティションを確保することもできます。私は、将来必要になった場合にLVM構成から1つ以上のパーティションを削除できるように、複数のLVMパーティション(別名物理ボリューム、またはPV)を作成することがあります。ない参照した LVM の回答に示されているように、パーティションなしで PV データ構造をディスク上に直接配置することをお勧めします。これは合法ですが、ハード ディスクは通常パーティション化されているため、混乱を招く可能性があります。
pvcreate
のようにコマンドを使用して、 LVM が使用できるように PV を準備しますsudo pvcreate /dev/sdb1
。vgextend
のように、を使用して新しい PV を既存のボリューム グループ (VG) に追加しますsudo vgextend ubuntu--vg /dev/sdb1
。- 入力
sudo pvdisplay
すると、PV のサイズなどの統計情報が表示されます。 lvcreate
のように、を使用して新しい論理ボリューム (LV) を作成しますsudo lvcreate -L 900G -n home ubuntu--vg /dev/sdb1
。サイズ ( 経由-L
) と LV が作成される PV (/dev/sdb1
) を設定できる構文を指定していることに注意してください。- もう一度入力して
sudo pvdisplay
、適切なサイズの LV が作成されたことを確認します。適切なサイズでない場合は、 を使用してサイズを変更するlvresize
か、 を使用して削除してlvremove
再試行してください。 - 次のように、LV 上にファイルシステムを作成します
sudo mkfs -t ext4 /dev/mapper/ubuntu--vg-home
。 - 新しい LV を、 のように便利な場所にマウントします
sudo mount /dev/mapper/ubuntu--vg-home /mnt
。 - 、、、またはお好みのツールを使用
/home
してディレクトリをコピーします。tar
cp
rsync
/etc/fstab
新しい LV を にマウントするように編集します/home
。- 現在の
/home
名前を別の名前 (たとえば ) に変更し、マウント ポイントとして機能する/home-orig
新しい空のディレクトリを作成します。/home
- 再起動して、動作することを期待します。
- すべて問題なければ、古い
/home-orig
ディレクトリを削除します。
ステップ8~11は、以下の手順の同等のステップと非常によく似ています。参照するウィキページそのため、これらの手順の詳細については簡単に説明しました。
私自身、このようなことは何度も行っていますが、ここで示したコマンド例は、関連するマニュアル ページを読んだ上で作成したため、詳細が抜けている可能性があります。マニュアル ページを確認し、エラーが発生した場合は、何が間違っているかがわかったら調整することをお勧めします。また、Ubuntu のデフォルトの LVM 命名がわかりにくいため、詳細を誤解している可能性があり、調整が必要になる場合があります。
これが完了すると、SSD の PV に未使用の領域ができます。/
この領域にルート ( ) LV を拡張したり、/home
LV を両方のディスクにまたがるように拡張したり、特別な目的のために別の LV を作成したりすることができます。
この手順のバリエーションとして、現在の/home
LV をそのままにして、新しいディスクに新しい LV を作成し、新しい LV をスピルオーバー領域として使い始めるという方法があります。コンピュータはマルチユーザー サーバーであるため、これは面倒かもしれませんが、これを行う理由があるかもしれません。たとえば、1 人か 2 人のユーザーがディスク領域の大部分を消費している場合は、そのユーザーのホーム ディレクトリだけを新しい領域に移動するか、新しい領域にディレクトリ (アクセスを容易にするためにマウント ポイントまたはシンボリック リンクを使用) を用意して、大きなファイルを新しい領域に移動するように指示することができます。このアプローチには、新しいハード ディスク ストレージ領域が古い SSD ストレージ領域よりも著しく遅くなる可能性があるため、他のユーザーに悪影響を与えないという利点があります。
答え2
新しいドライブを LVM に追加して、システムがそれをすべて 1 つのドライブとして扱うようにすることも、2 番目のドライブとして追加することもできます。2 番目の方法では、新しいドライブを /home 専用にすることができます。
まず、ドライブをシステムに追加し、希望するファイル システムでフォーマットします。UUID をメモしてから、すべてを /home から新しいドライブに移動します。新しいドライブをマウントするには、/home が空である必要があります。
次に、/etc/fstab ファイルを編集します。次の行を追加します。
UUID=(前述) /home (使用されるファイルシステム) デフォルト 0 2
注: デバイス名を使用することもできますが、UUID を使用すると、デバイス名が変更された場合でも正しいドライブがマウントされることが保証されます。
保存して再起動します。