/usr /var /home の引っ越し
ルートパーティションがいっぱいになったので /usr
/var
/home
を移動させることに。
引っ越し前の状況 ↓ /dev/sda4
を使ってません。明らかなOSインストール時のミス
Filesystem Size Used Avail Use% Mounted on /dev/sda2 6.8G 6.2G 263M 97% / tmpfs 3.8G 0 3.8G 0% /dev/shm /dev/sda1 310M 54M 240M 19% /boot tmpfs 512M 1.9M 511M 1% /tmp
Device Boot Start End Blocks Id System /dev/sda1 * 1 41 327680 83 Linux /dev/sda2 41 941 7222272 83 Linux /dev/sda3 1034 1702 5373742+ 82 Linux swap / Solaris /dev/sda4 1703 14594 103548533 83 Linux
パーティション拡張に LVM は使わず。使う機会が少なすぎて pvcreate
や vgscan
などのコマンドがなかなか覚えられないのと、今回のサーバではスナップショットや動的リサイズなどの機能は特に不要だと思ったため。
$ sudo fdisk /dev/sda # 状態確認 Command (m for help): p Device Boot Start End Blocks Id System /dev/sda1 * 1 41 327680 83 Linux /dev/sda2 41 941 7222272 83 Linux /dev/sda3 1034 1702 5373742+ 82 Linux swap / Solaris /dev/sda4 1703 14594 103548533 83 Linux # 怖いのでコマンド確認 Command (m for help): m Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) # パーティション削除 Command (m for help): d Partition number (1-4): 4 # 拡張パーティションを作成 Command (m for help): n Command action e extended p primary partition (1-4) e Selected partition 4 First cylinder (941-14593, default 941): 1703 Last cylinder, +cylinders or +size{K,M,G} (1703-14593, default 14593): 14593 # 確認 Command (m for help): p Device Boot Start End Blocks Id System /dev/sda1 * 1 41 327680 83 Linux /dev/sda2 41 941 7222272 83 Linux /dev/sda3 1034 1702 5373742+ 82 Linux swap / Solaris /dev/sda4 1703 14593 103546957+ 5 Extended # 新規パーティション作成 /var Command (m for help): n First cylinder (1703-14593, default 1703): Using default value 1703 Last cylinder, +cylinders or +size{K,M,G} (1703-14593, default 14593): +30G # 新規パーティション作成 /usr Command (m for help): n First cylinder (5620-14593, default 5620): Using default value 5620 Last cylinder, +cylinders or +size{K,M,G} (5620-14593, default 14593): +30G # 新規パーティション作成 /home Command (m for help): n First cylinder (9537-14593, default 9537): Using default value 9537 Last cylinder, +cylinders or +size{K,M,G} (9537-14593, default 14593): +30G # 確認 Command (m for help): p Device Boot Start End Blocks Id System /dev/sda1 * 1 41 327680 83 Linux /dev/sda2 41 941 7222272 83 Linux /dev/sda3 1034 1702 5373742+ 82 Linux swap / Solaris /dev/sda4 1703 14593 103546957+ 5 Extended /dev/sda5 1703 5619 31463271 83 Linux /dev/sda6 5620 9536 31463271 83 Linux /dev/sda7 9537 13453 31463271 83 Linux # 確定 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks.
Device or resource busy.
と言われたので一旦再起動。
$ sudo shutdown -r now
再起動後、フォーマット
# フォーマット $ sudo mkfs -t ext4 /dev/sda5 $ sudo mkfs -t ext4 /dev/sda6 $ sudo mkfs -t ext4 /dev/sda7 # UUID を確認 $ sudo blkid /dev/sda1: UUID="5c9c4ad7-25e6-4fdc-8f0a-074b73828596" TYPE="ext4" /dev/sda2: UUID="712a7910-1ec3-4cc3-a8ce-49cd82a0e0a4" TYPE="ext4" /dev/sda3: LABEL="swap" TYPE="swap" /dev/sda5: UUID="2b55d1af-fe53-4a1f-bed0-80a05b4e51d1" TYPE="ext4" /dev/sda6: UUID="6d120d95-67c3-40d0-8b4c-b8433a751182" TYPE="ext4" /dev/sda7: UUID="4fe9b898-64a4-407d-b27d-c97de6500819" TYPE="ext4" # マウントポイント作成 → マウント $ sudo mkdir /mnt/new_home /mnt/new_usr /mnt/new_var $ sudo mount /dev/sda5 /mnt/new_var $ sudo mount /dev/sda6 /mnt/new_usr $ sudo mount /dev/sda7 /mnt/new_home # ディレクトリ内容コピー $ sudo cp -a /home/* /mnt/new_home/ $ cd /usr $ sudo tar cpvf - . | sudo tar xpvf - -C /mnt/new_usr $ cd /var $ sudo tar cpvf - . | sudo tar xpvf - -C /mnt/new_var # fstab 修正 $ sudo cp /etc/fstab /etc/fstab.bak $ sudo vim /etc/fstab
追加したパーティションのUUIDとマウントポイントを追記。discard,noatime
はSSD用。
--- /etc/fstab.bak 2013-06-28 22:42:48.768179715 +0900 +++ /etc/fstab 2013-06-28 22:45:49.486342373 +0900 @@ -7,10 +7,13 @@ +UUID=2b55d1af-fe53-4a1f-bed0-80a05b4e51d1 /var ext4 defaults,discard,noatime 1 2 +UUID=6d120d95-67c3-40d0-8b4c-b8433a751182 /usr ext4 defaults,discard,noatime 1 2 +UUID=4fe9b898-64a4-407d-b27d-c97de6500819 /home ext4 defaults,discard,noatime 1 2
もういちど再起動。起動失敗すると面倒なので失敗しないよう祈る。
$ sudo shutdown -r now
コンソールにエラーなし、 /var/log/messages
にもエラーなしだったので、引っ越しは完了(多分)
一応 New Relic から届く disk full
のアラートを消したいので、古い /home
を削除する。
$ sudo mount /dev/sda2 /mnt/root $ sudo rm -rf /mnt/root/home $ sudo umount /mnt/root
同僚に fdisk とか危なすぎて使わない方がいいって言った矢先に使ってしまいました。許してください。
参考
http://krakenbeal.blogspot.jp/2010/06/ubuntuhomeusrvar.html