タグ: fstab

CentOS7 で cl-root の容量を拡張する

なんでか判らないけどデフォルトでインストールしていくと
/dev/mapper/cl-root
のサイズが50GBで
/dev/mapper/cl-home
に残りの容量が割り振られている。

いやいや、デスクトップで使うわけじゃないのでhomeそんなにいらないし。
むしろ/root配下に何でもかんでも入れちゃうクセがあるのでこっちをでかくして欲しいなぁ。みたいな。

というわけで、homeをrootに統合してしまいます。

まず、中身を見てみる

# df -Th
ファイルシス        タイプ   サイズ  使用  残り 使用% マウント位置
/dev/mapper/cl-root xfs         50G   19G   30G   39% /
devtmpfs            devtmpfs   3.8G     0  3.8G    0% /dev
tmpfs               tmpfs      3.8G     0  3.8G    0% /dev/shm
tmpfs               tmpfs      3.8G   25M  3.8G    1% /run
tmpfs               tmpfs      3.8G     0  3.8G    0% /sys/fs/cgroup
/dev/mapper/cl-home xfs        1.7T   19G  1.7T    2% /home
/dev/sdb1           ext4       1.7T  272G  1.3T   18% /var/www
/dev/sda2           xfs       1014M  249M  766M   25% /boot
/dev/sda1           vfat       200M  9.5M  191M    5% /boot/efi
tmpfs               tmpfs      777M     0  777M    0% /run/user/0

うむ。やっぱりhomeを別枠で確保する必要なし!
homeをアンマウント。

# umount /dev/mapper/cl-home
# vgdisplay
# lvdisplay
# lvremove -f /dev/mapper/cl-home
# lvextend -l +100%FREE /dev/mapper/cl-root

で、
あとは再起動して xfs_growfs すれば cl-root が増えてる算段なのですが、
その前にやることがある。

# vi /etc/fstab
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=5ae96875-0ebe-4a26-8c12-89acf6455b5b /boot xfs     defaults        0 0
UUID=D912-935E          /boot/efi               vfat    umask=0077,shortname=winnt 0 0
/dev/mapper/cl-home     /home                   xfs     defaults        0 0
/dev/mapper/cl-swap     swap                    swap    defaults        0 0
/dev/sdb1               /var/www                ext4    defaults        0 0

こんなカンジで /dev/mapper/cl-home にも割付が書いてあるので、これをコメントアウトする。
しないと再起動後、Emergency Mode 突入という悲惨なことになる。

では改めて、再起動。

reboot
# df -Th
ファイルシス        タイプ   サイズ  使用  残り 使用% マウント位置
/dev/mapper/cl-root xfs        1.7T   19G  1.7T    2% /
devtmpfs            devtmpfs   3.8G     0  3.8G    0% /dev
tmpfs               tmpfs      3.8G     0  3.8G    0% /dev/shm
tmpfs               tmpfs      3.8G   25M  3.8G    1% /run
tmpfs               tmpfs      3.8G     0  3.8G    0% /sys/fs/cgroup
/dev/sdb1           ext4       1.7T  272G  1.3T   18% /var/www
/dev/sda2           xfs       1014M  249M  766M   25% /boot
/dev/sda1           vfat       200M  9.5M  191M    5% /boot/efi
tmpfs               tmpfs      777M     0  777M    0% /run/user/0

増えた増えた(増えてない)。
ちなみに消えてしまったようにみえる/homeディレクトリは勝手に?/直下に作成される?みたい?

USB-HDD を追加

32GBのMicroSDしか無い状態なので、外付けでHDDを追加します。
用意したのは裸族の集合住宅5Bay
Raspberry側はUSB2.0だけど、気にしない。

接続してからfdiskで、接続場所を確認。

$ sudo fdisk -l

Disk /dev/mmcblk0: 31.5 GB, 31486640128 bytes
4 heads, 16 sectors/track, 960896 cylinders, total 61497344 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xa6202af7

        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1            8192      122879       57344    c  W95 FAT32 (LBA)
/dev/mmcblk0p2          122880    61497343    30687232   83  Linux

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sda: 3000.6 GB, 3000592982016 bytes
255 heads, 63 sectors/track, 364801 cylinders, total 5860533168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1  4294967295  2147483647+  ee  GPT
Partition 1 does not start on physical sector boundary.

こんなカンジ。

接続場所が確認できたら、今度はUUIDの確認。

$ sudo blkid /dev/sda1
/dev/sda1: UUID="e4da63ba-3a37-4970-a150-43e26f28a42b" TYPE="xfs"

ふむ。

UUIDが確認できたら、この情報を元にfstabへ追記。

$ sudo vi /etc/fstab

# Drive-1 3TB
UUID=e4da63ba-3a37-4970-a150-43e26f28a42b /media/D xfs defaults 0 0

こんなんで。

あとは

mount -a

でマウントさせればOK。

USBメディアをマウント

コンソールのみの端末でUSBメモリを認識・マウントさせる方法。

  1. 事前に
    mkdir /mnt/usb
    chmod 777 /mnt/usb
    でUSBのマウントポイントを作成しておく。
  2. USBメモリを接続する。
  3. dmesg | grep sd*
    で、接続情報確認。
    (以下はsdbに接続情報があったと仮定。)
  4. mount -t vfat /dev/sdb1 /mnt/usb/
    で、マウントする。

アンマウントするときは

  1. umount /mnt/usb/
    で。
    アクセスランプが消えていることを確認して、取り外す。

3TB HDD を 1 パーティションで (parted コマンド)

fdisk コマンドは2TB以上のHDDには対応していない。
fdisk を叩いた時に出てくる

警告: GPT (GUID パーティションテーブル) が '/dev/sdb' に検出されました!
この fdisk ユーティリティは GPT をサポートしません。GNU Parted を使ってください。

が、その意味だった。完全にスルーしていた。
なので、警告の通り、parted コマンドを使ってみる。
これからは fdisk ではなくて、parted ってことなのかな。

まず
# parted -l
で、接続されているディスクの状況を確認。

# parted -l
モデル: ATA WDC WD20EARS-00M (scsi)
ディスク /dev/sda: 2000GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt

番号  開始    終了    サイズ  ファイルシステム  名前  フラグ
 1    1049kB  2000GB  2000GB

モデル: ATA ST3000DM001-1CH1 (scsi)
ディスク /dev/sdb: 3001GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt

番号  開始  終了  サイズ  ファイルシステム  名前  フラグ

モデル: ATA Hitachi HDT72502 (scsi)
ディスク /dev/sdc: 250GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos

番号  開始    終了   サイズ  タイプ   ファイルシステム  フラグ
 1    1049kB  525MB  524MB   primary  ext4              boot
 2    525MB   250GB  250GB   primary                    lvm

モデル: Linux device-mapper (linear) (dm)
ディスク /dev/mapper/VolGroup-lv_home: 177GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: loop

番号  開始   終了   サイズ  ファイルシステム  フラグ
 1    0.00B  177GB  177GB   ext4

モデル: Linux device-mapper (linear) (dm)
ディスク /dev/mapper/VolGroup-lv_swap: 19.0GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: loop

番号  開始   終了    サイズ  ファイルシステム  フラグ
 1    0.00B  19.0GB  19.0GB  linux-swap(v1)

モデル: Linux device-mapper (linear) (dm)
ディスク /dev/mapper/VolGroup-lv_root: 53.7GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: loop

番号  開始   終了    サイズ  ファイルシステム  フラグ
 1    0.00B  53.7GB  53.7GB  ext4

SATAの結線を適当にやったので、/dev/sdc が起動ディスク。/dev/sdb と /dev/sda が増設ディスクという変な構成になってしまった。
気にせず /dev/sdb を編集していく。

# parted /dev/sdb
GNU Parted 2.1
/dev/sdb を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) print                                                            
モデル: ATA ST3000DM001-1CH1 (scsi)
ディスク /dev/sdb: 3001GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt

番号  開始  終了  サイズ  ファイルシステム  名前  フラグ

で、ディスクの詳細を確認。

(parted) mklabel                                                          
新しいディスクラベル? gpt                                                 
警告: いま存在している /dev/sdb のディスクラベルは破壊され、このディスクの全データが失われます。続行しますか?
はい(Y)/Yes/いいえ(N)/No? y

で、ディスクラベルを聞かれるが、要はパーティションテーブルの規格はどれにする?ということらしい。
選択できるのは
aix amiga bsd dvh gpt loop mac msdos pc98 sun
の 10種類。
今回は2TB越えHDDなので GPT を選択することになるか、と。

(parted) mkpart                                                           
パーティションの名前?  []? secondDisk                                     
ファイルシステムの種類?  [ext2]? ext4                                     
開始? 0
終了? 3001GB
警告: The resulting partition is not properly aligned for best performance.
無視(I)/Ignore/取消(C)/Cancel? i

で、パーティションの名前、ファイルシステム、開始と終了を聞かれるので、
目一杯ということで答える。
警告の「The resulting partition is not properly aligned for best performance.」は、
「開始?」の指定を「0」とだけ入力すると出てくるらしい。
「0%」と入力すると出ない。

上記の作業が終了したら

(parted) quit                                                             
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。

で終了。fstabの更新についてアドバイスしてくれる。親切。

次に

# mkfs.ext4 /dev/sdb1

でフォーマットする。

フォーマット完了後、

# vi /etc/fstab

でマウント位置を指定、変更して保存。

mount -a

でマウントさせる。
df で確認してみる。

# df -h
Filesystem            Size  Used Avail Use% マウント位置
/dev/mapper/VolGroup-lv_root
                       50G  958M   46G   3% /
tmpfs                 7.8G     0  7.8G   0% /dev/shm
/dev/sdc1             485M   52M  408M  12% /boot
/dev/mapper/VolGroup-lv_home
                      163G  188M  154G   1% /home
/dev/sda1             1.8T  196M  1.7T   1% /mnt/2nd
/dev/sdb1             2.7T  201M  2.6T   1% /mnt/3rd

うむ。いいカンジ。

NFS で Mac にマウント

LinuxとかMacがクライアントならsambaを使う必要なかった…
というわけで設定。

とりあえず、minimumインストールだともの自体が入っていないのでインストールから。

yum install rpcbind
yum install nfs-utils

CentOS6 だとrpcbindというものが必要になるので同時に入れておく。
CentOS5 の場合は portmap が必要になるらしい。

マウントされる側(nfsサーバ側)で

vi /etc/exports

として中身を書いていく。

/mnt/2nd 192.168.1.1/24(rw,insecure,no_root_squash,sync)
/mnt/3rd 192.168.1.1/24(rw,insecure,no_root_squash,sync)
/mnt/4th 192.168.1.1/24(rw,insecure,no_root_squash,sync)
/mnt/5th 192.168.1.1/24(rw,insecure,no_root_squash,sync)
/mnt/6th 192.168.1.1/24(rw,insecure,no_root_squash,sync)

こんなカンジ。
Macで接続する必要がある場合は、「insecure」を書いておくこと。
exportsのmanページには

secure
このオプションを指定すると、IPPORT_RESERVED (1024) より小さな internet ポートから発したリクエストしか受けつけない。 このオプションはデフォルトで有効になっている。 無効にするには insecure と指定する。

との記載があるが、MacのNFSクライアントはこの制限に合致しないらしい。

書いたら

/etc/init.d/rpcbind start
/etc/init.d/nfslock start
/etc/init.d/nfs start

でnfsサービスを起動する。

# /etc/init.d/nfs restart
NFS デーモンを終了中:                                      [  OK  ]
NFS mountd を終了中:                                       [  OK  ]
NFS サービスを終了中:                                      [  OK  ]
Shutting down RPC idmapd:                                  [  OK  ]
NFS サービスを起動中:                                      [  OK  ]
NFS mountd を起動中:                                       [  OK  ]
NFS デーモンを起動中:                                      [  OK  ]
RPC idmapd を起動中:                                       [  OK  ]

こんなカンジになればOK。
exportsファイルを書き換えただけであれば

exportfs -a

で再読み込みすることができる。

Macでマウントするときは、Finderの「サーバへ接続」で、

nfs://192.168.1.13/mnt/2nd

のように接続すれば良い。

CentOSでマウントするときは、

vi /etc/fstab

の中に

192.168.1.13:/mnt/D/ /mnt/nfs/D/ nfs defaults 0 0
192.168.1.13:/mnt/E/ /mnt/nfs/E/ nfs defaults 0 0
192.168.1.13:/mnt/F/ /mnt/nfs/F/ nfs defaults 0 0

のように書く。
fstabの再読み込みは

fstab -a

で。

HDDを増設

gnomeなりxfceなり動作していればこんな手間はかからないような。
コンソールのみの環境だからか、いろいろと作業が必要になります。

  1. まず、接続されたHDDがサーバに認識されているか確認する。
    dmesg | grep sd*

    辺りで確認できる、はず。
    接続したHDD上にがSATAではなく、PATAの場合は

    dmesg | grep hd*

    となるらしい。
    ここでは「/dev/sdb」にディスクが見つかった体で進みます。

  2. HDD上にパーティションを作成する。
    fdisk /dev/sdb

    で、対話モードのディスクユーティリティに入ります。
    helpを確認すると「n」で新しいパーティションを作成できるようなので、これで進みます。
    拡張 or 基本パーティション → p(基本パーティション)
    パーティション番号 → 1
    先頭シリンダと最終シリンダ → 全領域を使用するので両方ともエンターキーのみ
    最後に「w」で今まで設定した項目を書き込んで確定、ということになります。

  3. 作成したパーティションをフォーマットする。
    mkfs.ext4 /dev/sdb1

    でext4形式でフォーマットします。
    /dev/sdb1は/dev/sdbにあるディスクの1番目のパーティションという意味のようです。
    2TBで1時間ぐらいかかった、かな?

  4. フォーマットされたパーティションをマウントする。
    ここから先はいつもどおり。
    事前に

    mkdir /mnt/D
    chmod 777 /mnt/D

    でHDDのマウントポイントを作成しておきます。

    vi /etc/fstab

    で、fstabに

    /dev/sdb1 /mnt/D ext4 defaults 0 0

    ぐらいで書き込み、終わったら

    mount -a

    で、fstabを再読み込み。

    df

    で、サーバに認識されているか確認します。

fstabに追記

相手方がsambaで共有設定している場合はそれに合わせて

vi /etc/fstab

//192.168.1.2/D /media/D cifs username=hoehoe,password=moemoe 0 0

とか記述していく。

ただ単に自前のハードディスクをマウントさせたい場合は
CentOSの場合

/dev/sdc /media/D ext4 defaults 0 0

ubuntuの場合

UUID=adc077c2-f98e-40b6-8b6d-66d4d65ffd95 /media/D ext4 defaults 0 0

というようなカンジになる。
ubuntuはUUIDで書かないとマウントしてくれない。

sambaの共有ディスクを自動マウント

samba-clientがインストールされていなかったら

yum install samba-client

で事前にインストールする。
自分が誰かに共有ディスクを配信するわけではないのでclientだけでOK。

vi /etc/fstab

で、以下のようなカンジで追記する。

# Drive-D
//192.168.1.1/media/D /mnt/D/ smbfs username=hoehoe,password=moemoe,defaults 0 0

変更・保存したら

mount -a

とやると、fstabに書いてあることを再度実行してくれるので、マウントできるか確認して終了。

HDDを自動マウント

vi /etc/fstab

# /dev/sdc Drive-D
UUID=adc077c2-f98e-40b6-8b6d-66d4d65ffd95 /media/D ext4 defaults 0 0
# /dev/sdb Drive-E
UUID=efe517f6-803f-4e1f-9117-23cef2f2327a /media/E ext4 defaults 0 0
# /dev/sde Drive-F
UUID=0fceb5f9-8ade-4a04-b7c7-0cf486a957e1 /media/F ext4 defaults 0 0
# /dev/sde Drive-G
UUID=da17c4ef-8ab3-414d-b8d1-60f363d5b79b /media/G ext4 defaults 0 0

UUIDで書かなくてはいけないので

ls -l /dev/disk/by-uuid

でマウント位置とUUIDを調べておく。
これで再起動すれば自動的にマウントされるようになるのだが、再起動したくない場合は

mount -a

とすることでfstabの内容を再読み込みすることができる。