いますぐ実践! Linuxシステム管理

いますぐ実践! Linux システム管理 / Vol.259 / 読者数:2592名

こんばんは、うすだです。

本は、読むだけではなく、何かアウトプットをしないといけない、 という話をよく聞きます。
たとえば、ブログやレビューに書いたり、会話のネタにしたりなどです。

ということは、読書する人間自体は、 本をインプットして何らかの行動をアウトプットする、 一種のフィルタと言えるのではないか、と思います。

そうすると、1冊の本があったとき、 それを読んだ読者がいろいろな出力をあちこちでしている、 ということになりますよね。

そして、当たり前ですが、その本が良ければ良い、本が悪ければ悪い出力を、 みなさんがなさるわけですね。(良し悪しの基準はおいときまして。)

さらに当たり前ですが、よい本が増えれば増えるほどよい出力が増えて、 世界はよくなっていく…と思われるわけですね。

しかし、いわゆるよい本であっても、出力が画一的になる場合と、 多様になる場合がありそうです。

前者の場合、世界がよくなるとしても、多様性が失われて一様になることは、 はたして本当によいことなんだろうか、という疑問が、 新たに湧いてきてしまいました。うーん、どうなんでしょうか。

…えーと、本題のネタを思いつかないまま日曜日を迎え、その逃避行動として、 上記のようなことを考えてしまっております。

未だに結論っぽいものが出ていませんが、今回もはりきってまいります。

今回のお題 - ディスクの容量を増やしてみる (レベル:たぶん初級)

今日、ディスク容量や CPU パワーは潤沢にあるよ、 と言える裕福な部署(や会社)が、それなりに存在するのではないか、 と憶測しております。

ですが、そんなときこそ、 仮想化ソフトウェアのゲストOSを安直に作ってしまいがちではないかと思います。

うっかり、少ないディスク容量でゲストOSを作り、しかもそんなゲストOSほど、 長きに渡り重宝してしまったりするのではないでしょうか。

というわけで今回は、小さく作ってしまったディスクの容量を増やす方法を、 ちまちまとご紹介したいと思います。

今回の対象の仮想化ソフトウェアは「 VirtualBox 」と「 VMware Player 」です。 他をお使いの貴兄は、すみませんが自力で調べてくださいませ。

それから、大まかな手順は、以下の通りです。これに沿って説明します。

  1. (仮想)ディスクのサイズを増やす
  2. パーティションのサイズを増やす
  3. ファイルシステムのサイズを増やす

仮想ディスクのサイズを増やす

最初に、物理的なディスクのサイズを増やします。

VirtualBox の場合は、「VBoxManage」コマンドを使用して、 ゲストOSの仮想ディスクである「VDI」ファイルの容量を増やします。

まず作業にとりかかる前に、対象のゲストOSを必ずシャットダウンしておきましょう。 これは絶対です。

そして、「showhdinfo」コマンドを使って、今の状態を確認しましょう。
下記のように、showhdinfoとVDIファイルを引数に指定して実行します。

  $ VBoxManage showhdinfo ~/VirtualBox\ VMs/CentOS/CentOS.vdi 
  UUID:           12345678-1234-5678-abcd-123456789abc
  Parent UUID:    base
  State:          created
  Type:           normal (base)
  Location:       /home/usu/VirtualBox VMs/CentOS/CentOS.vdi
  Storage format: VDI
  Format variant: dynamic default
  Capacity:       8192 MBytes
  Size on disk:   6283 MBytes
  In use by VMs:  CentOS (UUID: 12345678-1234-5678-abcd-123456789012)

上限が 8192MB であることがわかります。

それではいよいよサイズを増やします。それには、 「modifyhd」コマンドを使います。 「--resize」オプションとサイズ(単位は「MB」)を指定して実行すると、 指定したサイズに変更できます。
たとえば、16GB に変更するには、以下のように実行します。

  $ VBoxManage modifyhd ~/VirtualBox\ VMs/CentOS/CentOS.vdi --resize 16384
  $ VBoxManage showvdiinfo ~/VirtualBox\ VMs/CentOS/CentOS.vdi 
  ...中略...
  Capacity:       16384 MBytes
  ...後略...

はい、増やすことができました。

 

VMware Player の場合は、GUI で行うことができます。

対象のゲストOSをマウスでクリックし、 「Virtual Machine」メニューの「Virtual Machine Settings」を選ぶか、 右下の「Edit virtual machine settings」をクリックします。

次に、「Hard Disk」をクリックし、「Utility」にある「Expand」を選びます。 そして、サイズを指定して「Expand」ボタンを押せば、やや時間はかかりますが、 サイズを変更できます。

パーティションのサイズを増やす

物理的なディスク(実際は仮想ディスクですが、 ゲストOSからみたら物理的なディスクです) のサイズを増やしたら解決なのかといいますと、残念ながら、 そんなことはありません。

次に、パーティションサイズを増やす必要があります。
念のため、ディスクを使っていない状態でゲストOSを起動して、 サイズの変更を行います。

今回は、安直に、 Ubuntuのインストール兼ライブ起動用のイメージを使用したいと思います。

たとえば、下記にアクセスし、 「日本語Remixイメージのダウンロード」をクリックすると、 ISOイメージをダウンロードできます。

Ubuntuの日本語環境 | Ubuntu Japanese Team
https://www.ubuntulinux.jp/japanese

それを使ってゲストOSを立ち上げ、 「Ubuntuを試す」を押して Ubuntu をライブ起動させます。

Ubuntuが起動したら、ランチャーの一番上にある渦巻きっぽいアイコンを押して、 「gpart」などと入力したら、GParted アイコンがそのうち出てきます。 出てきたら、それをクリックして GParted を起動します。

あとは、増やしたいパーティションをクリックして、「Resize/Move」を選び、 増やした分をどーんと増やします。
あ、実際に変更されるのは、「Apply」を押してからです。 押し忘れないようにしてください。(でも、押すときは慎重に!)

ただ、増やしたいパーティションが一番後ろにあり、 今回増やした箇所をそのまま割り当てられるようになっていないと、 残念ながら増やすことができません。

その場合は、増やした箇所を新たなパーティションとして生成し、 追加でマウントして使うしかないように思います。(その手順は後述します。)

ファイルシステムのサイズを増やす

物理的なディスクの増加に合わせて、パーティションも増やすことができました。 これで解決したかと言いますと…いえ、まだです。

ファイルシステムそのもののサイズも変更する必要があります。
LVM を使っている場合とそうでない場合とで、手順が異なります。
それぞれの手順を、以降でご紹介します。

あ、ちなみに、LVM に関しては、過去にご紹介しております。
古いですが、たぶん手順は変わっていないはずです。

Vol.164 - LVM のパーティションを管理する
http://www.usupi.org/sysad/164.html
Vol.165 - LVM を導入する
http://www.usupi.org/sysad/165.html
Vol.166 - LVM のスナップショット機能を使ってみる
http://www.usupi.org/sysad/166.html

 

それでは、LVM の場合の手順からまいりましょう。
(ちなみに、Ubuntu のライブ起動状態を前提としています。)

先ほどの GParted を終了したら、端末を起動してください。
(同様に「term」とか打ち込んで、「端末」アイコンをクリックします。)

そして、「pvscan」や「vgscan」、「lvscan」を片っ端から実行します。

  $ sudo pvscan
    PV /dev/sda2   VG VolGroup   lvm2 [15.51 GiB / 8.00 GiB free]
    Total: 1 [15.51 GiB] / in use: 1 [15.51 GiB] / in no VG: 0 [0   ]
  $ sudo vgscan
    Reading all physical volumes.  This may take a while...
    Found volume group "VolGroup" using metadata type lvm2
  $ sudo lvscan
    ACTIVE            '/dev/VolGroup/lv_root' [5.54 GiB] inherit
    ACTIVE            '/dev/VolGroup/lv_swap' [1.97 GiB] inherit

上記では、「/dev/sda2」を増やしたため、8GB の空きができています。
ですので、増やしたい論理ボリューム「/dev/VolGroup/lv_root」 に空きの分をすべて割り当ててしまいましょう。

  $ sudo lvextend -l +100%FREE /dev/VolGroup/lv_root
    Extending logical volume lv_root to 13.54 GiB
    Logical volume lv_root successfully resized

成功したようです。
lvscanを再度実行すると、そうなっていることが確認できます。

  $ sudo lvscan
    ACTIVE            '/dev/VolGroup/lv_root' [13.54 GiB] inherit
    ACTIVE            '/dev/VolGroup/lv_swap' [1.97 GiB] inherit

そうしましたら、最後に、ファイルシステムもリサイズします。
ext3 か ext4 であれば、「resize2fs」コマンドで、最大サイズまで拡大できます。 (ext2 も、マウント中でなければ、可能です。)

  $ sudo resize2fs /dev/VolGroup/lv_root

あとは、Ubuntu を終了して、本来のゲストOS を起動するだけです。

 

LVM でない場合は、そのものずばり、resize2fs を実行するだけです。
対象のパーティションが /dev/sda3 なら、下記のように実行します。

  $ sudo resize2fs /dev/sda3

 

パーティションサイズの変更ではなく、 パーティションそのものの追加が必要な貴兄は、以下の手順で行います。

まず、Ubuntu を終了して、本来のゲストOS を起動します。
起動したら、パーティションの UUID を確認しておきます。
対象のパーティションが /dev/sda3 の場合の実行例を以下に示します。

  $ sudo tune2fs -l /dev/sda3 | grep UUID
  Filesystem UUID:          11111111-2222-3333-4444-555555555555

次に、/dev/fstab にエントリを追加します。
たとえば、/work にマウントしたい場合、以下のエントリを追加します。
(最後の 3 は、fsckする際の順番です。 他のエントリの最大値に +1 した値を指定しておきましょう。)

UUID=11111111-2222-3333-4444-555555555555 /work ext4 defaults 0 3

もし /work がなければ作成して、マウントします。

  $ [ -d /work ] || sudo mkdir /work
  $ sudo mount /work
  $ df /work
  Filesystem     1K-blocks   Used Available Use% Mounted on
  /dev/sda3        5227340 208228   4756972   5% /work

おわりに

以上、ディスクを増やしたときの処理について、長々とご説明しました。

上記では、作業前にバックアップを取っていません。
ですが、実際のゲストOSで実施される際は、念のためバックアップを取得してから、 慎重に挑むようにしてください。

ちなみに、VBoxManage には、様々なコマンドがあります。
「--help」オプションを付けて実行すると、使い方が出力されますので、 興味のある方は、いろいろ試してみてください。

コマンドラインで制御できてしまうのは、システム管理者にとって、 大変ありがたいですね。機会があれば、取り上げてみたいと思います。

宿題の答え

前回の宿題は、

  TCPのフラグを変えたら応答が変わるか、複数のOSで試しましょう。

でした。

ただひたすらに、nmap を実行してみました。対象は以下の彼らです。

  • CentOS6.3 (Linux 2.6.32)
  • CentOS5.2 (Linux 2.6.18, Virtuozzo)
  • Ubuntu13.10 (Linux 3.11.0)
  • Ubuntu12.04 (Linux 3.2.0)
  • OpenBSD 3.9
  • OpenSolaris (SunOS 5.11)
  • Windows 7 Professional

試したオプションは、以下です。

  • -sT (フツーに connect, 接続確認)
  • -sS (SYN フラグ, 接続確認)
  • -sN (フラグなし, 待ち受けていないかどうか)
  • -sF (FIN フラグ, 待ち受けていないかどうか)
  • -sX (FIN|PSH|URGフラグ, 待ち受けていないかどうか)
  • -sA (ACK フラグ, フィルタやステートフルかどうか)

それぞれ、デーモンさんが待ち受けているポートと、 そうでないポートに対して実行しました。つまり、以下を実行しました。

#!/bin/sh
OKPORT=誰かが待ち受けているポート
NGPORT=誰も待ち受けていないポート
TARGET=確認する相手のマシン
for opt in T S N F X A; do
    for port in $OKPORT $NGPORT; do
        sudo nmap -s$opt -p $port $TARGET | grep ^$port
    done
done

結果はこのようになりました。

OSport-sT-sS-sN -sF-sX-sA
CentOS6.3open openopenopen|filtered open|filteredopen|filteredunfiltered
close closedclosedclosed closedclosedunfiltered
CentOS5.2open openopenopen|filtered open|filteredopen|filteredfiltered
close closedclosedopen|filtered open|filteredopen|filteredfiltered
Ubuntu13.10open openopenopen|filtered open|filteredopen|filteredunfiltered
close closedclosedopen|filtered open|filteredopen|filteredunfiltered
Ubuntu12.04open openopenopen|filtered open|filteredopen|filteredunfiltered
close closedclosedopen|filtered closedclosedunfiltered
OpenBSD 3.9open openopenclosed closedclosedunfiltered
close closedclosedclosed closedclosedunfiltered
OpenSolarisopen openopenopen|filtered open|filteredopen|filteredunfiltered
close closedclosedopen|filtered open|filteredopen|filteredunfiltered
Windows7Proopen openopenopen|filtered open|filteredopen|filteredfiltered
close filteredfilteredopen|filtered open|filteredopen|filteredfiltered

-sT および -sS に関しては、ほぼそのままの結果が得られました。
一部 filtered なのは、ご丁寧にフィルタリングされているためです。

-sA に関しても、同様ではないかと思います。
RST が返ってくれば closed、でなければ filtered です。
待ち受けているポートに対しても filtered になるのは、 ステートフルなフィルタが適用されているためだと思います。
(CentOS5.2に関しては、VirtuozzoのゲストVPSとして動作しているため、 ホストかルータがステートフルにフィルタリングしているのではないかと思われます。)

-sN, -sF および -sX に関しては、様々な結果が得られました。
RST が返ってくれば closed、でなければ open|filtered です。
OpenBSD が律儀に RST を返しているようですが、 おそらく RFC に忠実な実装になっているのではないかと思われます。 気になるなら PF を使ってフィルタリングしてよね、ということなのかなと憶測します。

それとは真逆なのが Windows で、許可すべきポートのみ許可して、 他はデフォルトでフィルタリングしとくよ、というスタンスっぽいです。

試す前は、全部一緒かもしれないと心配したりしましたが、 試してみると一応違いがあり、それなりに興味深さを感じることができました。

簡単に実行できますので、 スキャンしても叱られないマシンを対象にして是非お試しくださいませ。

今回の宿題

今回の宿題は、

  仮想ディスクのサイズを減らしてみましょう。

です。

増やすのができるなら、減らすのもできるのではないか、ということで、 トライ(≒下調べせずに見切り発車)してみたいと思います。

おそらく、順番を間違えると大変なことになると思われます。
注意して試行錯誤しましょう。

あとがき

デイリーポータルZ(DPZ) の編集長林さんのビジネス書を読んでいます。

世界のエリートは大事にしないが、普通の人にはそこそこ役立つビジネス書
http://www.amazon.co.jp/exec/obidos/ASIN/4594070353/usupiorg-22

DPZ的な、 最小限の努力でそこそこな成果を得るためのメソッドを77個も紹介してくださる、 ありがたい書籍です。

DPZを切り口にして、おもしろおかしく書かれているため、単純に笑えるのですが、 鋭い指摘をやんわりとさりげなくされることが多々あり、 油断できない本ではないかと思います。

たとえば、社内より外での評価を上げる、プレゼンはこっそり練習する、 相手によって説明を使い分ける、辛いことも引いてみると面白い、などでしょうか。

わたしのビジネスレベルが低すぎるのかもしれませんが、切り口が斬新なだけで、 ためになるビジネス書ではないかと思います。

DPZややぎの目のファンの方はもちろん、 フツーのビジネス書に飽きた方におすすめです。本屋で見かけたら、 ぜひ立ち読んでみてください。
(やぎの目ファンというバイアスのかかった評価であることは、特に否定しません。 というかきっとバイアスがかかっています。)

 

…というわけで、わたしも"出力"してみました。

ただ、この手の本の場合は、実際に行動することが正しい"出力"のように思います。 どれか実行してみようと思います。よ、読み終わったら。

あと、多様性に貢献できていない気が…こ、これからがんばります…。

 

ちなみに、2014年5月18日現在、アマゾンで、 ジャンルに"本"を指定して「ビジネス書」を検索すると、この本が最初に出てきます。

ビジネス書に「ビジネス書」というタイトルをつけてしまうセンスには、 ホントに脱帽です。内容も含めて、どこまで意図的なのか気になります。

 

今回も、ここまで読んでいただき、誠にありがとうございました。
次回は、6月1日(日) 未明にお会いしましょう!

 

「いますぐ実践! Linux システム管理」の解除は、以下からできます。
http://www.usupi.org/sysad/ (まぐまぐ ID:149633)

バックナンバーは、こちらにほぼ全部そろっています。
http://www.usupi.org/sysad/backno.html

「栗日記」- まだ描いてるんですかって言われるとちょっとヘコみます。
http://www.usupi.org/kuri/ (まぐまぐ ID:126454)
http://usupi.seesaa.net/ (栗日記ブログ)
http://usupi.org/k/ (モバイル栗日記)
http://twitter.com/kuriking/ (栗つぶやき)
http://facebook.com/kuriking3 (栗顔本)


[バックナンバーのトップへ] [Linux システム管理のトップへ]

トップ

バックナンバー
    [日付順] [目的別]

プロフィール

▼ リンク

独学Linux
Linuxデスクトップ環境に関する情報が満載です。 メルマガもありますよ。
Server World
CentOS 6をサーバとしたときの設定例が、これでもかというくらいたくさん載っています。 CentOS以外のディストリビューション(Fedora, Ubuntu)も充実しています。
LINUXで自宅サーバーを構築・導入(Fedora9)
Fedora9のインストールの仕方から管理方法まで、詳しく載っています。 SearchManには情報がもりだくさんです。
マロンくん.NET
〜サーバ管理者への道〜
Linuxをサーバとして使用するための、いろいろな設定方法が載っています。 マロンくんもかわいいです。 なんといっても、マロンくんという名前がいいですね!!
日経Linux
今や数少なくなってしまったLinuxの雑誌。ニュースやガイドもあります。
Linux Square − @IT
@ITが提供する、Linux の情報が満載。 載っていない設定方法はないんじゃないでしょうか。
gihyo.jp…技術評論社
Linuxに限らず様々な技術情報が満載のサイト。 SoftwareDesign誌も、 ソフトウェア技術者は必見です。
SourceForge.JP Magazine
Linux に限らず、オープンソース関連の記事が網羅されています。
ITmediaエンタープライズ:Linux Tips 一覧
Tips というより FAQ 集でしょうか。わからないことがあれば覗きましょう。
IBM developerWorks : Linux
開発者向けですが、勉強になりますよ。
Yahoo!ニュース - Linux
Yahoo!のLinuxに関するニュース一覧です。
栗日記
システム管理とかと全然関係ありませんが、毎日栗の絵を描いています。
システム管理につかれちゃったとき、癒されたいときに、ご覧ください。:-)
WEB RANKING - PC関連
ランキングに参加してみました。押してやってください。

▼ 作ってみました

Add to Google

▼ せんでん




▼ 最近読んだ本

▼ 気に入ってる本