まだプログラマーですが何か?

プログラマーネタとアスリートネタ中心。たまに作成したウェブサービス関連の話も http://twitter.com/dotnsf

Linux を使っているとディスクのパーティショニングに頭を悩ませることがあります。最近の Linux ディストリビューションは賢くできていて、特に何も指定しなくてもデフォルト設定のまま導入をしていく中で全容量などから自動的に最適(と思われる)パーティショニングを特定して、分割した上で導入してくれます。

その自動判断されたパーティションの割り振り方が本当に最適な内容であれば理想なのですが、現実はそうでないことが多いです。ディスク全体ではまだ余裕があるのに、特定のパーティションだけが残り少なくなってしまうケースは珍しいとは思えません。かといって全部をルートパーティションにするというのも万が一の際に全てを失ってしまうことになって・・・ というトレードオフです。

ところで、CentOS は普通に導入すると、そのディスクパーティショニングには標準で LVM(Logical Volume Manager : 論理ボリューム管理) が適用されます。深く考えずにデフォルト設定のまま Enter キー連打で導入すると LVM のパーティションが出来上がるので、導入後に「あ、LVM だった」と気付く人もいると思います(少なくともここに一人・・ σ(^^;)。

この LVM は柔軟な割り当てができるようになっていて、専用ツールなどを使わなくても、パーティション割り当てを導入後でも比較的容易に(開始ポイントや終了ポイントを意識することなく、サイズの指定だけで)変更することができます。 今回はこの LVM のパーティションニングを動的に変更する手順を紹介します。

まず前提として、現在の LVM によるパーティション内容は以下のようになっているものとします:
ファイルシステムサイズ用途
/dev/mapper/VolGroup-lv_root4.0GBルートファイルシステム
tmpfs500MBスワップ領域
/dev/mapper/VolGroup-lv_var4.5GB/var にマウント

これを最終的には以下のようなパーティショニングに変更することを今回の目的とします。もちろんこの変更によって容量の減る /var 以下のディスクが足りなくなることはないものとします:
ファイルシステムサイズ用途
/dev/mapper/VolGroup-lv_root6.5GBルートファイルシステム
tmpfs500MBスワップ領域
/dev/mapper/VolGroup-lv_var2.0GB/var にマウント

以下その手順を紹介しますが、大まかにはこのような手順をとります:
(1) /dev/mapper/VolGroup-lv_var を縮小
(2) /dev/mapper/VolGroup-lv_root を拡大

逆の手順は成立しないことを理解してください。最初にいきなりルートファイルを拡大しようとしてもディスクそのものに未使用の領域がない限りは足りなくなります。まずはどこかを減らして余りを作り、その余りを別のパーティションに追加する、という順序が必要になります。

というわけで、まずは (1) を行います。パーティションの縮小は(そのパーティション先にもよりますが)シングルユーザーモードで起動する必要があります。システムを再起動し、Linux の起動画面になったら何かキーを押してd自動ブートのカウントダウンを止めます:
 lv2013101701

この画面で E キーを押して起動モードの編集画面に移動します。そして "kernel" で始まる行に移動して再度 E キーを押します:
lv2013101702

起動オプションの編集画面になるので、シングルユーザーモードを指定するために最後に " single" という文字を加えて Enter キーを押します:
lv2013101703

1つ前の画面に戻りました。この画面だとわかりにくいのですが、kernel 行の最後には " single" が追加されています。改めてこの kernel 行が選択されている状態で B キーを押して起動します。
lv2013101704

CentOS がシングルユーザーモードで起動しました。パスワードも不要です。
lv2013101705

改めて現在のパーティション状況を確認します。 / に 4.0GB、/var に 4.5GB 割り当てられています。ここから /var の 2GB を / に付け替えるのが今回の目的になります。/var はまだ 309MB しか使っていないので、少なくともこの時点では 2GB 減らしても問題はありません。
lv2013101706

まずはこのパーティションをアンマウントします:
 # umount /var

ファイルシステムのサイズ変更は resize2fs コマンドで行いますが、減らす場合はその前に fsck コマンドでディスクチェックを行う必要があります。今回の /var(/dev/mapper/VolGroup-lv_var) は ext4 フォーマットなので、具体的には以下のコマンドを実行します:
 # fsck.ext4 -f /dev/mapper/VolGroup-lv_var

チェック後に resize2fs コマンドでパーティションサイズを変更します(最後の "2G" が変更後のパーティションサイズです):
 # resize2fs /dev/mapper/VolGroup-lv_var 2G

続けて論理ボリュームのサイズも 2G に変更します。確認メッセージが表示されたら y キーを入力します:
 # lvreduce -L 2G /dev/mapper/VolGroup-lv_var

最後に変更後のパーティションを改めて /var にマウントします:
 # mount -t ext4 /dev/mapper/VolGroup-lv_var /var

ここまでの一連のコマンドのスクリーンショットはこんな感じです:
lv2013101707

試しにこの段階で一度パーティション状態を確認しておきます。確かに 4.6GB あった /var が 2.0GB に減っていることが確認できます:
lv2013101708

では今度は /var で減らした分を /(/dev/mapper/VolGroup-lv_root) に追加割り当てします。増やす場合はアンマウント/マウントの必要がないのでより簡単です。 / は現在の 4.0GB に、追加する 2.5GB を加えるので、パーティションサイズとしては 6.5GB を指定することになります:
 # lvextend -L 6.5G /dev/mapper/VolGroup-lv_root

続けてファイルシステムとしてのサイズも変更します:
 # resize2fs /dev/mapper/VolGroup-lv_root

これで / パーティションのサイズ変更は完了です。確認してみるとたしかに増えています(画面上では 6.4GB になってますが・・)。一連のコマンドのスクリーンショットはこんな感じです:
lv2013101709

LVM を使っていなくても動的なパーティション変更ができないわけではないのですが、専用のツールを使って別システムから起動したり、サイズ調整に必要なパラメータが頻雑だったりと面倒です。その点 LVM だとサイズだけを意識するだけでいいので楽ですね。


仕事柄、開発環境やテスト環境の構築はよく行うのですが、実運用環境を構築する機会はあまりありません。環境構築の作業そのものはあまり変わらないとも言えるけど、信頼性を重視されるような観点での環境構築経験は薄かったといえます。

このたび、とあるサーバーを「RAID1(ミラーリング)環境で」構築することになり、予算の観点から専用のハードウェアを使わずに、単純にハードディスク2台をつなげるソフトウェア RAID で実現することになりました。その構築時の作業のメモです。なおサーバーそのものは Linux(CentOS) で、その Linux の標準機能として持っているソフトウェア RAID を使っています。またハードディスクは同じ容量の SATA ディスクが2台(/dev/sda, /dev/sdb)接続されているものと仮定します。

ではその導入手順の紹介です。普通の CentOS 導入と変わらない点はここでは省略して、RAID 環境を構築する際の要点だけを紹介します。CentOS(バージョン6)の導入手順はこちらを参照ください:
CentOS の導入


インストーラーを実行して、普通に進めていくと、ディスク構成の箇所がやってきます。ここで2台のハードディスクによる RAID を構築していくよう指定していくことになります。まずはインストール先デバイス、ここは普通に「基本ストレージデバイス」を選択します。
sr2013101601

ディスクの中にデータが含まれているかもしれない、という警告です。まあ OS を普通にインストールするので「破棄」を選択。この辺りは普通のインストールとあまり変わらないですね。
sr2013101602

インストールタイプの指定です。RAID 構成にする場合は「カスタムレイアウトを作成する」を選択する必要があります。
sr2013101603

ケースバイケースですが、このタイミング OS をインストールするハードディスクを選択する画面が表示されることがあります。その場合は RAID の構成に使用する2台のハードディスクを指定して、右側の画面に映しておいてください。
sl2013101701


この後に具体的なカスタム構成を指定していきます。まずは2つのハードディスク(sda, sdb)が認識されていることを確認し、またすでに何らかのパーティショニングや LVM(論理ボリュームマネージャ)の設定がされていた場合は「選択して削除ボタン」を繰り返して、論理ボリュームは削除し、2台のディスク全てを「空き」の状態にします。この図のような状態になったことを確認してください。
sr2013101604

言い忘れましたが、今回の目標はミラーリング(同じ内容を複数台のハードディスクに書き込んで障害耐性を強化)を実現することで、具体的には以下のような RAID1 ディスク構成の3パーティションを作成して OS を導入することです:
(1)ブートイメージのパーティション(300MB)
(2)スワップディスクのパーティション(1GB)
(3)ルートパーティション(残り全部)

※実質的なファイルシステムは全て (3) のルートパーティションに構築することになりますが、別パーティションを作成したい場合は (3) と同様の手続きを繰り返すだけなので、さほど違いはないと思っています。

では、まずは1台目のディスク(/dev/sda)に (1) のブート用パーティションを作成します。「作成」ボタンをクリックして、「標準パーティション」を指定します。
sr2013101605

追加パーティションを以下のように指定します:
 マウントポイント: (指定しない)
 ファイルシステムタイプ: software RAID
 使用可能なドライブ: sda のみにチェック
 サイズ: 300
 追加容量オプション: 固定容量
 基本パーティションにする: チェック

注意点としては、このパーティションは最終的には /boot にマウントすることになるのですが、この段階ではマウントポイントを指定しない、ということです。
sr2013101606

ブート用パーティションのサイズは 200MB でも大丈夫だと思いますが、念のため少し大きめに作成しておきます。

最後に「OK」をクリックして、1つ前の画面に戻ります。sda ドライブに sda1 という 300MB のパーティションが作成されたことを確認します。
sr2013101607

再度「作成」ボタンをクリックし、全く同じ手順をもう一度実行して、今度は2台目のディスク(sdb)にも同様のパーティションを作成します。
sr2013101608

この時点でこのようなパーティション構成になっています。2台のディスク両方に software RAID タイプの300MBのパーティションが作られています。この2つを RAID 構成でミラーリングすることになるわけです。
sr2013101609

ここからはその RAID 用デバイスを作ります。「作成」ボタンをクリックし、次の画面では「RAIDデバイス」を選択して「作成」します。
sr2013101610

sda1 と sdb1 をミラーリングする RAID デバイスを以下のように作成します:
 マウントポイント: /boot
 ファイルシステムタイプ: ext4
 RAID デバイス: md1
 RAID レベル: RAID1
 RAID メンバー: sda1 と sdb1 両方にチェック

通常のパーティション作成時に指定するようなマウントポイントやファイルシステムタイプはここで指定することになります。このパーティションはブート用なのでマウントポイントを /boot にしています。ファイルシステムタイプは ext4 である必要はなく、ext3 とかでも構いませんが、特に理由がなければ ext4 をおススメします。そして RAID としてのデバイス名(md1)やそのレベル(RAID1)を指定し、このRAID デバイスに属してミラーリングすることになる物理デバイス(sda1 と sdb1)を指定します。この例であれば /dev/md1 という RAID デバイスを作成して /boot にマウントする、と指定していることになります。そしてデバイスの実体は /dev/sda1 と /dev/sdb1 にミラーリングしていることになります。
sr2013101611

「OK」をクリックするとこの画面に戻り、RAID デバイス md1 が追加されたことが確認できます。これで上記の (1) のパーティショニングが完了したことになります。
sr2013101612

残りの (2) と (3) のパーティショニングについても同様に行います。(2) はスワップ用に用意する 1GB のパーティションですが、こちらもまずは物理的なパーティションを2つ作成します。「作成」をクリックした後に「標準パーティション」を選択し、以下の内容でパーティションを2回追加します:
 マウントポイント: (指定しない)
 ファイルシステムタイプ: software RAID
 使用可能なドライブ: 1つ目は sda のみにチェック、2つ目は sdb のみにチェック
 サイズ: 1024
 追加容量オプション: 固定容量
 基本パーティションにする: チェック
sr2013101613

この手順を2度、 sda と sdb 両方に対して実行すると、このようなパーティション状態になります。
sr2013101614

今作成したスワップパーティションについても RAID 構成にします。再度「作成」をクリックし、「RAID デバイス」を選択した後で、以下の内容で RAID デバイスを定義します:
 マウントポイント: なし
 ファイルシステムタイプ: swap
 RAID デバイス: md2
 RAID レベル: RAID1
 RAID メンバー: sda2 と sdb2 両方にチェック
sr2013101615

スワップディスクなのでファイルシステムタイプを "swap" にする必要があります。またマウントポイントは不要です。

これで RAID 構成になったスワップパーティション md2 が定義されました。後は (3) のルートパーティションについても同様に物理パーティションから作成します。
sr2013101616

「作成」ボタンをクリックして「標準パーティション」を選択し、以下の内容でパーティションを作成します。
 マウントポイント: (指定しない)
 ファイルシステムタイプ: software RAID
 使用可能なドライブ: 1つ目は sda のみにチェック、2つ目は sdb のみにチェック
 サイズ: (残り容量すべて ただし1つ目と2つ目で同じサイズを指定する)
 追加容量オプション: 固定容量
 基本パーティションにする: チェック

sr2013101617

ここでの注意点としてはパーティションのサイズです。全く同じ容量のハードディスク2台で RAID 構成を構築する場合は問題ないのですが、やむを得ず異なるサイズのハードディスク2台で構成する場合は、この時点での「残り容量」が異なるはずです。2つのパーティションは同じサイズにするため、サイズが異なる場合は残り容量の少ない方に合わせて同じサイズを指定する必要がある、ということに注意してください。

sda と sdb 双方でこのルート用のパーティションを追加します。このように sda3, sdb3 が定義されたパーティションになっていることを確認します。
sr2013101618

最後に sda3, sdb3 をミラーリングする RAID デバイスを定義します。「作成」をクリックして「RAID デバイス」を選択した後で、以下の内容で RAID デバイスを定義します。ここはマウントポイント以外は (1) の時と同じです:
 マウントポイント: /
 ファイルシステムタイプ: ext4
 RAID デバイス: md3
 RAID レベル: RAID1
 RAID メンバー: sda3 と sdb3 両方にチェック
sr2013101619

最終的にこのようなパーティション構成になりました。この例ですと実際に使うパーティションは / の1つだけですが、/usr や /opt などに別のパーティションを用意することも(もちろん)可能です。その場合は同様に物理デバイスと RAID デバイスを追加していきます。
sr2013101620

パーティション定義が完了したので「次へ」をクリックして定義内容をディスクに書き込みます。以下の様な警告メッセージが表示された場合は「フォーマット」をクリックします。
sr2013101621

パーティション定義を変更する直前の、最後の確認メッセージです。変更して問題なければ「変更をディスクに書き込む」をクリックします。
sr2013101622

定義内容に従ってパーティショニングが行われ、ファイルシステムも作成されます。
sr2013101623

パーティショニングが終わった直後にブートローダーに関する指定画面が現れます。今のままですとブートローダーは物理デバイスである /dev/sda が指定されていますが、ここも RAID 構成用に変更しておきましょう。「デバイスの変更」ボタンをクリックします。
sr2013101624

ブートローダーの導入先として RAID デバイスの /boot として指定した /dev/md1 を選択し、「OK」をクリックします。
sr2013101625

このような画面になればブートローダーの変更もできました。これで RAID 用のパーティショニングで気をつける点は全てです。後は普通にインストール作業を進めます。
sr2013101626

インストール中は特に違いはなく、普通っぽく進んでいきます。
sr2013101627

インストールが完了したらマシンを再起動するようガイドされます。再起動すると RAID 構成の環境が立ち上がることになります。
sr2013101628

実際に再起動した環境で Terminal を起動し、 "df -h" と "/etc/fstabs" を実行してみた時の様子です。パーティション/マウントの構成では /dev/sda? や /dev/sdb? は使われておらず、これらのミラーリングデバイスである /dev/md? がマウントされていることが分かります。これら /dev/md? は(上記で定義したように)ミラーリングのデバイスなので、これらに書き込まれた内容はソフトウェア RAID によって実際には2台の物理ディスクに反映され、一台に問題や障害が生じた場合でももう一台で運用を続けることができます。
sr2013101629

今回は最初の段階からディスクが2台用意できていて、セットアップ時に RAID 構成を定義できる前提での手順を紹介しました。この前提があれば非常に簡単にソフトウェア RAID が実現できることが分かりました。ソフトウェアでコントロールしているとはいえ、コアの機能になっていて、パフォーマンスもさほど悪いと感じません。安価に冗長構成が作れる、とてもいい時代になりました。


 

Linux のメジャーなディストリビューションといえば RedHat, CentOS, Debian, Ubuntu, ... あたりでしょうか。SuSE は日本ではほとんど使われてない印象・・・ 個人あるいは業務で Linux を使う場合はこれらを使うケースがほとんどでしょう。

実際にはこれらをベースにした(ある意味でマイナーな)ディストリビューションも多く存在しています。それらは見た目や使い勝手に強いこだわりがあったり、特定業務に特化した機能が拡充されていたりして面白いです。

そんな Linux ディストリビューションの1つが Kali Linux です。Kali はいわゆる「ペネトレーションテスト」向けの機能が標準で充実しているディストリビューションです。「ペネトレーションテスト」はセキュリティ脆弱性診断テストで、その弱点を発見するような攻撃への耐性を診断するものですが、結果的には脆弱性が見つかってしまうこともあるわけで・・・まあ、そういう(苦笑)使い方もあるのかもしれません。 もともとは BackTrack という Ubuntu ベースのディストリビューションでしたが、バージョン6に相当するリリースからはベースを CentOSDebian に変え、名称も "Kali Linux" として公開されています。

(2014/01/02 注 ご指摘があり編集しました。 Kali Linux のベースは CentOS ではなく Debian でした)

この Kali Linux は比較的日本語との相性がよく、またベースが CentOS Debian であることから拡張性も高く、そして何よりも「見た目のカッコいい」 Linux だと感じています。私個人もペネトレーションテスト向けというよりも、普段使いのデスクトップ環境としても使えるのではないか、と感じています。 ということもあって、実際に Kali Linux をインストールして、日本語デスクトップ環境を構築するところまでを紹介します。実機でも仮想環境でも動作すると思われます(私自身は実機と KVM 仮想環境で導入&動作を確認しています)。

まずはインストールメディアを入手しましょう。仮想環境用の仮想ディスクをダウンロードすることも可能ですが、よりカスタマイズ性の高い導入メディアを使うことにします。公式サイトのダウンロードページから 32bit 版か 64bit 版の自分の環境に合った ISO ファイルをダウンロードします。実機環境に導入する場合はダウンロードした ISO ファイルを DVD メディアに焼いておきます。

まずは導入メディアを使ってマシンを起動します。この ISO(DVD) から起動すると、ハードディスクへの導入なしにある程度の利用ができる Live モードで起動することも可能ですが、やはりディスクに導入した方が起動も速く、またカスタマイズ性も高くなるのでインストールモードで起動します。せっかくなので GUI のインストールを行いたいので "Graphical Install" を選択します。
kali2013101501

最初の画面では英語モードになっています。まずはインストールプロセスの中で利用する言語を指定します。"Japanese" を選択しましょう。
kali2013101502

するとここからはインストーラ自体が日本語に切り替わるはずです。次はシステムロケールの指定です。日本で(グリニッジ標準時+9時間の環境で)利用する場合は「日本」を選択します。
kali2013101503

最後に利用するキーボードの言語を指定します。日本語キーボードを利用する場合は「日本語」を選択します。
kali2013101504

インストール作業中、およびインストール後の環境で利用するネットワークデバイスを自動的に検出します。有線だけでなく無線も利用可能です。検出に少し時間がかかりますが、しばらく待ちます。
kali2013101505

デバイス検出後にネットワークの設定を行います。といっても複雑な内容ではなくサーバー名の指定をするだけです。まずはホスト名を指定します。
kali2013101506

次にドメイン名を指定します。適当な名称でも構いません。
kali2013101507

導入後の環境で利用する root ユーザーのパスワードを指定します。
kali2013101508

インストール先メディアのパーティショニングを行います。よく分からない方はデフォルト設定のまま Return キーで先へ進んでも構いません。分かる方でカスタマイズしたい方はこの画面でパーティショニングを行なってください。
kali2013101509

パーティショニングの最後に確認画面が出て、変更内容をディスクに反映させることを確認して先に進みます。
kali2013101510

すると実際のインストール作業に入ります。ここはしばらくかかります。。
kali2013101511

一通りのパッケージ導入が完了すると、ネットワークミラーの利用有無を聞かれます。ネットワークが使える環境であれば「はい」を選んでおくのがいいと思います。
kali2013101512

ネットワークでプロキシの先にアクセスする場合の、そのプロキシサーバーを指定可能です。不要であれば空のまま先に進みます。
kali2013101513

ネットワークを利用したパッケージの更新が行われます。
kali2013101514

最後にブートローダのインストール確認が行われます。ここはデフォルト設定のままで構いません。
kali2013101515

ブートローダが導入され、最終調整作業後にインストールが終わります。
kali2013101516

インストールが無事に完了しました。「続ける」をクリックして再起動しましょう。
kali2013101517

最後になぜかもうしばらく処理が行われます。。
kali2013101518

そして再起動。この画面で何もしなければデフォルト設定で導入済みの Kali Linux が起動します。
kali2013101519

ハードディスクから起動している様子です。
kali2013101520

起動しました。まずはログインユーザーを指定します。「その他」をクリックします。
kali2013101521

この時点では root ユーザーしか作成していないのでユーザー名に "root" を入力します。
kali2013101522

そして root ユーザーのパスワードを入力します。
kali2013101523

入力内容が正しければログインプロセスが実行され、超カッコイイ Kali Linux のデスクトップ画面が現れます!
kali2013101524

この段階でペネトレーションテスト用のツールは既に導入済みなので、ペネトレーションテストを始めることも可能です。そういう内容に興味がある人は "Kali Linux ペネトレーション" あたりをキーワードに検索してみてください。

今回はこの Kali Linux を日本語デスクトップ環境に仕上げることが目標なので更にカスタマイズを続けます。画面左上の「アプリケーション」から「アクセサリ」 - 「端末」を選択します。
kali2013101525

半透明のカッコいいターミナルが起動します。以下コマンドでカスタマイズを続けていきます。
kali2013101526

まずはこの環境で不足している「日本語入力環境」を整えましょう。端末のコマンドラインから以下を順次入力して、日本語入力環境である IBus-anthy を導入します:
 # apt-get update
 # apt-get install gcc g++ make uuid-dev
 # cd /usr/local/src
 # apt-get source lynx-cur
 # cd lynx-cur-2.8.8dev.12
 # dpkg-buildpackage
 # apt-get install uim uim-anthy
 # apt-get install ibus-anthy

IBus 設定画面アプリを起動します。ここから日本語入力環境として anthy を選択します。まずはメニューから「システムツール」 - 「設定」 - 「IBusの設定」 を選択します。
※ここで「IBusデーモンが動いてません。起動しますか?」と表示された場合は「はい」をクリックして IBus デーモンを起動します。
kali2013101527

「IBus の設定」ダイアログが表示されたら「インプットメソッド」タブを選択し、「インプットメソッドの選択」で「日本語」 - 「Anthy」を選択します。
kali2013101528

そのまま「追加」をクリックし、インプットメソッドとして Anthy が追加されたことを確認して最後に「閉じる」をクリックします。
kali2013101529

最後に OS を再起動すると、Ctrl+SPACE で英語/日本語の入力モードが切り替わるようになります。これで日本語入力環境も整いました!
kali2013101530

日本語も入力できるようになりました。ではデスクトップ環境構築の最後にオフィススイートも導入してみましょう。いくつかの選択肢がありますが、個人的に最も気にいっている LibreOffice を導入してみます。Kali Linux 環境からブラウザを起動(メニューから「アプリケーション」 - 「インターネット」 - 「lceweasel ウェブブラウザ」)し、http://www.libreoffice.org/download にアクセスして、自分の環境にあった最新版の Main installer をダウンロードします:
kali2013101531

ダウンロードしたファイルの名称が LibreOffice_4.1.2_Linux_x86_64_deb.tar.gz であったとして、以下のコマンドで解凍し、インストールします。
 # tar xzvf LibreOffice_4.1.2_Linux_x86_64_deb.tar.gz
 # cd LibreOffice_4.1.2.3_Linux_x86-64_deb/DEBS
 # dpkg -i *.deb
 # shutdown -r now  (メニューに反映させるために再起動)
 
LibreOffice のインストールに成功すると、再起動後のメニューから「アプリケーション」 - 「オフィス」 - 「LibreOffice 4.x XXX」というアイテムが選択できるようになり、各種オフィスアプリケーションが起動できるようになりました。
kali2013101532

まだデスクトップ環境として不十分な点もありますが、ここまでの作業でとりあえず日本語入力およびオフィススイートの導入までは完了しました。あとはこちらの内容を参考に開発デスクトップ環境を整備してもいいですし、もちろんペネトレーションテストも可能です(笑)。この Kali Linux のカッコいいユーザーインターフェースがデスクトップ環境として利用できるのはなかなか楽しいと思っています。













 

このページのトップヘ