LJason

LJason

野生程序猴子
twitter
github
nintendo switch
steam
bilibili
email

Linuxのブラックテクノロジー —— LVM

数日前、私は Raspberry Pi で Android 6.0 のソースコードをダウンロードしました。元々は 32G の USB フラッシュドライブと 16G のメモリーカードをマウントしていました。インターネットによると、Android 4.4 のソースコードは 20GB 以上あると言われていましたので、32G の容量は十分だと思いました。

しかし、実際には 32G(実際には 30G しかありません)がすべて埋まってしまい、ディスク容量が不足しているという警告が表示されました。

残念ながら、3TB の外付けハードドライブは Raspberry Pi には電圧が足りず、マウントすることができませんでした。32G より大きなストレージが手元になかったので、USB フラッシュドライブを拡張できないか考えました(注意!拡張は危険です!)。

後で見つけた LVM(LVM は拡張ではありません)を見つけました。

論理ボリュームマネージャ(Logical Volume Manager、略して LVM)は、Linux カーネルが提供する論理ボリューム管理機能です。これは、ハードディスクのパーティションの上に論理レイヤーを作成し、ハードディスクパーティションシステムをシステム管理しやすくします。- ウィキペディア:論理ボリュームマネージャ

この概念は理解しにくいかもしれませんので、以下に図を描きました(再インストール後に PS をインストールしていないことに気づきました):

00

ユーザーにとっては、USB フラッシュドライブ、メモリーカードなどの複数の物理ハードウェアが装備されていますが、Linux にとっては 1 つのパーティションしかありません。

Android のソースコードのダウンロードを例にとると、理解しやすくなるでしょう。

Android 6.0 のソースコードをダウンロードしたいのですが、32G の USB フラッシュドライブでは容量が足りないため、LVM を使用して 32G の USB フラッシュドライブと 16G のメモリーカードを 1 つのパーティションに統合します(バックアップを忘れずに行ってください)。

準備#

fdisk -lコマンドを使用してディスクを確認します:

01

実際の容量は 30G の USB フラッシュドライブと 14.6G のメモリーカードです。そして、統合を開始するために LVM をインストールします:

apt-get install lvm2

両方が NTFS 形式であるため、LVM 形式にフォーマットする必要があります。まず、メモリーカードを選択します(「1」を含めない):

fdisk /dev/sda

まず、pを入力してパーティションを表示します:

02

1 つのパーティションしかないことがわかりますので、dを入力して削除するパーティションを選択します(1 つのパーティションしかないため、選択肢はありません):

03

次に、nを入力して新しいパーティションを作成し、すべてデフォルトで Enter キーを押します:

04

再度、pを入力してパーティションを表示します:

05

タイプが Linux に変わっていることがわかりますが、LVM を使用するためには ID を 8e に変更する必要があります。tを入力してパーティションのタイプを変更します:

06

1 つのパーティションしかないため、パーティション 1 を直接選択し、タイプを8eに変更します。再度pを入力して表示します:

07

ID が 8e に変わり、タイプも Linux LVM に変わりました。最後にwを入力して変更を書き込みます:

08

残りのパーティションは自分で作成してください。操作は同じです。作成後、fdisk -lを使用してパーティションを確認します:

09

両方のパーティションのタイプが Linux LVM に変わったら、LVM を正式に開始できます。

物理ボリュームの作成#

まず、物理ボリュームを作成します。コマンドはpvcreate /dev/sda1 /dev/sdb1 /dev/sdc1 ......です。1 つまたは複数作成できますが、ここでは次のようにします:

pvcreate /dev/sda1 /dev/sdb1

10

作成が成功したら、pvsを使用して物理ボリュームを確認できます:

11

ボリュームグループの作成#

ボリュームグループを作成するコマンドは次のとおりです:

vgcreate VolGroup /dev/sda1 /dev/sdb1

作成後、vgsを使用して確認できます:

12

ボリュームグループのサイズは 44.56g であり、USB フラッシュドライブとメモリーカードの合計です。vgdisplay VolGroupを使用して、新しく作成したボリュームグループ VolGroup の詳細を確認できます:

13

論理ボリュームの作成#

VolGroup の詳細で Total PE が 11408 であることがわかります。つまり、割り当て可能なサイズは:4M * 11408 = 45632M = 44.5625G

すべての 11408 個の PE を使用して、名前が storage の論理ボリュームを作成します:

lvcreate -l 11408 -n storage VolGroup

次に、lvsを使用して確認します:

14

ボリュームを作成するために ext4 ファイルシステムを使用し、/mnt/storage にマウントします(mkdir /mnt/storageコマンドを実行して /mnt/storage フォルダを作成しておくことを忘れないでください)。最後に、df -hを使用してパーティションを確認します:

mkfs.ext4 /dev/VolGroup/storage
mount /dev/VolGroup/storage /mnt/storage

15

起動時のマウント#

/etc/fstab に次の行を追加します:

/dev/mapper/VolGroup-storage /mnt/storage ext4 defaults 0 0

その後、自動的にマウントされているかどうかを確認するために再起動してください。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。