2018年10月6日土曜日

LVMでパーティション作成

はじめに


LVMでディスクを設定します。細かい説明は適当にぐぐってください。

環境


VirtualBox環境で、2GBのHDDを2個目のHDDとして追加しています(/dev/sdb)。 この追加したHDDをLVMにします。OSはUbuntu 16.04.4 LTSです。

まとめ


$ sudo parted /dev/sdb
$ (parted) mklabel gpt
$ (parted) mkpart base-partition 0% 100%
$ (parted) set 1 lvm on
$ (parted) quit
$ sudo pvcreate /dev/sdb1
$ sudo vgcreate vg0 /dev/sdb1
$ sudo lvcreate -l 100%FREE -n lv0 vg0
$ sudo mkfs.ext4 /dev/vg0/lv0
$ sudo mkdir /disk1
$ sudo mount /dev/vg0/lv0 /disk1

詳細


  1. まずは元にするパーティションが必要なので、partedで作成します。
    $ sudo parted --list 
    
    で一覧を取得して、対象となるデバイスを選びます。 不明な点があればman partedを読みましょう。 parted --helpは内容を知っている人向けです。
  2. 選択したデバイスを指定してpartedを起動します。
    $ sudo parted /dev/sdb
    
  3. パーティションの情報を表示します。
    (parted) print
    ...
    パーティションテーブル: unknown
    ...
  4. パーティションの管理方式をGPTに変更します。
    (parted) mklabel gpt
    (parted) print
    ...
    パーティションテーブル: gpt
    ...
  5. パーティションを作成します。
    (parted) mkpart base-partition 0% 100%
    (parted) print
    モデル: ATA VBOX HARDDISK (scsi)
    ディスク /dev/sdb: 2147MB
    セクタサイズ (論理/物理): 512B/512B
    パーティションテーブル: gpt
    ディスクフラグ: 
    
    番号  開始    終了    サイズ  ファイルシステム  名前            フラグ
     1    1049kB  2146MB  2145MB                    base-partition
    
    man partedで表示されるマニュアルでは、
    mkpart part-type [fs-type] start end
                         Make  a  part-type  partition  for filesystem fs-type (if
                         specified), beginning at start  and  ending  at  end  (by
                         default  in megabytes).  part-type should be one of "pri‐
                         mary", "logical", or "extended".
    
    と書かれていますが、第1引数に指定した文字列は、パーティションの名前になります。
  6. LVM用のフラグを立てます。
    (parted) set 1 lvm on
    (parted) p                                                                
    モデル: ATA VBOX HARDDISK (scsi)
    ディスク /dev/sdb: 2147MB
    セクタサイズ (論理/物理): 512B/512B
    パーティションテーブル: gpt
    ディスクフラグ: 
    
    番号  開始    終了    サイズ  ファイルシステム  名前            フラグ
     1    1049kB  2146MB  2145MB                    base-partition  lvm
    

    parted上での作業は完了ですので、quitで抜けます。

  7. Physical Volumeを作ります。
    $ sudo pvcreate /dev/sdb1
    sdbではなく、sdb1を指定します。 結果は
    $ sudo pvdisplay
    で確認できます。
  8. Volume Groupを作ります。
    $ sudo vgcreate vg0 /dev/sdb1
    結果は
    $ sudo vgdisplay
    で確認できます。
  9. Logical Volumeを作ります。サイズ指定なら
    sudo lvcreate -L 1.996GiB -n lv0 vg0
    全て使うなら
    sudo lvcreate -l 100%FREE -n lv0 vg0
    とします。 出来上がったサイズは
    $ sudo lvdisplay
      --- Logical volume ---
      LV Path                /dev/vg0/lv0
      LV Name                lv0
      VG Name                vg0
      ...
      LV Size                2.00 GiB
      ...
    で確認できます。
  10. ext4でフォーマットします。
    $ sudo mkfs.ext4 /dev/vg0/lv0
  11. 出来上がったディスクをマウントします。
    $ sudo mkdir /disk1
    $ sudo mount /dev/vg0/lv0 /disk1
    $ df
    Filesystem                  1K-blocks     Used Available Use% Mounted on
    /dev/mapper/vg0-lv0           2027408     3072   1903300   1% /disk1
    
    マウントするときは、UUIDでも可能です。
    $ blkid
    /dev/mapper/vg0-lv0: UUID="0805787f-b7a0-488a-9321-ed7ed77322ab" TYPE="ext4"
    
    $ sudo mount UUID=3be08a7c-449a-4d74-b576-1064ef72a7ef /disk1
    

    fstabに追加したいときは、

    $ man fstab
    を参照するかぐぐりましょう。