2013/09/09

Linuxの /var をルートから別パーティションに移動した

Arch Linuxのルート(/)パーティションの容量が足りなくなってきました。
nacl_sdkのアップデートをしようとして気づいたという(^^;)
整理も限界があるので、思い切って、/var を別のパーティションに移しました。
※ /var には、ログファイル、キャッシュ、その他諸々のファイルが保存されます。
消してもいいファイルもあるのですが、いずれにせよ日頃から拡大したいと考えていたので(汗;)
ちなみに /home はインストール時に別パーティションにしておいたのですがw

特にどのLinux環境でも大凡同じで、簡単に行えますが、一応メモしておきます。
ちなみに、 今回は /var ですが、/boot あたりはちょっと追加手順が必要かもしれません。

まずは、LiveCDなどから作業用にLinuxを起動します。
今回は、手元にあった Ubuntu 12.04 (i386) のUSBメモリからブートしました。

早速、GPartedを用いて、/var のための"新しいパーティション"を作成します。
最近は GPartedが標準で入っているんですね。GUIでなんとも便利です。...Windows98でfdiskを使っていたときが懐かしい...。
  • 容量: 20GiB (8〜12GBが最適らしい。参照: Partitioning - ArchWiki)
  • ファイルシステム: ext4
  • デバイス名: /dev/sda9 (今回の場合)
として作成されました。

ここで確認しておきますが、以降、
  • "対象システムのルートパーティション": /dev/sda7
    Arch Linuxのルートパーティション (/)。既存の /var やその他ディレクトリが含まれる。
  • "新しいパーティション":/dev/sda9
    今作成したパーティション。Arch Linuxの新しい /var となる予定。
とします。

次に、"対象システムのルートパーティション"(/dev/sda7)と、
"新しいパーティション"(/dev/sda9)を、それぞれ適当にマウントします。

$ mount /dev/sda7 /mnt/arch-root/
$ mount /dev/sda9 /mnt/arch-var/
今回は以下のようにマウントしました:
  • 対象システムのルートパーティション: /mnt/arch-root/
  • 新しいパーティション: /mnt/arch-var/

次に、対象システムのルートパーティション下にある 既存の "/var" を
"新しいパーティション"下にコピーします。

(パーミッションを維持するようオプションをつけることをお忘れなく.)
$ sudo cp -av /mnt/arch-root/var/* /mnt/arch-var/

既存の /var は、念の為にリネームしてとっておきます。
$ sudo mv /mnt/arch-root/var /mnt/arch-root/var-

次に、"新しいパーティション"のUUIDをコピーして...
$ blkid /dev/sda9
/dev/sda9: UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" TYPE="ext4"
さらに、対象システムのルートパーティション下の"/etc/fstab"に項目を追加します。
(新しいパーティションを /var としてマウントするように設定するわけです。)
$ sudo vi /etc/fstab
~~~~
# UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
/dev/sda9  /var  ext4rw,relatime,data=ordered  0  2
~~~~
"<デバイス名> <マウント位置> <オプション> <Dump> <Pass>"
参照: fstab - ArchWiki

あとは再起動して、対象システム(今回は、Arch Linux)を起動します。
問題がなければ、既存の/var- (リネームしたもの)を削除して終わりです♪

p.s.
全然関係ないですが、最近、GitHub上のプロフィールに表示される使用言語が
"Perl, JavaScript, CSS"だったり、"Perl, JavaScript, C"だったり...。
C/C++/Assembly成分ももっと増やして行きたいところです(><;)

0 件のコメント:

コメントを投稿

お気軽にコメントをお寄せください m(_ _)m♪
"コメントの記入者"欄から[名前/URL]を選ぶと、登録なしでコメント投稿していただけます。