<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Aosho235</id>
	<title>ArchWiki - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Aosho235"/>
	<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/Aosho235"/>
	<updated>2026-04-16T07:35:32Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E5%85%AC%E5%BC%8F%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA&amp;diff=33961</id>
		<title>公式リポジトリ</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E5%85%AC%E5%BC%8F%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA&amp;diff=33961"/>
		<updated>2023-09-12T02:45:53Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: fix typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:パッケージ管理]]&lt;br /&gt;
[[Category:Arch について]]&lt;br /&gt;
[[en:Official repositories]]&lt;br /&gt;
[[es:Official repositories]]&lt;br /&gt;
[[fr:Official repositories]]&lt;br /&gt;
[[pt:Official repositories]]&lt;br /&gt;
[[ru:Official repositories]]&lt;br /&gt;
[[zh-hans:Official repositories]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Arch Build System}}&lt;br /&gt;
{{Related|Arch User Repository}}&lt;br /&gt;
{{Related|makepkg}}&lt;br /&gt;
{{Related|ミラー}}&lt;br /&gt;
{{Related|公式リポジトリウェブインターフェイス}}&lt;br /&gt;
{{Related|pacman}}&lt;br /&gt;
{{Related|PKGBUILD}}&lt;br /&gt;
{{Related|非公式ユーザーリポジトリ}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
[[Wikipedia:ja:ソフトウェアリポジトリ|ソフトウェアリポジトリ]]とはソフトウェアパッケージの保管場所であり、インストールの際はここからパッケージが取得されます。&lt;br /&gt;
&lt;br /&gt;
Arch Linux の&#039;&#039;&#039;公式リポジトリ&#039;&#039;&#039;には重要で人気のあるソフトウェアがあり、[[pacman]] ですぐにアクセスできます。これらのリポジトリは[[Arch 用語集#パッケージメンテナ|パッケージメンテナ達]]によってメンテナンスされています。&lt;br /&gt;
&lt;br /&gt;
公式リポジトリ内のパッケージは絶えずアップグレードされます: パッケージがアップグレードされると、古いバージョンはリポジトリから削除されます。Arch にはメジャーリリースというものはありません: それぞれのパッケージは、上流のソースで新しいバージョンが利用可能になると、アップグレードされます。各リポジトリは常に一貫性が保たれています。つまり、リポジトリ内のパッケージは、常に他のパッケージと互換性のあるバージョンであるということです。&lt;br /&gt;
&lt;br /&gt;
== 安定版リポジトリ ==&lt;br /&gt;
&lt;br /&gt;
=== core ===&lt;br /&gt;
&lt;br /&gt;
このリポジトリは[[ミラー]]上の {{ic|.../core/os/}} にあります。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;core&#039;&#039; には以下のようなパッケージが含まれます:&lt;br /&gt;
&lt;br /&gt;
* Arch Linux の起動に必要なパッケージ。&lt;br /&gt;
* [[ネットワーク設定|インターネットの接続]]に必要なパッケージ。&lt;br /&gt;
* [[パッケージの作成|パッケージのビルド]]に必要なパッケージ。&lt;br /&gt;
* サポートされている[[ファイルシステム]]の管理・修復に必要なパッケージ。&lt;br /&gt;
* システムのセットアップに必要なパッケージ (例: {{Pkg|openssh}})。&lt;br /&gt;
他にも、上記パッケージが依存しているパッケージ (必ずしも [[makedepends]] ではない) や {{Pkg|base}} [[メタパッケージ]]も含まれています。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;core&#039;&#039; には、かなり厳しい品質要件が課されています。開発者/ユーザたちは、パッケージの更新が受理される前に、更新を承認する必要があります。使用頻度の低いパッケージの場合は、次のような適切な方法を取れば十分です: 対象パッケージのメンテナの暗黙の承認と共に、人々に更新について通知する、承認を要求する、変更の重大度に応じて [[#core-testing|core-testing]] に1週間留める、目立ったバグレポートが無い。&lt;br /&gt;
&lt;br /&gt;
{{Tip|インターネット接続無しで &#039;&#039;core&#039;&#039; (或いは他のリポジトリ) のパッケージを含むローカルリポジトリを作成するには、[[Pacman ヒント#パッケージを CD/DVD や USB スティックからインストールする]] を見てください。}}&lt;br /&gt;
&lt;br /&gt;
=== extra ===&lt;br /&gt;
&lt;br /&gt;
このリポジトリは[[ミラー]]上の {{ic|.../extra/os/}} にあります。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;extra&#039;&#039; には、&#039;&#039;core&#039;&#039; に当てはまらない全てのパッケージが含まれています。&lt;br /&gt;
このリポジトリは、[[Trusted Users]] と Arch の開発者によって共同でメンテナンスされています。&lt;br /&gt;
パッケージ例: Xorg、ウィンドウマネージャ、ウェブブラウザ、メディアプレイヤ、Python、Ruby などの言語で作業するためのツール。&lt;br /&gt;
&lt;br /&gt;
=== multilib ===&lt;br /&gt;
&lt;br /&gt;
このリポジトリは[[ミラー]]上の {{ic|.../multilib/os/}} にあります。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;multilib&#039;&#039; には、64 ビット環境で 32 ビットアプリケーションを実行したりビルドしたりするために使用できるソフトウェアとライブラリが含まれています ({{Pkg|wine}}、{{Pkg|steam}} など)。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;multilib&#039;&#039; リポジトリを有効化すると、32 ビット互換のライブラリは {{ic|/usr/lib32/}} 下に配置されます。&lt;br /&gt;
&lt;br /&gt;
==== multilib を有効化する ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;multilib&#039;&#039; リポジトリを有効化するには、{{ic|/etc/pacman.conf}} 内の {{ic|[multilib]}} セクションをアンコメントしてください:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=/etc/pacman.conf|2=&lt;br /&gt;
[multilib]&lt;br /&gt;
Include = /etc/pacman.d/mirrorlist}}&lt;br /&gt;
&lt;br /&gt;
そして、システムを[[アップグレード]]し、好きな &#039;&#039;multilib&#039;&#039; パッケージをインストールしてください。&lt;br /&gt;
&lt;br /&gt;
{{Tip|&#039;&#039;multilib&#039;&#039; リポジトリ内のパッケージをすべて一覧表示するには、{{ic|pacman -Sl multilib}} を実行してください。32 ビットライブラリのパッケージ名は {{ic|lib32-}} で始まります。}}&lt;br /&gt;
&lt;br /&gt;
==== multilib を無効化する ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;multilib&#039;&#039; からインストールしたパッケージをすべて取り除くには、以下のコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
 # pacman -R $(comm -12 &amp;lt;(pacman -Qq | sort) &amp;lt;(pacman -Slq multilib | sort))&lt;br /&gt;
&lt;br /&gt;
gcc-lib と衝突が発生する場合、{{Pkg|base-devel}} パッケージの依存パッケージと {{pkg|gcc-libs}} パッケージを再インストールしてください ([[Pacman ヒント#パッケージの依存パッケージ]] を参照)。&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/pacman.conf}} 内の {{ic|[multilib]}} セクションをコメントアウトしてください:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=/etc/pacman.conf|2=&lt;br /&gt;
#[multilib]&lt;br /&gt;
#Include = /etc/pacman.d/mirrorlist}}&lt;br /&gt;
&lt;br /&gt;
そして、システムを[[アップグレード]]してください。&lt;br /&gt;
&lt;br /&gt;
== テストリポジトリ ==&lt;br /&gt;
&lt;br /&gt;
テストリポジトリの用途は、パッケージをメインのリポジトリに入れる前に置いておくための中間的な場所を提供することです。パッケージのメンテナ (及び一般ユーザ) は、これらのテストパッケージにアクセスして、新しいパッケージの統合に問題がないことを確認することができます。パッケージがテストされ、誤りが見つからなければ、そのパッケージをメインのリポジトリに移動することができます。&lt;br /&gt;
&lt;br /&gt;
すべてのパッケージがこのテストプロセスを通らなければならないわけではありません。新しいパッケージがテストリポジトリに入るケースとしては:&lt;br /&gt;
&lt;br /&gt;
* そのパッケージが &#039;&#039;core&#039;&#039; リポジトリに入る場合。&#039;&#039;core&#039;&#039; 内のすべてのパッケージは &#039;&#039;core-testing&#039;&#039; を通らなければなりません。&lt;br /&gt;
* そのパッケージをアップデートすると何かを壊してしまうことが予想され、まずテストする必要がある場合。&lt;br /&gt;
* そのパッケージが多くのパッケージに影響を与える場合 ({{Pkg|perl}} や {{Pkg|python}} など)。&lt;br /&gt;
&lt;br /&gt;
また、テストリポジトリは [[GNOME]] や [[KDE]] といった、パッケージの巨大なコレクションの新しいリリースの際にも用いられます。&lt;br /&gt;
&lt;br /&gt;
{{Note|1=テストリポジトリは、最も新しいパッケージを保管するためにあるのではありません。このリポジトリの目的の1つは、&#039;&#039;core&#039;&#039; パッケージ群の一部であったり別な方法で重要であったりするという理由でシステムを壊してしまう可能性があるパッケージのアップデートを保留することです。なので、テストリポジトリのユーザは、[https://lists.archlinux.org/mailman3/lists/arch-dev-public.lists.archlinux.org/ arch-dev-public メーリングリスト]を購読すること、[https://bbs.archlinux.org/viewforum.php?id=49 テストリポジトリのフォーラム]を読むこと、[[バグ報告ガイドライン|すべてのバグを報告する]]ことが強く推奨されています。また、[[Arch テストチーム]]への参加も考慮すべきです。}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|&lt;br /&gt;
* テストリポジトリを有効にするときは気をつけて下さい。アップデート後にシステムが壊れる可能性があります。潜在的なシステムの故障の対処方法を知っている、経験のあるユーザーだけがこのリポジトリを使うべきです。&lt;br /&gt;
* &#039;&#039;core-testing&#039;&#039; を有効にするときは、&#039;&#039;extra-testing&#039;&#039; も一緒に有効にする必要があります。逆も然りです。また、以下のサブセクションに書かれている他のテストリポジトリを有効にする場合も、&#039;&#039;core-testing&#039;&#039; と &#039;&#039;extra-testing&#039;&#039; の両方も有効にしなければなりません。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== core-testing ===&lt;br /&gt;
&lt;br /&gt;
このリポジトリはミラー上の {{ic|.../core-testing/os/}} にあります。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;core-testing&#039;&#039; には、&#039;&#039;core&#039;&#039; リポジトリへの候補となるパッケージが含まれています。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;core-testing&#039;&#039; は、他の公式リポジトリと名前の衝突を起こす可能性がある唯一のリポジトリです。有効化するには、このリポジトリを {{ic|/etc/pacman.conf}} ファイル内の最初のリポジトリにしなければなりません。&lt;br /&gt;
&lt;br /&gt;
=== extra-testing ===&lt;br /&gt;
&lt;br /&gt;
このリポジトリは &#039;&#039;core-testing&#039;&#039; リポジトリと似ていますが、&#039;&#039;extra&#039;&#039; リポジトリの候補になっているパッケージのために存在しています。&lt;br /&gt;
&lt;br /&gt;
=== multilib-testing ===&lt;br /&gt;
&lt;br /&gt;
このリポジトリは &#039;&#039;core-testing&#039;&#039; リポジトリと似ていますが、&#039;&#039;multilib&#039;&#039; リポジトリの候補になっているパッケージのために存在しています。&lt;br /&gt;
&lt;br /&gt;
=== gnome-unstable ===&lt;br /&gt;
&lt;br /&gt;
このリポジトリにはメインの &#039;&#039;extra-testing&#039;&#039; リポジトリに入る前の [[GNOME]] デスクトップ環境の次期安定板や安定板のリリース候補版が入っています。&lt;br /&gt;
&lt;br /&gt;
有効化するには、以下を {{ic|/etc/pacman.conf}} に追加してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/pacman.conf|2=&lt;br /&gt;
[gnome-unstable]&lt;br /&gt;
Include = /etc/pacman.d/mirrorlist&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;gnome-unstable&#039;&#039; エントリは、設定ファイル内のリポジトリリストの中で最初のリポジトリにする必要があります (つまり、&#039;&#039;extra-testing&#039;&#039; エントリよりも上)。&lt;br /&gt;
&lt;br /&gt;
パッケージに関連するバグは Arch Linux の[https://bugs.archlinux.org/ バグトラッカー]に、その他のバグについては上流の [https://gitlab.gnome.org GNOME Gitlab] に報告してください。&lt;br /&gt;
&lt;br /&gt;
=== kde-unstable ===&lt;br /&gt;
&lt;br /&gt;
このリポジトリには [[KDE]] Plasma や KDE Applications の最新&#039;&#039;ベータ&#039;&#039;版や&#039;&#039;リリース候補版&#039;&#039;が入っています。&lt;br /&gt;
&lt;br /&gt;
有効にするには、以下を {{ic|/etc/pacman.conf}} に追加してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/pacman.conf|2=&lt;br /&gt;
[kde-unstable]&lt;br /&gt;
Include = /etc/pacman.d/mirrorlist&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;kde-unstable&#039;&#039; エントリは、設定ファイル内のリポジトリリストの中で最初のリポジトリにする必要があります (つまり、&#039;&#039;extra-testing&#039;&#039; エントリよりも上)。&lt;br /&gt;
&lt;br /&gt;
何か問題を発見したときは[[バグ報告ガイドライン|バグレポートを作成]]してください。&lt;br /&gt;
&lt;br /&gt;
=== testing リポジトリの無効化 ===&lt;br /&gt;
&lt;br /&gt;
有効にした testing リポジトリを無効化したい場合、以下を実行してください:&lt;br /&gt;
&lt;br /&gt;
# {{ic|/etc/pacman.conf}} からリポジトリを削除 (あるいはコメントアウト)。&lt;br /&gt;
# {{ic|pacman -Syuu}} を実行して、リポジトリからのアップデートを&amp;quot;ロールバック&amp;quot;。&lt;br /&gt;
&lt;br /&gt;
二番目のコマンドは必ずしも実行する必要がないこともありますが、何か問題が起きていたら実行してみてください。&lt;br /&gt;
&lt;br /&gt;
== ステージングリポジトリ ==&lt;br /&gt;
&lt;br /&gt;
{{Warning|&#039;&#039;staging&#039;&#039; リポジトリはどのような理由でも有効化してはいけません。アップデート後にシステムが間違いなく破壊されます。バックエンドの開発者のみが使用することを意図しています。}}&lt;br /&gt;
&lt;br /&gt;
このリポジトリには壊れたパッケージが含まれており、多数のパッケージを一度にリビルドする間だけ開発者が使います。共有ライブラリが新しくなったときなどの理由で依存パッケージをリビルドするとき、まず最初に共有ライブラリ自体がビルドされるとステージングリポジトリにアップロードされ他の開発者が利用可能になります。全ての依存パッケージがリビルドされた直後 testing か main リポジトリのうち適切なほうに移動されます。&lt;br /&gt;
&lt;br /&gt;
歴史的背景の詳細は、[https://lists.archlinux.org/archives/list/arch-dev-public@lists.archlinux.org/thread/7RNII5TUKV3BJPGGBYKB7DNUK3WI26GZ/ ステージングリポジトリの導入に関するアナウンス]を参照。&lt;br /&gt;
&lt;br /&gt;
== 歴史的背景 ==&lt;br /&gt;
&lt;br /&gt;
リポジトリが分割されていますが、これらの殆どは歴史的な理由によるものです。昔、Arch Linux を利用している人がとても少なかった頃、&#039;&#039;&#039;official&#039;&#039;&#039; (現在の &#039;&#039;core&#039;&#039;) と呼ばれるたった一つのリポジトリだけがありました。当時は、&#039;&#039;official&#039;&#039; には主として Judd Vinet の好きなアプリケーションが入っていました。プログラムの&amp;quot;タイプ&amp;quot;ごとにそれぞれ一つのプログラムが入っていたのです (一つの DE、 一つのメジャーブラウザ、など)。&lt;br /&gt;
&lt;br /&gt;
ユーザーが Judd の選択したプログラムを好まない時は、簡単に使える [[Arch Build System]] により、自分たちでパッケージを作っていました。これらのパッケージは &#039;&#039;&#039;unofficial&#039;&#039;&#039; という名のリポジトリに入れられ、Judd 以外の開発者によって管理されていたのです。次第に、その 2 つのリポジトリは開発者によって等しくサポートされるようになり、&#039;&#039;official&#039;&#039; と &#039;&#039;unofficial&#039;&#039; という名前は実態を表さなくなりました。そこで、リリースバージョン 0.5 あたりで、それらは共に &#039;&#039;&#039;current&#039;&#039;&#039; と &#039;&#039;&#039;extra&#039;&#039;&#039; と名前を変えました。&lt;br /&gt;
&lt;br /&gt;
2007.8.1 リリースのすぐ後、何が含まれているのか混乱することを防ぐために &#039;&#039;current&#039;&#039; は &#039;&#039;&#039;core&#039;&#039;&#039; になりました。新旧リポジトリのほとんどは開発者やコミュニティの目からみると今でもあまり変わっていませんが、&#039;&#039;core&#039;&#039; は少々異なっています。主な違いは、インストール CD やリリーススナップショットに入っているパッケージだけが &#039;&#039;core&#039;&#039; に含まれていたということです。このリポジトリだけでも Linux システムを構築することはできますが、おそらくあなたの求める Linux システムにはなりません。&lt;br /&gt;
&lt;br /&gt;
さて、0.5 や 0.6 の期間に、開発者が管理するには吝か、パッケージが多すぎることが問題になりました。[https://archlinux.org/people/developer-fellows/#jason Jason Chu] は &amp;quot;Trusted User リポジトリ&amp;quot; を作り、信用されたユーザー (Trusted User) が作ったパッケージを置く非公式リポジトリにしました。&#039;&#039;&#039;staging&#039;&#039;&#039; リポジトリという、公式リポジトリに提案されているパッケージを置くリポジトリがありましたが、それは Arch Linux 開発者によるもので、それ以外の開発者と信用されたユーザーは多かれ少なかれ異なっていたのが理由です。&lt;br /&gt;
&lt;br /&gt;
信用されたユーザーが彼らのリポジトリに飽き、信用されてないユーザー (Untrusted User) が彼らのパッケージを共有したいと思う前になされたこの作業は、[https://aur.archlinux.org/ AUR] の開発として引き継がれました。TU たちは結集して、より強固なグループを作り、&#039;&#039;community&#039;&#039; リポジトリを集団で管理するようになりました。信用されたユーザーたちは未だに Arch Linux の開発者とは分裂していましたが、開発者との間ですくなからず連絡を取り合っていました。しかし、時には &#039;&#039;community&#039;&#039; から &#039;&#039;extra&#039;&#039; に人気のあるパッケージを移動するように求めることもありました。また、すべてのユーザーは [https://aur.archlinux.org/ AUR] を使って PKGBUILD を投稿することができます。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;core&#039;&#039; に入ったカーネルが[https://archlinux.org/news/please-avoid-kernel-261614-1/ 多くのユーザーのシステムを破壊する事件]がおこった後、&amp;quot;core 承認ポリシー&amp;quot; (core signoff policy) が導入されました。その時から、&#039;&#039;core&#039;&#039; にある全てのパッケージはアップデートの際にまず &#039;&#039;&#039;core-testing&#039;&#039;&#039; を通過しなくてはならなくなり、[[Arch テストチーム]]の他の開発者や人々から複数の承認が得られて初めて &#039;&#039;core&#039;&#039; への移動が許されるようになりました。それも時間がたつにつれ、いくつかの &#039;&#039;core&#039;&#039; パッケージがあまり使われなくなったので、そのようなパッケージはユーザーの承認やバグレポートが少ないという基準で運用されています。&lt;br /&gt;
&lt;br /&gt;
2009年末から2010年初頭にかけて、新しいファイルシステムの出現とそれらのサポートの要望ために、&#039;&#039;core&#039;&#039; は明確には定義されなくなった (たんに&amp;quot;開発者によって選ばれた重要なパッケージ&amp;quot;が入っている) 実情にあわせて、リポジトリにはより正確な説明が付けらました。&lt;br /&gt;
&lt;br /&gt;
2023年、数年の準備作業を経て、ディストリビューションの[https://lists.archlinux.org/archives/list/arch-dev-public@lists.archlinux.org/thread/SHCCCKHLIWPXPOIR5ARNJKSVWL2SSUO7/ バックエンドサービスを git に移行し]、それと同時に新しいリポジトリレイアウトに切り替わりました。新しいレイアウトでは、以前 &#039;&#039;community&#039;&#039; にあったパッケージがすべて &#039;&#039;extra&#039;&#039; へ移動され、テストリポジトリが &#039;&#039;testing&#039;&#039; から &#039;&#039;core-testing&#039;&#039; と &#039;&#039;extra-testing&#039;&#039; に分かれ、&#039;&#039;community-testing&#039;&#039; は完全に削除されました。この時点から、[[Trusted Users]] は新しいパッケージを &#039;&#039;extra&#039;&#039; にプッシュできるようになりました。&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus|Official repositories|2023-05-26|779252}}&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Fcitx&amp;diff=12923</id>
		<title>Fcitx</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Fcitx&amp;diff=12923"/>
		<updated>2018-04-30T04:31:05Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: 私の環境では ~/.xinitrc で fcitx を明示的に起動する必要がありました。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:国際化]]&lt;br /&gt;
[[en:Fcitx]]&lt;br /&gt;
[[zh-hans:Fcitx]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|IBus}}&lt;br /&gt;
{{Related|SCIM}}&lt;br /&gt;
{{Related2|uim を使って日本語を入力|UIM}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
[https://fcitx-im.org/wiki/Fcitx Fcitx] (Flexible Input Method Framework) は Linux に環境非依存の言語サポートを提供する[[Wikipedia:ja:インプットメソッド|インプットメソッドフレームワーク]]です。多くの言語をサポートし便利な non-CJK 機能が含まれています。&lt;br /&gt;
&lt;br /&gt;
==インストール==&lt;br /&gt;
{{Pkg|fcitx}} は[[公式リポジトリ]]から [[Pacman]] でインストールできます。&lt;br /&gt;
&lt;br /&gt;
=== インプットメソッドエンジン ===&lt;br /&gt;
&lt;br /&gt;
入力したい言語にあわせて、インプットメソッドエンジンをインストールしてください:&lt;br /&gt;
&lt;br /&gt;
====日本語====&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|fcitx-anthy}}: 人気の日本語入力エンジン。開発は停止しています。&lt;br /&gt;
* {{Pkg|fcitx-mozc}}: Google 日本語入力のオープンソース版である [[Mozc]] がベース。&lt;br /&gt;
* {{Pkg|fcitx-kkc}}: {{Pkg|libkkc}} がベースの新しい日本語仮名漢字入力エンジン。&lt;br /&gt;
* {{Pkg|fcitx-skk}}: {{Pkg|libskk}} がベースの日本語仮名漢字入力エンジン。&lt;br /&gt;
&lt;br /&gt;
==== 他の言語 ====&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|fcitx-sunpinyin}}: {{Pkg|sunpinyin}} がベース。速度と正確性のバランスが良い。&lt;br /&gt;
* {{Pkg|fcitx-libpinyin}}: {{Pkg|libpinyin}} がベース。{{Pkg|fcitx-sunpinyin}} よりも優れたアルゴリズムが使われています。&lt;br /&gt;
* {{Pkg|fcitx-rime}}: [[Rime IME]] プロジェクトのスキーマがベース。&lt;br /&gt;
* {{Pkg|fcitx-googlepinyin}}: {{Pkg|libgooglepinyin}} がベース。Android 用の Google ピンイン IME。&lt;br /&gt;
* {{AUR|fcitx-sogoupinyin}}: Linux 向けの捜狗インプットメソッド。同音異字、クラウド入力、英語入力、混合入力をサポート。&lt;br /&gt;
* {{Pkg|fcitx-cloudpinyin}}: クラウドによる中国語入力をサポート。&lt;br /&gt;
* {{Pkg|fcitx-chewing}}: {{Pkg|libchewing}} がベースの繁体字の注音入力エンジン。&lt;br /&gt;
* {{Pkg|fcitx-table-extra}}: [[Wikipedia:ja:倉頡輸入法|倉頡]], [[Wikipedia:Zhengma_method|郑码]], [[Wikipedia:Boshiamy_method|嘸蝦米]]サポートを追加。&lt;br /&gt;
* {{Pkg|fcitx-hangul}}: {{Pkg|libhangul}} がベースの韓国語のハングル入力エンジン。&lt;br /&gt;
* {{Pkg|fcitx-unikey}}: ベトナム文字入力エンジン。&lt;br /&gt;
* {{Pkg|fcitx-sayura}}: シンハラ文字入力エンジン。&lt;br /&gt;
* {{Pkg|fcitx-m17n}}: [https://www.nongnu.org/m17n/ M17n] によって提供されている他の言語の入力エンジン。&lt;br /&gt;
&lt;br /&gt;
=== インプットメソッドモジュール ===&lt;br /&gt;
&lt;br /&gt;
GTK+ や Qt プログラムでより良い動作を得るには、必要に応じて {{Pkg|fcitx-gtk2}}, {{Pkg|fcitx-gtk3}}, {{Pkg|fcitx-qt4}}, {{Pkg|fcitx-qt5}} パッケージをインストールしてください。もしくは {{Grp|fcitx-im}} グループで全てのパッケージをインストールできます。モジュールをインストールしなくてもアプリケーション上でインプットメソッドは動作しますが、フリーズしたりプレビューウィンドウの位置がおかしくなったり、プレビューが表示されなくなったりします。&lt;br /&gt;
&lt;br /&gt;
以下のアプリケーションは GTK+/Qt インプットモジュールを使用しません:&lt;br /&gt;
&lt;br /&gt;
* Tk, motif, xlib などを使用するアプリケーション&lt;br /&gt;
* [[Emacs]], [[Opera]], [[OpenOffice]], [[LibreOffice]], [[Skype]], [[Wine]], [[Java]], [[Xterm]], [[urxvt]], WPS&lt;br /&gt;
&lt;br /&gt;
=== スキン ===&lt;br /&gt;
fcitx にはスキンで外観をカスタマイズする機能があります。標準では dark, classic, default の3つのスキンのみが提供されています。&lt;br /&gt;
&lt;br /&gt;
しかしながら、いくつかの追加スキンが [[AUR]] からインストールできます。以下はその一部です:&lt;br /&gt;
&lt;br /&gt;
* {{AUR|fcitx-skin-material}}: マテリアルデザイン風の fcitx スキン。&lt;br /&gt;
* {{AUR|fcitx-skins}}: 8個のスキンを含んだリッチなパッケージ。&lt;br /&gt;
&lt;br /&gt;
=== その他 ===&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|fcitx-ui-light}}: fcitx の軽量 UI。&lt;br /&gt;
* {{Pkg|fcitx-fbterm}}{{Broken package link|{{aur-mirror|fcitx-fbterm}}}}: Fbterm のサポート。&lt;br /&gt;
* {{Pkg|fcitx-table-other}}: Latex, 絵文字など。&lt;br /&gt;
* {{AUR|fcitx-tablet}}: 手書きのタブレットサポート。&lt;br /&gt;
* {{AUR|fcitx-tsundere}}: 文字を入力した後に何某かを追加するモジュール。&lt;br /&gt;
* {{Pkg|kcm-fcitx}}: fcitx の KDE 設定モジュール。&lt;br /&gt;
&lt;br /&gt;
fcitx のコンポーネントをインストールした後は fcitx の再起動が必要です。&lt;br /&gt;
&lt;br /&gt;
== 使用方法 ==&lt;br /&gt;
&lt;br /&gt;
=== デスクトップ環境 ===&lt;br /&gt;
&lt;br /&gt;
[[KDE]], [[GNOME]], [[Xfce]], [[LXDE]] などの XDG 互換のデスクトップ環境を使っている場合は、再ログインで自動的に起動するようになるはずです。起動しないときは、ターミナルを開いて次のように入力してください:&lt;br /&gt;
&lt;br /&gt;
 $ fcitx-autostart&lt;br /&gt;
&lt;br /&gt;
fcitx が正しく動作しているか確認するために、leafpad といったアプリケーションを開いて CTRL+Space (インプットメソッドの切り替えのデフォルトのショートカット) を押して FCITX を呼び出しなにか文字を入力してみて下さい。&lt;br /&gt;
&lt;br /&gt;
Fcitx があなたの環境で自動で起動しない場合や fctix を起動するパラメータを変更したい場合は、デスクトップ環境によって提供されているツールを使って xdg の自動起動を設定するか {{ic|~/.config/autostart/}} ディレクトリ内の {{ic|fcitx-autostart.desktop}} ファイルを編集してください (存在しないときは {{ic|/etc/xdg/autostart/}} からコピーしてください)。&lt;br /&gt;
&lt;br /&gt;
デスクトップ環境が xdg 自動起動をサポートしていない場合は、(環境変数を正しく設定した後に) 次の行をスタートアップスクリプトに追加してください:&lt;br /&gt;
&lt;br /&gt;
 $ fcitx-autostart&lt;br /&gt;
&lt;br /&gt;
xim サポートのある他のインプットメソッドが動作していると、Fcitx は xim エラーで起動できません。Fcitx を起動する前に他のインプットメソッドが動いていないことを確認してください。&lt;br /&gt;
&lt;br /&gt;
=== 非デスクトップ環境 ===&lt;br /&gt;
&lt;br /&gt;
以下の行をデスクトップのスタートアップスクリプトファイル (GDM, LightDM, SDDM を使っている場合は {{ic|.xprofile}} もしくは {{ic|.profile}}、startx や Slim を使っている場合は {{ic|.xinitrc}}、Wayland を使っている場合は {{ic|/etc/environment}}) に追加してください。この設定で、fcitx は gtk/qt のインプットメソッドモジュールを使うようになり xim プログラムをサポートします (必要なインプットメソッドモジュールがすでにインストールされているか確認してください):&lt;br /&gt;
&lt;br /&gt;
 export GTK_IM_MODULE=fcitx&lt;br /&gt;
 export QT_IM_MODULE=fcitx&lt;br /&gt;
 export XMODIFIERS=@im=fcitx&lt;br /&gt;
&lt;br /&gt;
fcitx プロセスが自動的に起動しない場合は、{{ic|~/.xinitrc}} に {{ic|fcitx &amp;amp;}} を追加する必要があるかもしれません。&lt;br /&gt;
&lt;br /&gt;
{{Warning|上記の設定を {{ic|.bashrc}} でしないでください。{{ic|.bashrc}} はインタラクティブな bash セッションを初期化するときに使われます。インタラクティブでないセッションや X セッションの初期化では用いられません。さらに、{{ic|.bashrc}} で環境変数を設定すると、コマンドラインから実行した診断ツールに誤解を与えて、X セッションでは環境変数が使われていないのに正しく設定されているかのように表示されることがあります。}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* 上の設定で動かないときは {{ic|1=export DefaultIMModule=fcitx}} を追加してみて下さい。&lt;br /&gt;
* Fcitx で全ての Qt アプリに問題が発生する場合、qtconfig (qtconfig-qt4) を起動して、3番目のタブを開いて、&amp;quot;Default Input Method&amp;quot; コンボボックスに fcitx があることを確認してください。&lt;br /&gt;
* 現在、Qt5 アプリケーション + fcitx を使用する場合、上記の環境変数を {{ic|.bashrc}} ファイルにも追加しないと動作しないという報告があります (Plasma 5 を startx した場合や、gnome-shell で qt5 アプリケーションを起動した場合)。}}&lt;br /&gt;
&lt;br /&gt;
変更を適用するためにログインしなおしてください。&lt;br /&gt;
&lt;br /&gt;
=== Xim ===&lt;br /&gt;
&lt;br /&gt;
任意で、gtk や qt のプログラムで xim を使うように設定することも可能で、その場合上の行を以下のように変更してください:&lt;br /&gt;
&lt;br /&gt;
 export GTK_IM_MODULE=xim&lt;br /&gt;
 export QT_IM_MODULE=xim&lt;br /&gt;
&lt;br /&gt;
{{Warning|xim を使用するとインプットメソッドによって、入力ができなくなったりインプットメソッドを再起動するとアプリケーションがフリーズするなどの問題がおこることがあります。xim 関連の問題に対しては Fcitx は修正やサポートを提供できません。これは他のインプットメソッドフレームワークでも同じで、可能な限り xim ではなく ツールキット (gtk/qt) のインプットメソッドモジュールを使って下さい。}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Gtk2 は 2.24.20 から immodule のキャッシュファイルとして {{ic|/usr/lib/gtk-2.0/2.10.0/immodules.cache}} を使っています。{{ic|GTM_IM_MODULE_FILE}} 環境変数を設定していたり公式パッケージの install スクリプトを使ってキャッシュを更新していない場合、環境変数を変更・削除して {{ic|/usr/bin/gtk-query-immodules-2.0 --update-cache}} を使って immodule キャッシュを更新してください。}}&lt;br /&gt;
&lt;br /&gt;
変更を適用するためにログインしなおしてください。&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
=== 設定ツール ===&lt;br /&gt;
&lt;br /&gt;
Fcitx は GUI の設定ツールを提供しています。{{Pkg|kcm-fcitx}} (KDE) または {{Pkg|fcitx-configtool}} (GTK+3 ベース) がインストールできます。{{Pkg|fcitx-configtool}} をインストールしたら &#039;&#039;fcitx-config-gtk3&#039;&#039; を起動してください。別の言語のインプットメソッドを使用したいときは &#039;&#039;Only Show Current Language&#039;&#039; の設定を解除してください。&lt;br /&gt;
&lt;br /&gt;
設定を変更する前に fcitx は停止してください。停止しないと変更が反映されません。&lt;br /&gt;
&lt;br /&gt;
スペルチェックを有効にするには、fcitx が fcitx-keyboard によるインプットメソッドを使っている時に ctrl + alt + h を押して下さい。長い単語を入力すれば、動いているかどうか確認できます。&lt;br /&gt;
&lt;br /&gt;
=== デフォルト UI の変更 ===&lt;br /&gt;
&lt;br /&gt;
Fcitx は kimpanel プロトコルによるデスクトップの統合をサポートしています。&lt;br /&gt;
&lt;br /&gt;
* Gnome-Shell: extensions.gnome.org や {{AUR|gnome-shell-extension-kimpanel-git}} パッケージから kimpanel をインストールでき、ibus-gjs と同じように使うことができます。&lt;br /&gt;
* KDE: {{Pkg|kimtoy}}  は Sogou や fcitx のスキンを使えます。&lt;br /&gt;
&lt;br /&gt;
=== ピンイン辞書の拡張 ===&lt;br /&gt;
&lt;br /&gt;
ピンイン辞書は {{ic|~/.config/fcitx/pinyin}} に存在します。{{ic|pybase.mb}} ファイルには単一文字が {{ic|pyphrase.mb}} ファイルにはピンインのフレーズが定義されています。拡張するには {{ic|/usr/share/fcitx/pinyin}} にファイルを保存して fcitx を再起動してください。&lt;br /&gt;
&lt;br /&gt;
== ヒントとテクニック ==&lt;br /&gt;
&lt;br /&gt;
===クリップボード===&lt;br /&gt;
fcitx を使ってクリップボード (とクリップボード履歴) にある文章を入力することが可能です。デフォルトのトリガーキーは Control-; です。このトリガーキーはクリップボードのアドオンの設定ページにある他のオプションと同じように設定することが可能です。&lt;br /&gt;
&lt;br /&gt;
{{Note|クリップボードマネージャではないため、クリップボードマネージャにあるような中身の選択や変更はできません。クリップボードからの入力にだけ使えます。}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|クライアントによっては複数行の入力をサポートしていないため fcitx-clipboard を使ってクリップボードの中身をペーストすると一行しか出ないことがあります。これはバグかプログラムの方の入力の問題なので fcitx は何もできません。}}&lt;br /&gt;
&lt;br /&gt;
==トラブルシューティング==&lt;br /&gt;
=== 問題の診断 ===&lt;br /&gt;
fcitx を使っていて問題が発生する場合、例えばどのアプリケーションでも Ctrl+Space が使えないときは、{{ic|fcitx-diagnose}} を使ってまず問題を診断してみてください。{{ic|fcitx-diagnose}} はよくある問題についての手がかりを提供してくれます。また、(IRC やフォーラムなどで) 他の人に相談するときはコマンドの出力を貼り付けると役に立つはずです。&lt;br /&gt;
&lt;br /&gt;
===Emacs===&lt;br /&gt;
{{ic|LC_CTYPE}} が英語の場合、emacs のバグによって emacs でインプットメソッドが使えなくなることがあります。emacs を起動する前に {{ic|ja_JP.UTF-8}} など {{ic|LC_CTYPE}} を他の値に設定することで問題を回避できます。&lt;br /&gt;
&lt;br /&gt;
使用するロケールは有効である必要があります。{{ic|/etc/locale.gen}} を編集して適当な行 (例: {{ic|ja_JP.UTF-8}}) をアンコメントし、{{ic|locale-gen}} を実行してください。&lt;br /&gt;
&lt;br /&gt;
デフォルトのフォントセットはベースフォントとして {{ic|-*-*-*-r-normal--14-*-*-*-*-*-*-*}} を使います (src/xfns.c)。マッチするフォント (terminus や 75dpi など、{{ic|xlsfonts}} の出力を見て下さい) がない場合、XIM は有効になりません。&lt;br /&gt;
&lt;br /&gt;
==== Emacs デーモン ====&lt;br /&gt;
&lt;br /&gt;
[[Emacs#デーモンとして|emacs デーモン/クライアントモード]]を使う場合、デーモンの起動時に {{ic|LC_CTYPE}} を設定してください。例えば {{ic|1=LC_CTYPE=ja_JP.UTF-8 emacs --daemon}} というコマンドを使って emacs デーモンを起動します。&lt;br /&gt;
&lt;br /&gt;
systemd から emacs デーモンを起動している場合、ユニットファイルで以下のように Environment を設定してください:&lt;br /&gt;
&lt;br /&gt;
 Environment=&amp;quot;LC_CTYPE=ja_JP.UTF-8&amp;quot; &amp;quot;XMODIFIERS=@im=fcitx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
systemd は {{ic|.xprofile}} をロードしないため XMODIFIERS は明示的に設定する必要があります。emacs で {{ic|initial-environment}} 変数をチェックして変数が両方とも正しく設定されていることを確認してください。&lt;br /&gt;
&lt;br /&gt;
===Ctrl+Space が GTK のプログラムで機能しない===&lt;br /&gt;
&lt;br /&gt;
ロケールを英語に設定しているとこの問題が発生することがあります。GTK_IM_MODULE が正しく設定されているか確認してください。&lt;br /&gt;
&lt;br /&gt;
参照: [http://fcitx-im.org/wiki/FAQ#When_use_Ctrl_.2B_Space.2C_Fcitx_cannot_be_triggered_on FAQ]&lt;br /&gt;
&lt;br /&gt;
*_IM_MODULE 環境変数を設定していても fcitx が有効にできない場合は、適切なインプットメソッドモジュールをインストールしているか確認してください。&lt;br /&gt;
&lt;br /&gt;
プログラムによっては xim しか使わないため、そうしたプログラムを使っているときは、XMODIFIERS が正しく設定されているか確認してください。プログラムの例: gtk や qt を使わないプログラム全て (例: tk や motif、もしくは xlib を直接使っているプログラム), emacs, opera, openoffice, libreoffice, skype。&lt;br /&gt;
&lt;br /&gt;
gnome の gnome-terminal で fcitx が有効にできず、上の方法で効果がない場合は、以下のコマンドを試してみて下さい:&lt;br /&gt;
&lt;br /&gt;
 $ gsettings set org.gnome.settings-daemon.plugins.xsettings overrides &amp;quot;{&#039;Gtk/IMModule&#039;:&amp;lt;&#039;fcitx&#039;&amp;gt;}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== 内蔵の Chinese Pinyin がデフォルトで有効にならない ===&lt;br /&gt;
&lt;br /&gt;
ロケールが {{ic|en_US.UTF-8}} である場合、fcitx は内蔵の Chinese Pinyin インプットメソッドをデフォルトで有効にしません。{{ic|fcitx-keyboard-us}} インプットメソッドだけが有効にされます。{{ic|fcitx-diagnose}} コマンドを実行すると以下のように表示されます:&lt;br /&gt;
&lt;br /&gt;
    ## Input Methods:&lt;br /&gt;
        1.  Found 1 enabled input methods:&lt;br /&gt;
                fcitx-keyboard-us&lt;br /&gt;
        2.  Default input methods:&lt;br /&gt;
            **You only have one input method enabled, please add a keyboard input method as the first one and your main input method as the second one.**&lt;br /&gt;
&lt;br /&gt;
GUI の設定ツールで {{ic|Pinyin}} や {{ic|Shuangpin}} インプットメソッドを追加してインプットメソッドが有効にしてください。&lt;br /&gt;
&lt;br /&gt;
=== fcitx と KDE ===&lt;br /&gt;
&lt;br /&gt;
何らかの理由で、[[KDE]] がキーボードレイアウトを適切に扱えないことがあります。例えば、US (English) から LT (Lithuanian) に切り替えた場合、キーボードの数字キーは全てリトアニア文字になるはずですが、数字が出力されてしまいます。以下の手順で修正することが可能です:&lt;br /&gt;
&lt;br /&gt;
# [[#KDE|上のセクション]]で書かれているパッケージをインストールしてください。&lt;br /&gt;
# バックグラウンドで {{ic|fcitx}} を動かしている場合は終了してください。&lt;br /&gt;
# KDE に関連することを無効にします:&lt;br /&gt;
## &#039;&#039;System settings --&amp;gt; Input devices --&amp;gt; Layouts (tab)&#039;&#039; から &amp;quot;Configure layouts&amp;quot; のチェックを外して下さい。&lt;br /&gt;
## &#039;&#039;System settings --&amp;gt; Input devices --&amp;gt; Advanced (tab)&#039;&#039; から &amp;quot;Configure keyboard options&amp;quot; のチェックを外して下さい。&lt;br /&gt;
# ターミナルを開いて {{ic|fcitx}} と入力して fcitx を起動します。ターミナルは閉じてもかまいません。{{ic|fcitx}} はバックグラウンドで動作し続けます。&lt;br /&gt;
# 必要なレイアウトを設定してください (システムトレイアイコンを右クリックして &amp;quot;Configure&amp;quot; をクリック)。&lt;br /&gt;
# システムトレイアイコンを右クリックして、&amp;quot;Exit&amp;quot; をクリック。&lt;br /&gt;
&lt;br /&gt;
これでレイアウトがちゃんと使えるようになるはずです。KDE のレイアウト切り替えrアイコンが表示され、マウススクロールしたりアイコンをクリックすることでレイアウトを切り替えられます。&lt;br /&gt;
&lt;br /&gt;
=== 勝手にインプットメソッドが英語に切り替わってしまう ===&lt;br /&gt;
&lt;br /&gt;
XMind でエンターを押してノードを作成したときなど、インプットメソッドが勝手に英語に切り替わってしまって、元のインプットメソッドに手動で戻さなくてはならないことがあります。&lt;br /&gt;
&lt;br /&gt;
この問題を修正するには、fcitx の GUI 設定ツール ({{Pkg|fcitx-configtool}} に含まれています) を開いて、&amp;quot;Global Config&amp;quot; タブの &amp;quot;Share State Among Window&amp;quot; ドロップダウンメニューから、&amp;quot;PerProgram&amp;quot; または &amp;quot;All&amp;quot; を選択してください。&lt;br /&gt;
&lt;br /&gt;
=== GNOME/Wayland 上での Fcitx の利用 ===&lt;br /&gt;
&lt;br /&gt;
Wayland は {{ic|~/.xprofile}} に保管された環境変数を読み込むことができないため、Wayland 上で Fcitx を使うときは {{ic|/etc/environment}} で環境変数を設定してください。&lt;br /&gt;
&lt;br /&gt;
=== xmodmap の設定が上書きされる ===&lt;br /&gt;
&lt;br /&gt;
Fcitx はキーボードレイアウトを制御するため、xmodmap の設定は上書きされてしまいます。4.2.7 から、Fcitx は {{ic|~/.Xmodmap}} のロードを行うようになります。&lt;br /&gt;
&lt;br /&gt;
xmodmap の変更を保存する方法については [http://fcitx-im.org/wiki/FAQ#xmodmap_settings_being_overwritten FAQ] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==参照==&lt;br /&gt;
*[https://github.com/fcitx/fcitx/ Fcitx GitHub]&lt;br /&gt;
*[http://fcitx-im.org/ Fcitx Wiki]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Mozc&amp;diff=12922</id>
		<title>Mozc</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Mozc&amp;diff=12922"/>
		<updated>2018-04-30T04:17:54Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: Mozcの仕様により、rootでMozcを起動することはできません。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:国際化]]&lt;br /&gt;
[[en:Mozc]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Uim を使って日本語を入力}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
[https://github.com/google/mozc プロジェクトホームページ]より:&lt;br /&gt;
:&#039;&#039;Mozc は Android OS、Chromium OS、Windows、macOS、あるいは GNU/Linux など、マルチプラットフォームで動作するよう設計された日本語インプットメソッドエディタ (IME) であり、このオープンソースプロジェクトは [https://www.google.com/intl/ja/ime/ Google 日本語入力] から派生したものです。Mozc と Google 日本語入力との差異は [https://github.com/google/mozc/blob/master/docs/about_branding.md About Branding] で説明されています。&#039;&#039; (簡単に言うと、Mozc は辞書やその関連データが Google 日本語入力と異なっているか省略されており、Google 日本語入力と同等の変換品質は持ちません)&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
どういうセットアップにしたいかによって、複数の Mozc パッケージから適切なパッケージを選択してください。まず、Mozc のコアパッケージとお好きなインプットメソッドフレームワーク ([[Fcitx]], [[IBus]], [[UIM|uim]] など) のモジュールをインストールする必要があります。ただし一部の Fcitx パッケージにはコアパッケージが同梱されています。次に、非公式の辞書がいくつか存在します: Google/Yahoo のヒット件数や Wikipedia などを元に作成された UT (開発終了) と UT2 辞書と、mecab-ipadic-NEologd Neologism 辞書を元に作られた NEologd UT 辞書があります。&lt;br /&gt;
&lt;br /&gt;
以下の表ではコンポーネントと辞書の組み合わせに従ってどのパッケージをインストールするべきか示しています。1つのセル内に複数のパッケージがある場合、それらは分割パッケージです。一部のパッケージは [[非公式ユーザーリポジトリ#pnsft-pur|pnsft-pur]] リポジトリからインストールできます。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! 標準 !! UT !! UT2 !! NEologd UT&lt;br /&gt;
|-&lt;br /&gt;
! Fcitx 統合&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | {{Pkg|fcitx-mozc}}&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | {{AUR|fcitx-mozc-ut}}&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | {{AUR|fcitx-mozc-ut2}}&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | {{AUR|fcitx-mozc-neologd-ut}}&amp;lt;br /&amp;gt;{{AUR|mozc-neologd-ut}}&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Mozc コア&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | {{AUR|mozc}}&amp;lt;br /&amp;gt;{{AUR|ibus-mozc}}&amp;lt;br /&amp;gt;{{AUR|emacs-mozc}}&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | {{AUR|mozc-ut2}}&amp;lt;br /&amp;gt;{{AUR|ibus-mozc-ut2}}&amp;lt;br /&amp;gt;{{AUR|emacs-mozc-ut2}}&amp;lt;br /&amp;gt;{{AUR|uim-mozc-ut2}}&lt;br /&gt;
|-&lt;br /&gt;
! IBus 統合&lt;br /&gt;
| ||&lt;br /&gt;
|-&lt;br /&gt;
! Emacs 統合&lt;br /&gt;
| ||&lt;br /&gt;
|-&lt;br /&gt;
! uim 統合&lt;br /&gt;
| {{AUR|uim-mozc}} || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
上記のパッケージでは、PKGBUILD の中に特定の機能を有効化・無効化する定義が含まれていることがあります。特に、emacs パッケージをビルドする場合は {{ic|_emacs_mozc}} 行をアンコメントする必要があります:&lt;br /&gt;
 ## If you will be using mozc.el on Emacs, uncomment below.&lt;br /&gt;
 _emacs_mozc=&amp;quot;yes&amp;quot;&lt;br /&gt;
同じように uim-mozc-ut2 もビルドするときは手動で有効にしてください。&lt;br /&gt;
&lt;br /&gt;
Mozc をインストールしたら、X やインプットメソッドフレームワークを再起動することで Mozc を使うことができます。&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
=== IBus ===&lt;br /&gt;
&#039;&#039;IBus の設定については [[IBus]] の記事を参照してください。&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mozc をデフォルトのインプットメソッドにするには、&#039;&#039;ibus-setup&#039;&#039; で設定します:&lt;br /&gt;
 $ ibus-setup&lt;br /&gt;
「インプットメソッド」タブを選び、&#039;&#039;Mozc&#039;&#039; をインプットメソッドリストの先頭に移動します。&lt;br /&gt;
&lt;br /&gt;
インプットメソッドの切り替えは、{{ic|Alt + Shift_L}} (IBus のデフォルト) で行えます。&lt;br /&gt;
&lt;br /&gt;
=== uim ===&lt;br /&gt;
&#039;&#039;uim の設定については [[UIM]] の記事を参照してください。&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
以下のコマンドを実行して GUI を立ち上げて uim を設定してください (もしくは uim-pref-gtk3/uim-pref-qt4 を使用):&lt;br /&gt;
 $ uim-pref-gtk&lt;br /&gt;
&lt;br /&gt;
「標準の入力方式」としてお好きなインプットメソッドを選択してください。&lt;br /&gt;
{{Note|初めて Mozc をインストールした直後は、Mozc は選択できません。これは Mozc が「使用可能にする入力方式」で有効になっていないためです。その右の「編集」ボタンをクリックして Mozc を有効にしてください。}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|&#039;&#039;&#039;uim&#039;&#039;&#039; をアップグレード・再インストールしたときは次のコマンドを実行する必要があります: {{ic|# uim-module-manager --register mozc}}。}}&lt;br /&gt;
&lt;br /&gt;
=== Fcitx ===&lt;br /&gt;
&#039;&#039;Fcitx の設定については [[Fcitx]] の記事を参照してください。&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
以下のコマンドを実行して Fcitx の設定ダイアログを開いてください:&lt;br /&gt;
 $ fcitx-configtool&lt;br /&gt;
&#039;&#039;Input Method&#039;&#039; タブからプラス記号をクリックしてダイアログのリストから Mozc を選択してください。設定によっては、Mozc を使うために &#039;&#039;Only Show Current Language&#039;&#039; オプションを無効化する必要があります。ダイアログの確認後、標準のキーボードショートカットを使って Mozc をインプットメソッドとして有効にできます。&lt;br /&gt;
&lt;br /&gt;
=== Emacs で Mozc を使う ===&lt;br /&gt;
&lt;br /&gt;
mozc.el (mozc-mode) を使用して LEIM (Library of Emacs Input Method) 経由で日本語を入力することができます。mozc-mode を使用するには、以下を {{ic|.emacs.d/init.el}} あるいはその他の Emacs カスタム設定用ファイルに追加します:&lt;br /&gt;
 (require &#039;mozc)  ; or (load-file &amp;quot;/path/to/mozc.el&amp;quot;)&lt;br /&gt;
 (setq default-input-method &amp;quot;japanese-mozc&amp;quot;)&lt;br /&gt;
mozc.el は変換候補の表示スタイルに、候補のリストを入力中文字列のそばに表示する &amp;quot;overlay&amp;quot; モードを提供しています (Mozc r77以降)。このモードをデフォルトで利用する場合は、以下の設定を追加します:&lt;br /&gt;
 (setq mozc-candidate-style &#039;overlay)&lt;br /&gt;
&lt;br /&gt;
{{ic|C-\}} (&#039;&#039;toggle-input-method&#039;&#039;) で mozc-mode のオン/オフを切り替えます。&lt;br /&gt;
&lt;br /&gt;
==== Emacs 上で C-SPC が IM のオン・オフで使われてしまうのを抑止する ====&lt;br /&gt;
&lt;br /&gt;
デスクトップ環境上で IM のオン・オフのキー割り当てに C-SPC を設定しており、Emacs 上でもそちらが優先されて C-SPC/C-@ で set-mark-command が使えなくて困る、という場合は、{{ic|~/.Xresources}} か {{ic|~/.Xdefaults}} に以下を追加します。&lt;br /&gt;
 Emacs*UseXIM: false&lt;br /&gt;
&lt;br /&gt;
== ヒントとテクニック ==&lt;br /&gt;
&lt;br /&gt;
=== 現在使用している Mozc のバージョンを表示する ===&lt;br /&gt;
&lt;br /&gt;
Mozc 起動中に &amp;quot;ばーじょん&amp;quot; と入力し変換すると、変換候補の中に現在の Mozc のバージョン番号が表示されます:&lt;br /&gt;
{{hc|&amp;lt;u&amp;gt;ばーじょん&amp;lt;/u&amp;gt;&lt;br /&gt;
|バージョン&lt;br /&gt;
ヴァージョン&lt;br /&gt;
ばーじょん&lt;br /&gt;
Mozc-1.6.1187.102  &#039;&#039;⇐ Mozc のバージョン&#039;&#039;&lt;br /&gt;
...}}&lt;br /&gt;
&lt;br /&gt;
=== コマンドラインから Mozc ツールを起動 ===&lt;br /&gt;
&lt;br /&gt;
以下のコマンドで Mozc のツールを起動できます:&lt;br /&gt;
* Mozc 設定: {{ic|1=$ /usr/lib/mozc/mozc_tool --mode=config_dialog}}&lt;br /&gt;
* Mozc 辞書ツール: {{ic|1=$ /usr/lib/mozc/mozc_tool --mode=dictionary_tool}}&lt;br /&gt;
* Mozc 単語登録: {{ic|1=$ /usr/lib/mozc/mozc_tool --mode=word_register_dialog}}&lt;br /&gt;
* Mozc 手書き文字入力: {{ic|1=$ /usr/lib/mozc/mozc_tool --mode=hand_writing}}&lt;br /&gt;
* Mozc 文字パレット: {{ic|1=$ /usr/lib/mozc/mozc_tool --mode=character_palette}}&lt;br /&gt;
&lt;br /&gt;
=== ASCII キーボードで CapsLock キーを英数キーとして使用する ===&lt;br /&gt;
&lt;br /&gt;
Mozc のプリセットのキーバインドや多くの日本語入力メソッドでは、変換前入力中の英数入力切り替えは、{{ic|英数}}キー、{{ic|ひらがな/カタカナ}}キー、あるいは{{ic|無変換}}キーなどに割り当てられていますが、ASCII キーボードにそれらはありません。CapsLock キーに英数キー (Eisu_toggle) を割り当てることで日本語キーボードと同じように使用できます (Mozc は CapsLock キーを認識しないようです)。&lt;br /&gt;
&lt;br /&gt;
以下の設定では、OADG キーボードと等価な、Eisu_toggle を {{ic|CapsLock}} キーに、Caps_Lock を {{ic|Shift + CapsLock}} キーに割り当てます。&lt;br /&gt;
{{Warning|この設定はデスクトップ全体に作用します。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|~/.Xmodmap}} を以下のように編集します:&lt;br /&gt;
 keycode 66 = Eisu_toggle Caps_Lock&lt;br /&gt;
 clear Lock&lt;br /&gt;
&lt;br /&gt;
X 再起動するか、xmodmap コマンドを実行して編集を適用します:&lt;br /&gt;
 $ xmodmap ~/.Xmodmap&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== Mozc のビルドに失敗する (プロセスが強制終了される) ===&lt;br /&gt;
&lt;br /&gt;
ビルドが以下のようなメッセージで異常終了した場合:&lt;br /&gt;
 ...&lt;br /&gt;
 /bin/sh: 1 行:  xxxx 強制終了&lt;br /&gt;
 ...&lt;br /&gt;
 make: *** [xxx/xxx ...] エラー 137&lt;br /&gt;
 ...&lt;br /&gt;
メモリ不足になっていないか確認してください。&lt;br /&gt;
&lt;br /&gt;
=== Mozc をアップグレードし、X または IBus を再起動しても (リブートはしていない) 古い Mozc が動いている ===&lt;br /&gt;
&lt;br /&gt;
古いバージョンの Mozc が終了されずにずっとメモリ上で動作しているのかもしれません。Mozc のプロセスを一度 kill してみてください:&lt;br /&gt;
 $ killall mozc_server&lt;br /&gt;
&lt;br /&gt;
=== mozc_serverがdefunctになる ===&lt;br /&gt;
&lt;br /&gt;
Mozcの仕様により、rootでMozcを起動することはできません。一般ユーザーでXを起動してください。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/google/mozc Mozc 公式サイト]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=GnuPG&amp;diff=4835</id>
		<title>GnuPG</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=GnuPG&amp;diff=4835"/>
		<updated>2016-01-24T18:28:27Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: /* gpg-agent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:セキュリティ]]&lt;br /&gt;
[[en:GnuPG]]&lt;br /&gt;
[[es:GnuPG]]&lt;br /&gt;
[[ru:GnuPG]]&lt;br /&gt;
[http://www.gnupg.org 公式サイト] によれば:&lt;br /&gt;
&lt;br /&gt;
:GnuPG は RFC4880（別名 [[Wikipedia:PGP|PGP]]）で定義される OpenPGP 標準の完全でフリーな実装です。GnuPG を使うことでデータや通信を暗号化したり署名することができます。多目的の鍵管理システムであり、あらゆる種類の公開鍵ディレクトリのアクセスモジュールです。GnuPG（またの名を GPG）は他のアプリケーションとの簡単に連携できる機能を備えたコマンドラインツールです。豊富なアプリケーションとライブラリが利用可能です。GnuPG のバージョン2は S/MIME と ssh のサポートも含んでいます。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{Pkg|gnupg}} をインストールしてください。&lt;br /&gt;
&lt;br /&gt;
gnupg をインストールすると、GnuPG がパスフレーズエントリに使用するシンプルな PIN やパスフレーズエントリダイアログのコレクションである {{Pkg|pinentry}} もインストールされます。&#039;&#039;pinentry&#039;&#039; はシンボリックリンク {{ic|/usr/bin/pinentry}} によって決められ、デフォルトでは {{ic|/usr/bin/pinentry-gtk-2}} になります。&lt;br /&gt;
&lt;br /&gt;
グラフィカルフロントエンドや GnuPG と連携するプログラムを使いたい場合は[[アプリケーション一覧/セキュリティ#暗号化, 署名, ステガノグラフィー]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
== 環境変数 ==&lt;br /&gt;
&lt;br /&gt;
=== GNUPGHOME ===&lt;br /&gt;
&lt;br /&gt;
{{ic|$GNUPGHOME}} は全ての設定ファイルを保存するディレクトリを指定するのに GnuPG によって使われます。デフォルトでは {{ic|$GNUPGHOME}} は設定されておらず、代わりに {{ic|$HOME}} が使われます。そのためインストール直後は {{ic|~/.gnupg}} ディレクトリが確認できます。[[自動起動|スタートアップファイル]]に次の行を記述することでデフォルト設定を変更できます:&lt;br /&gt;
&lt;br /&gt;
 export GNUPGHOME=&amp;quot;&#039;&#039;/path/to/directory&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note|デフォルトでは、gnupg ディレクトリの[[ファイルのパーミッションと属性|パーミッション]]は &#039;&#039;700&#039;&#039; に設定されており、ディレクトリのファイルのパーミッションは &#039;&#039;600&#039;&#039; に設定されています。ファイルの読み書きやアクセスの権限を持っているのはディレクトリの所有者だけです (&#039;&#039;r&#039;&#039;,&#039;&#039;w&#039;&#039;,&#039;&#039;x&#039;&#039;)。これはセキュリティ上の理由で設定されていることなので変更してはいけません。ディレクトリやファイルがこのセキュリティ対策に従っていない場合、ファイルやホームディレクトリのパーミッションが安全ではないという警告が表示されます。}}&lt;br /&gt;
&lt;br /&gt;
== 設定ファイル ==&lt;br /&gt;
&lt;br /&gt;
デフォルトは {{ic|~/.gnupg/gpg.conf}} と {{ic|~/.gnupg/dirmngr.conf}} です。デフォルトの場所を変更したい場合は、{{ic|$ gpg --homedir &#039;&#039;path/to/file&#039;&#039;}} と gpg を実行するか {{ic|$GNUPGHOME}} 変数を使って下さい。どんな長いオプションもこのファイルに追加します。2つのダッシュを書かないで、オプションや必要な引数の名前を書いて下さい。スケルトンファイルは {{ic|/usr/share/gnupgl}} にあります。gpg がなんらかの操作のため最初に起動されたとき、~/.gnupg が存在しなければこれらのファイルが ~/.gnupg にコピーされます。[[#参照]] に他の例があります。&lt;br /&gt;
&lt;br /&gt;
== 使い方 ==&lt;br /&gt;
&lt;br /&gt;
{{Note|コマンドに &#039;&#039;{{ic|&amp;lt;user-id&amp;gt;}}&#039;&#039; が必要なときは、鍵 ID、指紋、名前やメールアドレスの一部などを指定できます。これについて GnuPG は寛容です。}}&lt;br /&gt;
{{Note|以下のステップのいくつかは、使用法によってはメールクライアントなどの外部プログラムにより提供されていることもあります。[[アプリケーション一覧/セキュリティ#暗号化, 署名, ステガノグラフィー]]も参照}}&lt;br /&gt;
&lt;br /&gt;
=== 鍵の作成 ===&lt;br /&gt;
&lt;br /&gt;
秘密鍵を生成するにはターミナルに次を入力:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --full-gen-key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|--expert}} を使うことで他の暗号を利用することができます ([[wikipedia:ja:楕円曲線暗号|楕円曲線暗号]]など)}}&lt;br /&gt;
&lt;br /&gt;
いくつか質問がきかれます。一般的に、ほとんどのユーザーは RSA (署名のみ) と RSA (暗号化のみ) の両方の鍵が必要になります。鍵長は2048ビットで十分です。4096ビットを使ったところで [https://www.gnupg.org/faq/gnupg-faq.html#no_default_of_rsa4096 &amp;quot;大した効果はありませんし、無駄に時間がかかるようになるだけです&amp;quot;] 。&lt;br /&gt;
&lt;br /&gt;
副鍵の有効期限の設定は技術的には必須ではありませんが、設定することは悪くありません。標準的なユーザーなら、1年間で十分でしょう。たとえ鍵束へのアクセスを失っても、他の人が有効でないことを知ることができるようになります。鍵を作成した後、新しい鍵を再発行しなくても満了日は延長することができます。&lt;br /&gt;
&lt;br /&gt;
安全なパスフレーズを選ぶようにしてください（[[セキュリティ#パスワードの管理]]を参照）。&lt;br /&gt;
&lt;br /&gt;
=== 秘密鍵のバックアップ ===&lt;br /&gt;
&lt;br /&gt;
秘密鍵をバックアップするには:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --export-secret-keys --armor &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039; &amp;gt; privkey.asc&lt;br /&gt;
&lt;br /&gt;
秘密鍵はロックされたコンテナや暗号化されたドライブなど安全な場所に置いてください。&lt;br /&gt;
&lt;br /&gt;
{{Warning|上記のエクスポートされたファイルにアクセスできる人は誰でも、&#039;&#039;パスフレーズを知らなくても&#039;&#039;あなたのふりをして文書を暗号化したり署名したりできます}}&lt;br /&gt;
&lt;br /&gt;
=== 公開鍵のエクスポート ===&lt;br /&gt;
&lt;br /&gt;
他の人があなたに暗号化したメッセージを送れるようにするには、彼らがあなたの公開鍵を知っている必要があります。&lt;br /&gt;
&lt;br /&gt;
（メールで送る場合などのために）ASCII 版の公開鍵を生成するには:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --armor --output public.key --export &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
あるいは、[[#鍵サーバを使用する|鍵サーバ]]で鍵を共有する方法もあります。&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|--no-emit-version}} を使うか、これを設定ファイルに書くことでバージョン番号の表示を抑制できます。}}&lt;br /&gt;
&lt;br /&gt;
=== 鍵のインポート ===&lt;br /&gt;
&lt;br /&gt;
メッセージを暗号化して他の人に送るには、彼らの公開鍵が必要です。公開鍵を自分の公開鍵リングにインポートするには:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --import public.key&lt;br /&gt;
&lt;br /&gt;
あるいは、[[#鍵サーバを使用する|鍵サーバ]]で公開鍵を見つけます。&lt;br /&gt;
&lt;br /&gt;
=== 鍵サーバを使用する ===&lt;br /&gt;
&lt;br /&gt;
自分の公開鍵を公共の PGP 鍵サーバに登録することで、他の人があなたに直接連絡することなしにあなたの鍵を入手できるようになります。&lt;br /&gt;
&lt;br /&gt;
 $ gpg --send-keys &#039;&#039;&amp;lt;key-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
鍵サーバから鍵をインポートするには:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --recv-keys &#039;&#039;&amp;lt;key-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Warning|誰でも鍵サーバに鍵を送ることができます。そのため、ダウンロードした鍵が本当にその人のものであると信用してはいけません。入手した鍵の指紋を、持ち主が別の場所（ブログ、サイト、メール・電話で連絡するなど）で公開している指紋と比較してその鍵の真正性を確かめるべきです。複数の情報源を使うことでその鍵の信頼性は増します。[[Wikipedia:Public key fingerprint]]を参照。}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* 代わりの鍵サーバは {{ic|pool.sks-keyservers.net}} で {{ic|--keyserver}} で指定できます。[[wikipedia:Key server (cryptographic)#Keyserver examples]]を参照&lt;br /&gt;
* {{ic|--use-tor}} を使うと [[Tor]] で鍵サーバに接続できます。{{ic|hkp://jirk5u4osbsr34t5.onion}} は sks-keyservers プールの onion アドレスです。[https://gnupg.org/blog/20151224-gnupg-in-november-and-december.html See this GnuPG blog post] を参照}}&lt;br /&gt;
&lt;br /&gt;
=== 暗号化と復号化 ===&lt;br /&gt;
&lt;br /&gt;
暗号化や復号化をするときは複数の秘密鍵を使用することが可能です。複数の鍵を使うときは使用する鍵を選択する必要があります。{{ic|-u &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}} オプションや {{ic|--local-user &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}} オプションを使うことで選択できます。このオプションを使うとデフォルトの鍵を使用する代わりに指定された鍵を使用します。&lt;br /&gt;
&lt;br /&gt;
ASCII armor（テキストでメッセージをコピー＆ペーストするのに適している）を使ってファイルを暗号化するには、次を使用:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --encrypt --armor secret.txt&lt;br /&gt;
&lt;br /&gt;
単に暗号化だけしたいときは{{ic|--armor}}は不要です。&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* 受取人を変更したい場合は {{ic|-r &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}} オプションで変更できます (または {{ic|--recipient &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}})&lt;br /&gt;
* Add {{ic|-R &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}} or {{ic|--hidden-recipient &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}} instead of {{ic|--recipient}} to not put the recipient key IDs in the encrypted message. This helps to hide the receivers of the message and is a limited countermeasure against traffic analysis.&lt;br /&gt;
* Add {{ic|--no-emit-version}} to avoid printing the version number, or add the corresponding setting to your configuration file.}}&lt;br /&gt;
&lt;br /&gt;
{{Note|gnupg を使えば機密文書を暗号化できますが、一度に複数のファイルを暗号化することはできません。ディレクトリやファイルシステム全体を暗号化したいときは、[[TrueCrypt]] や [[EncFS]] などを使用するか、tarball にファイルをまとめて暗号化すると良いでしょう。}}&lt;br /&gt;
&lt;br /&gt;
ファイルを復号化するには、次を使用:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --decrypt secret.txt.asc&lt;br /&gt;
&lt;br /&gt;
パスフレーズの入力が求められます。復号化するには送信者の公開鍵をインポートしてある必要があります。&lt;br /&gt;
&lt;br /&gt;
== 鍵の管理 ==&lt;br /&gt;
&lt;br /&gt;
=== 鍵の編集 ===&lt;br /&gt;
&lt;br /&gt;
* {{ic|gpg --edit-key &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}} コマンドを実行するとメニューが表示され、鍵管理に関連するほとんどの作業を行うことができます。以下は満了日を設定する例です:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --edit-key &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
 &amp;gt; key &#039;&#039;number&#039;&#039;&lt;br /&gt;
 &amp;gt; expire &#039;&#039;yyyy-mm-dd&#039;&#039;&lt;br /&gt;
 &amp;gt; save&lt;br /&gt;
 &amp;gt; quit&lt;br /&gt;
&lt;br /&gt;
便利なコマンド:&lt;br /&gt;
 &amp;gt; passwd       # change the passphrase&lt;br /&gt;
 &amp;gt; clean        # compact any user ID that is no longer usable (e.g revoked or expired)&lt;br /&gt;
 &amp;gt; revkey       # revoke a key&lt;br /&gt;
 &amp;gt; addkey       # add a subkey to this key&lt;br /&gt;
 &amp;gt; expire       # change the key expiration time&lt;br /&gt;
&lt;br /&gt;
* 公開鍵の ASCII バージョンを生成 (例: メールなどで配るため):&lt;br /&gt;
&lt;br /&gt;
 $ gpg --armor --output public.key --export &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* PGP 公開鍵サーバーに鍵を登録して、他の人があなたに直接連絡しなくても鍵を取得できるようにする:&lt;br /&gt;
&lt;br /&gt;
 $ gpg  --keyserver pgp.mit.edu --send-keys &#039;&#039;&amp;lt;key-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* ユーザー Bob あてに署名と暗号化:&lt;br /&gt;
&lt;br /&gt;
 $ gpg -se -r Bob &#039;&#039;file&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* クリアテキスト署名を作成:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --clearsign &#039;&#039;file&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== 副鍵のエクスポート ===&lt;br /&gt;
&lt;br /&gt;
複数のデバイスで同じ鍵を使い回す場合、マスター鍵を分離させて、セキュリティが低いシステムでは暗号化に必要な副鍵だけを使いたいという状況が考えられます。&lt;br /&gt;
&lt;br /&gt;
まず、エクスポートしたい副鍵を確認してください:&lt;br /&gt;
&lt;br /&gt;
 $ gpg -K&lt;br /&gt;
&lt;br /&gt;
エクスポートする副鍵だけを選択:&lt;br /&gt;
&lt;br /&gt;
 $ gpg -a --export-secret-subkeys [subkey id]! &amp;gt; /tmp/subkey.gpg&lt;br /&gt;
&lt;br /&gt;
{{Warning|If you forget to add the !, all of your subkeys will be exported.}}&lt;br /&gt;
&lt;br /&gt;
ここで作業を終えても良いですが、パスフレーズの変更もしておくと安全です。一時フォルダに鍵をインポートします:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --homedir /tmp/gpg --import /tmp/subkey.gpg&lt;br /&gt;
 $ gpg --homedir /tmp/gpg --edit-key &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
 &amp;gt; passwd&lt;br /&gt;
 &amp;gt; save&lt;br /&gt;
 $ gpg --homedir /tmp/gpg -a --export-secret-subkeys [subkey id]! &amp;gt; /tmp/subkey.altpass.gpg&lt;br /&gt;
&lt;br /&gt;
{{Note|マスター鍵が存在しない、また、マスター鍵のパスワードが変更されていないという警告が表示されますが、変更したのは副鍵のパスワードなので無視してかまいません。}}&lt;br /&gt;
&lt;br /&gt;
これで、他のデバイスで {{ic|/tmp/subkey.altpass.gpg}} を使うことができます。&lt;br /&gt;
&lt;br /&gt;
=== 副鍵の使用 ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|何か特段の事情がないかぎり、有効期限が切れたり無効になった副鍵を削除しないでください。削除してしまうとその副鍵で暗号化したファイルを復号化できなくなってしまいます。満了した、または無効のキーを削除するのは他のユーザーの鍵束を整理するときだけにしてください。}}&lt;br /&gt;
&lt;br /&gt;
副鍵を設定して一定期間後に満了したら、新しい副鍵を作成できます。他のユーザーが鍵束を更新できるように数週間前に行うようにしましょう。&lt;br /&gt;
&lt;br /&gt;
{{Note|新しい鍵を作成する必要はありません。期限がきて使えなくなっただけだからです。有効期間を延長することができます。}}&lt;br /&gt;
&lt;br /&gt;
* 新しい副鍵を作成 (署名と暗号化の鍵の両方)&lt;br /&gt;
&lt;br /&gt;
 $ gpg --edit-key &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
 &amp;gt; addkey&lt;br /&gt;
&lt;br /&gt;
そして質問に答えて下さい (推奨される設定については前のセクションを参照)。&lt;br /&gt;
&lt;br /&gt;
* 変更を保存:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; save&lt;br /&gt;
&lt;br /&gt;
* キーサーバーにアップデート:&lt;br /&gt;
&lt;br /&gt;
 $ gpg  --keyserver pgp.mit.edu --send-keys &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|満了した副鍵を失効させる必要はありません、また、良い行いとは言えません。しょっちゅう鍵を無効化させているようでしたら、他人はあなたを信用しなくなるかもしれません。}}&lt;br /&gt;
&lt;br /&gt;
=== 鍵を表示 ===&lt;br /&gt;
&lt;br /&gt;
* 公開鍵束の鍵:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --list-keys&lt;br /&gt;
&lt;br /&gt;
* 秘密鍵束の鍵:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --list-secret-keys&lt;br /&gt;
&lt;br /&gt;
== gpg-agent ==&lt;br /&gt;
&lt;br /&gt;
{{Deletion|多くの部分が古くて不要になっています|section=gpg-agent deletion}}&lt;br /&gt;
{{Out of date|[[#GPG_AGENT_INFO]] is deprecated since {{pkg|gnupg}}-2.1. See [[#Unattended passphrase]] for new method.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;gpg-agent&#039;&#039; はキーチェインにパスワードをリクエストしたりキャッシュしたりするのに使われるデーモンです。メールクライアントなど外部のプログラムから GnuPG を利用する場合に便利です。{{ic|gpg.conf}} に次の行を追加することで使用できます:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.gnupg/gpg.conf|use-agent}}&lt;br /&gt;
&lt;br /&gt;
この設定によって GnuPG はパスワードが必要になった時にエージェントを使うようになります。ただし、あらかじめエージェントを実行しておく必要があります。エージェントを自動的に起動するには、{{ic|.xinitrc}} や {{ic|.bash_profile}} に以下のエントリを追加してください。{{ic|$GNUPGHOME}} を変更していた場合は envfile のパスを忘れずに変更するようにしてください。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.bash_profile|2=&amp;lt;nowiki&amp;gt;&lt;br /&gt;
envfile=&amp;quot;$HOME/.gnupg/gpg-agent.env&amp;quot;&lt;br /&gt;
if [[ -e &amp;quot;$envfile&amp;quot; ]] &amp;amp;&amp;amp; kill -0 $(grep GPG_AGENT_INFO &amp;quot;$envfile&amp;quot; | cut -d: -f 2) 2&amp;gt;/dev/null; then&lt;br /&gt;
    eval &amp;quot;$(cat &amp;quot;$envfile&amp;quot;)&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
    eval &amp;quot;$(gpg-agent --daemon --enable-ssh-support --write-env-file &amp;quot;$envfile&amp;quot;)&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
export GPG_AGENT_INFO  # the env file does not contain the export statement&lt;br /&gt;
export SSH_AUTH_SOCK   # enable gpg-agent for ssh&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
その後、セッションを一度ログアウトしてからログインしなおして下さい。&#039;&#039;gpg-agent&#039;&#039; が有効になっているか確認:&lt;br /&gt;
&lt;br /&gt;
 $ pgrep gpg-agent&lt;br /&gt;
&lt;br /&gt;
=== 設定 ===&lt;br /&gt;
&lt;br /&gt;
gpg-agent は {{ic|~/.gnupg/gpg-agent.conf}} ファイルで設定することができます。設定オプションは {{ic|man gpg-agent}} に記載されています。例えば、未使用の鍵の cache ttl を変更することができます:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.gnupg/gpg-agent.conf|&lt;br /&gt;
default-cache-ttl 3600&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|セッションを通してパスフレーズをキャッシュするには、次のコマンドを実行してください:&lt;br /&gt;
 $ /usr/lib/gnupg/gpg-preset-passphrase --preset XXXXXX&lt;br /&gt;
&lt;br /&gt;
XXXX は鍵輪に置き換えてください。鍵輪の値は {{ic|gpg --with-keygrip -K}} を実行することで取得できます。パスフレーズは {{ic|gpg-agent}} が再起動されるまで保存されます。{{ic|default-cache-ttl}} の値を設定した場合、そちらが優先されます。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== エージェントのリロード ===&lt;br /&gt;
&lt;br /&gt;
設定を変更した後は、{{ic|gpg-connect-agent}} に {{ic|RELOADAGENT}} という文字列をパイプで渡して、エージェントをリロードしてください。&lt;br /&gt;
&lt;br /&gt;
 $ echo RELOADAGENT | gpg-connect-agent&lt;br /&gt;
&lt;br /&gt;
シェルに {{ic|OK}} と出力されます。&lt;br /&gt;
&lt;br /&gt;
=== pinentry ===&lt;br /&gt;
&lt;br /&gt;
最後に、ユーザーにパスワードを尋ねる方法をエージェントに設定する必要があります。gpg-agent の設定ファイルで設定できます。&lt;br /&gt;
&lt;br /&gt;
デフォルトでは gtk のダイアログが使われます。使用できるオプションは {{ic|info pinentry}} を見て下さい。ダイアログの実装を変更するには {{ic|pinentry-program}} 設定オプションを設定します:&lt;br /&gt;
{{hc|~/.gnupg/gpg-agent.conf|&lt;br /&gt;
&lt;br /&gt;
# PIN entry program&lt;br /&gt;
# pinentry-program /usr/bin/pinentry-curses&lt;br /&gt;
# pinentry-program /usr/bin/pinentry-qt4&lt;br /&gt;
# pinentry-program /usr/bin/pinentry-kwallet&lt;br /&gt;
&lt;br /&gt;
pinentry-program /usr/bin/pinentry-gtk-2&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|/usr/bin/pinentry-kwallet}} を使うには {{Pkg|kwalletcli}} パッケージをインストールする必要があります。}}&lt;br /&gt;
&lt;br /&gt;
変更を行った後は、gpg-agent をリロードしてください。&lt;br /&gt;
&lt;br /&gt;
=== systemd ユーザーで gpg-agent を起動 ===&lt;br /&gt;
&lt;br /&gt;
[[Systemd/ユーザー]] 機能を使ってエージェントを起動することが可能です。&lt;br /&gt;
&lt;br /&gt;
systemd ユニットファイルを作成:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/systemd/user/gpg-agent.service|2=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=GnuPG private key agent&lt;br /&gt;
IgnoreOnIsolate=true&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=forking&lt;br /&gt;
ExecStart=/usr/bin/gpg-agent --daemon --homedir=%h/.gnupg&lt;br /&gt;
ExecStop=/usr/bin/pkill gpg-agent&lt;br /&gt;
Restart=on-abort&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* {{ic|GNUPGHOME}} など、サービスに環境変数を設定する必要があります。詳しくは [[systemd/ユーザー#環境変数]] を見て下さい。&lt;br /&gt;
* gnupg ホームディレクトリが {{ic|~/.gnupg}} の場合、パスを指定する必要はありません。&lt;br /&gt;
* {{ic|gpg -agent}} は標準ソケットを使いません。代わりに gnupg のホームディレクトリにある {{ic|S.gpg-agent}} という名前のソケットを使います。environment ファイルを読み込んで {{ic|/tmp}} に作成されたランダムなソケットのパスを取得するスクリプトは忘れることができます。&lt;br /&gt;
}}&lt;br /&gt;
* If you use SSH capabilities of gpg-agent (--enable-ssh-support), the systemd unit above will not work&lt;br /&gt;
&lt;br /&gt;
{{Tip|gpg-agent が実行していること、接続を待機していることを確認するには、次のコマンドを実行してください: {{ic|$ gpg-connect-agent}}。設定が問題なければ、プロンプトが表示されます (&#039;&#039;bye&#039;&#039; や &#039;&#039;quit&#039;&#039; と入力すれば接続が終了します)。}}&lt;br /&gt;
&lt;br /&gt;
=== 無人のパスフレーズ ===&lt;br /&gt;
&lt;br /&gt;
GnuPG 2.1.0 から gpg-agent と pinentry の利用が必須になりました。これによって {{ic|--passphrase-fd 0}} コマンドラインオプションによって STDIN からパイプで渡されたパスフレーズの後方互換性が損ねられています。古いリリースと同じような機能を使うには2つのことをする必要があります:&lt;br /&gt;
&lt;br /&gt;
まず、gpg-agent の設定を編集して &#039;&#039;loopback&#039;&#039; pinentry モードを許可してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=~/.gnupg/gpg-agent.conf|2=&lt;br /&gt;
allow-loopback-pinentry&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
gpg-agent プロセスが実行している場合は再起動して変更を適用します。&lt;br /&gt;
&lt;br /&gt;
次に、更新する必要があるアプリケーションに以下のようにコマンドラインパラメータを含めて loopback モードを使用します:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --pinentry-mode loopback ...&lt;br /&gt;
&lt;br /&gt;
もしくは、コマンドラインで設定ができない場合、オプションを設定に追加します:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=~/.gnupg/gpg.conf|2=&lt;br /&gt;
pinentry-mode loopback&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|上流の開発者は &#039;&#039;gpg.conf&#039;&#039; で &#039;&#039;pinentry-mode loopback&#039;&#039; を設定すると他の機能が使えなくなる可能性があると示唆しています。出来るかぎりコマンドラインオプションを使うようにして下さい [https://bugs.g10code.com/gnupg/issue1772]。}}&lt;br /&gt;
&lt;br /&gt;
== スマートカード ==&lt;br /&gt;
&lt;br /&gt;
{{Note|{{Pkg|pcsclite}} と {{Pkg|libusb-compat}} をインストールして、{{ic|pcscd.service}} サービスを [[systemd#ユニットを使う|systemd]] で実行する必要があります。}}&lt;br /&gt;
&lt;br /&gt;
GnuPG はスマートカードリーダーのインターフェイスとして &#039;&#039;scdaemon&#039;&#039; を使います。詳しくは [[man ページ]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== GnuPG のみ設定 ===&lt;br /&gt;
&lt;br /&gt;
GnuPG ベース以外のカードを使う予定がない場合は、{{ic|~/.gnupg/scdaemon.conf}} の {{Ic|reader-port}} パラメータを確認してください。&#039;0&#039; が最初に利用できるシリアルポートリーダーを、&#039;32768&#039; (デフォルト) が最初の USB リーダーを示しています。&lt;br /&gt;
&lt;br /&gt;
=== GnuPG と OpenSC ===&lt;br /&gt;
&lt;br /&gt;
opensc ドライバーであらゆるスマートカードを使う場合は (例: いろいろな国の ID カード)、GnuPG の設定に注意する必要があります。何も設定をしていないと {{Ic|gpg --card-status}} を使った時に以下のようなメッセージが表示されることがあります:&lt;br /&gt;
&lt;br /&gt;
 gpg: selecting openpgp failed: ec=6.108&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、scdaemon はデバイスに直接接続しようとします。リーダーが他のプロセスによって使用中だとこの接続は失敗します。例えば: OpenSC によって使用される pcscd デーモン。この状況に対処するには、opensc と同じ基盤のドライバーを使って一緒に動作できるようにする必要があります。scdaemon に pcscd を使用させるため、{{ic|~/.gnupg/scdaemon.conf}} から {{Ic|reader-port}} を削除して、{{ic|libpcsclite.so}} ライブラリの場所を指定し、ccid を無効化してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.gnupg/scdaemon.conf|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
pcsc-driver /usr/lib/libpcsclite.so&lt;br /&gt;
card-timeout 5&lt;br /&gt;
disable-ccid&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
OpenSC を使わない場合は {{Ic|man scdaemon}} をチェックしてください。&lt;br /&gt;
&lt;br /&gt;
== Tips and tricks ==&lt;br /&gt;
&lt;br /&gt;
=== Different algorithm ===&lt;br /&gt;
&lt;br /&gt;
You may want to use stronger algorithms:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.gnupg/gpg.conf|&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
personal-digest-preferences SHA512&lt;br /&gt;
cert-digest-algo SHA512&lt;br /&gt;
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed&lt;br /&gt;
personal-cipher-preferences TWOFISH CAMELLIA256 AES 3DES&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
In the latest version of GnuPG, the default algorithms used are SHA256 and AES, both of which are secure enough for most people. However, if you are using a version of GnuPG older than 2.1, or if you want an even higher level of security, then you should follow the above step.&lt;br /&gt;
&lt;br /&gt;
=== Encrypt a password ===&lt;br /&gt;
&lt;br /&gt;
It can be useful to encrypt some password, so it will not be written in clear on a configuration file. A good example is your email password.&lt;br /&gt;
&lt;br /&gt;
First create a file with your password. You &#039;&#039;&#039;need&#039;&#039;&#039; to leave &#039;&#039;&#039;one&#039;&#039;&#039; empty line after the password, otherwise gpg will return an error message when evaluating the file.&lt;br /&gt;
&lt;br /&gt;
Then run:&lt;br /&gt;
&lt;br /&gt;
 $ gpg -e -a -r &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039; &#039;&#039;your_password_file&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{ic|-e}} is for encrypt, {{ic|-a}} for armor (ASCII output), {{ic|-r}} for recipient user ID.&lt;br /&gt;
&lt;br /&gt;
You will be left with a new {{ic|&#039;&#039;your_password_file&#039;&#039;.asc}} file.&lt;br /&gt;
&lt;br /&gt;
=== Default options for new users ===&lt;br /&gt;
&lt;br /&gt;
If you want to setup some default options for new users, put configuration files in {{ic|/etc/skel/.gnupg/}}. When the new user is added in system, files from here will be copied to its GnuPG home directory. There is also a simple script called &#039;&#039;addgnupghome&#039;&#039; which you can use to create new GnuPG home directories for existing users:&lt;br /&gt;
&lt;br /&gt;
 # addgnupghome user1 user2&lt;br /&gt;
&lt;br /&gt;
This will add the respective {{ic|/home/user1/.gnupg}} and {{ic|/home/user2/.gnupg}} and copy the files from the skeleton directory to it. Users with existing GnuPG home directory are simply skipped.&lt;br /&gt;
&lt;br /&gt;
=== Revoking a key ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|&lt;br /&gt;
*Anybody having access to your revocation certificate can revoke your key, rendering it useless.&lt;br /&gt;
*Key revocation should only be performed if your key is compromised or lost, or you forget your passphrase.}}&lt;br /&gt;
&lt;br /&gt;
Revocation certificates are automatically generated for newly generated keys, although one can be generated manually by the user later. These are located at {{ic|~/.gnupg/openpgp-revocs.d/}}. The filename of the certificate is the fingerprint of the key it will revoke.&lt;br /&gt;
&lt;br /&gt;
To revoke your key, simply import the revocation certificate:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --import &#039;&#039;&amp;lt;fingerprint&amp;gt;&#039;&#039;.rev&lt;br /&gt;
&lt;br /&gt;
Now update the keyserver:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --keyserver subkeys.pgp.net --send &#039;&#039;&amp;lt;userid&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Change trust model ===&lt;br /&gt;
&lt;br /&gt;
By default GnuPG uses the [[Wikipedia::Web of Trust|Web of Trust]] as the trust model. You can change this to [[Wikipedia::Trust on First|Trust on First]] Use by adding {{ic|1=--trust-model=tofu}} when adding a key or adding this option to your GnuPG configuration file. More details are in [https://lists.gnupg.org/pipermail/gnupg-devel/2015-October/030341.html this email to the GnuPG list].&lt;br /&gt;
&lt;br /&gt;
=== Hide all recipient id&#039;s ===&lt;br /&gt;
&lt;br /&gt;
By default the recipient&#039;s key ID is in the encrypted message. This can be removed at encryption time for a recipient by using {{ic|hidden-recipient &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}}. To remove it for all recipients add {{ic|throw-keyids}} to your configuration file. This helps to hide the receivers of the message and is a limited countermeasure against traffic analysis. (Using a little social engineering anyone who is able to decrypt the message can check whether one of the other recipients is the one he suspects.)  On the receiving side, it may slow down the decryption process because all available secret keys must be tried (&#039;&#039;e.g.&#039;&#039; with {{ic|--try-secret-key &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}}).&lt;br /&gt;
&lt;br /&gt;
=== Using caff for keysigning parties ===&lt;br /&gt;
&lt;br /&gt;
To allow users to validate keys on the keyservers and in their keyrings (i.e. make sure they are from whom they claim to be), PGP/GPG uses he [[Wikipedia::Web of Trust|Web of Trust]]. Keysigning parties allow users to get together in physical location to validate keys. The [[Wikipedia:Zimmermann–Sassaman key-signing protocol|Zimmermann-Sassaman]] key-signing protocol is a way of making these very effective. [http://www.cryptnet.net/fdp/crypto/keysigning_party/en/keysigning_party.html Here] you will find a how-to article.&lt;br /&gt;
&lt;br /&gt;
キーサインパーティの後、鍵に署名したり所有者に署名を送るのを簡略化するために、&#039;&#039;caff&#039;&#039; というツールを使うことができます。AUR のパッケージ {{AUR|caff-svn}} でインストールすることができ、{{AUR|signing-party-svn}} パッケージなど他の便利なツールにも付属しています。どちらにせよ、AUR から大量の依存パッケージをインストールすることになります。また、以下のように CPAN からインストールすることも可能です:&lt;br /&gt;
 cpanm Any::Moose&lt;br /&gt;
 cpanm GnuPG::Interface&lt;br /&gt;
&lt;br /&gt;
To send the signatures to their owners you need a working [[Wikipedia:Message transfer agent|MTA]]. If you do not have already one, install [[msmtp]].&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== Make it work behind an http proxy ===&lt;br /&gt;
Since 2.1.9 the http proxy option can be set like this:&lt;br /&gt;
&lt;br /&gt;
  gpg --keyserver-option http-proxy=HOST:PORT&lt;br /&gt;
&lt;br /&gt;
See https://bugs.gnupg.org/gnupg/issue1786 for more explanation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Not enough random bytes available ===&lt;br /&gt;
鍵を生成するときに、gpg は以下のエラーを表示することがあります:&lt;br /&gt;
 Not enough random bytes available. Please do some other work to give the OS a chance to collect more entropy!&lt;br /&gt;
残っているエントロピーを確認するには、カーネルパラメータをチェックしてください:&lt;br /&gt;
 cat /proc/sys/kernel/random/entropy_avail&lt;br /&gt;
&lt;br /&gt;
エントロピーがたくさんある健康的な Linux 環境ならマックスの 4,096 ビットに近い値が返されます。返ってくる値が 200 以下の場合、システムのエントロピーが足りていません。&lt;br /&gt;
&lt;br /&gt;
エントロピー問題を解決するには、メッセージ通りのことをするのがベストです (例: ディスクを動かす、マウスを動かす、wiki を編集する - 何でもエントロピーの生成に繋がります)。それでも問題が解決しない場合、エントロピーを使い果たしているサービスが何なのかチェックして、しばらくそのサービスを停止してみてください。サービスを停止できない場合、[[乱数生成#高速な RNG]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== su ===&lt;br /&gt;
&lt;br /&gt;
{{Ic|pinentry}} を使う場合、使用するターミナルデバイス (例: {{Ic|/dev/tty1}}) の適切なパーミッションが必要です。しかしながら、&#039;&#039;su&#039;&#039; (または &#039;&#039;sudo&#039;&#039;) を使用すると、所有権は元のユーザーに残り、新しいユーザーにはなくなります。これでは pinentry はたとえ root であっても起動しません。pinentry を使用する (つまりエージェントで gpg を使用する) 前にデバイスのパーミッションを同じ所に変更する必要があります。root で gpg を実行する場合、gpg を使用する直前に所有者を root に変更してください:&lt;br /&gt;
&lt;br /&gt;
 chown root /dev/ttyN  # where N is the current tty&lt;br /&gt;
&lt;br /&gt;
そして gpg を使用した後に元に戻して下さい。おそらく {{Ic|/dev/pts/}} と同じのが正しいです。&lt;br /&gt;
&lt;br /&gt;
{{Note|The owner of tty &#039;&#039;must&#039;&#039; match with the user for which pinentry is running. Being part of the group {{Ic|tty}} &#039;&#039;&#039;is not&#039;&#039;&#039; enough.}}&lt;br /&gt;
&lt;br /&gt;
=== エージェントがファイルの終末についてエラーを表示する ===&lt;br /&gt;
&lt;br /&gt;
デフォルトの pinentry プログラムは pinentry-gtk-2 であり、D-Bus セッションバスを正しく実行する必要があります。詳しくは[[一般的なトラブルシューティング#セッションのパーミッション]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
もしくは、{{ic|pinentry-qt}} を使うこともできます。[[#pinentry]] を参照。&lt;br /&gt;
&lt;br /&gt;
=== KGpg 設定のパーミッション ===&lt;br /&gt;
&lt;br /&gt;
There have been issues with {{Pkg|kdeutils-kgpg}} being able to access the {{ic|~/.gnupg/}} options. One issue might be a result of a deprecated &#039;&#039;options&#039;&#039; file, see the [https://bugs.kde.org/show_bug.cgi?id=290221 bug] report.&lt;br /&gt;
&lt;br /&gt;
Another user reported that &#039;&#039;KGpg&#039;&#039; failed to start until the {{ic|~/.gnupg}} folder is set to {{ic|drwxr-xr-x}} permissions. If you require this work-around, ensure that the directory contents retain {{ic|-rw-------}} permissions! Further, report it as a bug to the [https://bugs.kde.org/buglist.cgi?quicksearch=kgpg developers].&lt;br /&gt;
&lt;br /&gt;
=== gnome-keyring と gpg-agent が衝突する ===&lt;br /&gt;
&lt;br /&gt;
Gnome keyring は GPG エージェントコンポーネントを実装していますが、GnuPG バージョン 2.1 から、GnuPG は {{ic|GPG_AGENT_INFO}} 環境変数を無視するようになったため、Gnome keyring を GPG エージェントとして使うことはできません。&lt;br /&gt;
&lt;br /&gt;
However, since version 0.9.6 the package {{Pkg|pinentry}} provides the {{Ic|pinentry-gnome3}} program. You may set the following option in your {{Ic|gpg-agent.conf}} file&lt;br /&gt;
  pinentry-program /usr/bin/pinentry-gnome3&lt;br /&gt;
in order to make use of that pinentry program.&lt;br /&gt;
&lt;br /&gt;
Since version 0.9.2 all pinentry programs can be configured to optionally save a passphrase with libsecret. For example, when the user is asked for a passphrase via {{Ic|pinentry-gnome3}}, a checkbox is shown whether to save the passphrase using a password manager. Unfortunately, the package {{Pkg|pinentry}} does not have this feature enabled (see {{Bug|46059}} for the reasons). You may use {{AUR|pinentry-libsecret}} as a replacement for it, which has support for libsecret enabled.&lt;br /&gt;
&lt;br /&gt;
=== mutt and gpg ===&lt;br /&gt;
&lt;br /&gt;
To be asked for your GnuPG password only once per session as of GnuPG 2.1, see [https://bbs.archlinux.org/viewtopic.php?pid=1490821#p1490821 this forum thread].&lt;br /&gt;
&lt;br /&gt;
=== gnupg バージョン 2.1 にアップグレードすると鍵が&amp;quot;消失&amp;quot;する ===&lt;br /&gt;
&lt;br /&gt;
{{ic|gpg --list-keys}} を実行しても以前まで使っていた鍵が表示されない場合、また、アプリケーションが鍵を見つけられないまたは鍵が不正だとエラーを吐く場合、鍵が新しいフォーマットに移行できていない可能性があります。&lt;br /&gt;
&lt;br /&gt;
[http://jo-ke.name/wp/?p=111 GnuPG invalid packet workaround] を読んで下さい。要約すると、旧式の {{ic|pubring.gpg}} と {{ic|secring.gpg}} ファイルの鍵にはバグが存在しており、新しい {{ic|pubring.kbx}} ファイルと {{ic|private-keys-v1.d/}} サブディレクトリ、そしてディレクトリのファイルによって置き換えられたということが書かれています。以下のコマンドを実行することで消失した鍵を復旧させることができるかもしれません:&lt;br /&gt;
&lt;br /&gt;
 $ cd&lt;br /&gt;
 $ cp -r .gnupg gnupgOLD&lt;br /&gt;
 $ gpg --export-ownertrust &amp;gt; otrust.txt&lt;br /&gt;
 $ gpg --import .gnupg/pubring.gpg&lt;br /&gt;
 $ gpg --import-ownertrust otrust.txt&lt;br /&gt;
 $ gpg --list-keys&lt;br /&gt;
&lt;br /&gt;
=== (鍵を受信しようとすると) どのキーサーバーでも gpg がフリーズする ===&lt;br /&gt;
&lt;br /&gt;
特定のキーサーバーで鍵を受信しようとして gpg がフリーズしている場合、dirmngr を kill して (問題が起こっていない) 他のキーサーバーにアクセスできるようにする必要があります。そうしないと全てのキーサーバーでフリーズしてしまいます。&lt;br /&gt;
&lt;br /&gt;
=== スマートカードが検出されない ===&lt;br /&gt;
&lt;br /&gt;
スマートカードにアクセスするための権限がない場合、カードを正しく設定して接続しても、{{ic|card error}} が表示されることがあります。&lt;br /&gt;
&lt;br /&gt;
スマートカードにアクセスする必要があるユーザーに {{ic|scard}} を追加することで解決できます。追加したら、以下のような [[Udev#udev ルールを記述する|udev]] ルールを作って下さい:&lt;br /&gt;
{{hc|/etc/udev/rules.d/71-gnupg-ccid.rules|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
ACTION==&amp;quot;add&amp;quot;, SUBSYSTEM==&amp;quot;usb&amp;quot;, ENV{ID_VENDOR_ID}==&amp;quot;1050&amp;quot;, ENV{ID_MODEL_ID}==&amp;quot;0116|0111&amp;quot;, MODE=&amp;quot;664&amp;quot;, GROUP=&amp;quot;scard&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
VENDOR と MODEL は {{ic|lsusb}} の出力にあわせて変更する必要があります。上記は YubikeyNEO の例です。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://gnupg.org/ GNU Privacy Guard Homepage]&lt;br /&gt;
* [https://fedoraproject.org/wiki/Creating_GPG_Keys Creating GPG Keys (Fedora)]&lt;br /&gt;
* [https://wiki.debian.org/Subkeys OpenPGP subkeys in Debian]&lt;br /&gt;
* [http://blog.sanctum.geek.nz/series/linux-crypto/ A more comprehensive gpg Tutorial]&lt;br /&gt;
* [https://help.riseup.net/en/security/message-security/openpgp/gpg-best-practices gpg.conf recommendations and best practices]&lt;br /&gt;
* [https://github.com/ioerror/torbirdy/blob/master/gpg.conf Torbirdy gpg.conf]&lt;br /&gt;
* [https://www.reddit.com/r/GPGpractice/ /r/GPGpractice - a subreddit to practice using GnuPG.]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=GnuPG&amp;diff=4834</id>
		<title>GnuPG</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=GnuPG&amp;diff=4834"/>
		<updated>2016-01-24T18:26:28Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: /* 暗号化と復号化 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:セキュリティ]]&lt;br /&gt;
[[en:GnuPG]]&lt;br /&gt;
[[es:GnuPG]]&lt;br /&gt;
[[ru:GnuPG]]&lt;br /&gt;
[http://www.gnupg.org 公式サイト] によれば:&lt;br /&gt;
&lt;br /&gt;
:GnuPG は RFC4880（別名 [[Wikipedia:PGP|PGP]]）で定義される OpenPGP 標準の完全でフリーな実装です。GnuPG を使うことでデータや通信を暗号化したり署名することができます。多目的の鍵管理システムであり、あらゆる種類の公開鍵ディレクトリのアクセスモジュールです。GnuPG（またの名を GPG）は他のアプリケーションとの簡単に連携できる機能を備えたコマンドラインツールです。豊富なアプリケーションとライブラリが利用可能です。GnuPG のバージョン2は S/MIME と ssh のサポートも含んでいます。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{Pkg|gnupg}} をインストールしてください。&lt;br /&gt;
&lt;br /&gt;
gnupg をインストールすると、GnuPG がパスフレーズエントリに使用するシンプルな PIN やパスフレーズエントリダイアログのコレクションである {{Pkg|pinentry}} もインストールされます。&#039;&#039;pinentry&#039;&#039; はシンボリックリンク {{ic|/usr/bin/pinentry}} によって決められ、デフォルトでは {{ic|/usr/bin/pinentry-gtk-2}} になります。&lt;br /&gt;
&lt;br /&gt;
グラフィカルフロントエンドや GnuPG と連携するプログラムを使いたい場合は[[アプリケーション一覧/セキュリティ#暗号化, 署名, ステガノグラフィー]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
== 環境変数 ==&lt;br /&gt;
&lt;br /&gt;
=== GNUPGHOME ===&lt;br /&gt;
&lt;br /&gt;
{{ic|$GNUPGHOME}} は全ての設定ファイルを保存するディレクトリを指定するのに GnuPG によって使われます。デフォルトでは {{ic|$GNUPGHOME}} は設定されておらず、代わりに {{ic|$HOME}} が使われます。そのためインストール直後は {{ic|~/.gnupg}} ディレクトリが確認できます。[[自動起動|スタートアップファイル]]に次の行を記述することでデフォルト設定を変更できます:&lt;br /&gt;
&lt;br /&gt;
 export GNUPGHOME=&amp;quot;&#039;&#039;/path/to/directory&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note|デフォルトでは、gnupg ディレクトリの[[ファイルのパーミッションと属性|パーミッション]]は &#039;&#039;700&#039;&#039; に設定されており、ディレクトリのファイルのパーミッションは &#039;&#039;600&#039;&#039; に設定されています。ファイルの読み書きやアクセスの権限を持っているのはディレクトリの所有者だけです (&#039;&#039;r&#039;&#039;,&#039;&#039;w&#039;&#039;,&#039;&#039;x&#039;&#039;)。これはセキュリティ上の理由で設定されていることなので変更してはいけません。ディレクトリやファイルがこのセキュリティ対策に従っていない場合、ファイルやホームディレクトリのパーミッションが安全ではないという警告が表示されます。}}&lt;br /&gt;
&lt;br /&gt;
== 設定ファイル ==&lt;br /&gt;
&lt;br /&gt;
デフォルトは {{ic|~/.gnupg/gpg.conf}} と {{ic|~/.gnupg/dirmngr.conf}} です。デフォルトの場所を変更したい場合は、{{ic|$ gpg --homedir &#039;&#039;path/to/file&#039;&#039;}} と gpg を実行するか {{ic|$GNUPGHOME}} 変数を使って下さい。どんな長いオプションもこのファイルに追加します。2つのダッシュを書かないで、オプションや必要な引数の名前を書いて下さい。スケルトンファイルは {{ic|/usr/share/gnupgl}} にあります。gpg がなんらかの操作のため最初に起動されたとき、~/.gnupg が存在しなければこれらのファイルが ~/.gnupg にコピーされます。[[#参照]] に他の例があります。&lt;br /&gt;
&lt;br /&gt;
== 使い方 ==&lt;br /&gt;
&lt;br /&gt;
{{Note|コマンドに &#039;&#039;{{ic|&amp;lt;user-id&amp;gt;}}&#039;&#039; が必要なときは、鍵 ID、指紋、名前やメールアドレスの一部などを指定できます。これについて GnuPG は寛容です。}}&lt;br /&gt;
{{Note|以下のステップのいくつかは、使用法によってはメールクライアントなどの外部プログラムにより提供されていることもあります。[[アプリケーション一覧/セキュリティ#暗号化, 署名, ステガノグラフィー]]も参照}}&lt;br /&gt;
&lt;br /&gt;
=== 鍵の作成 ===&lt;br /&gt;
&lt;br /&gt;
秘密鍵を生成するにはターミナルに次を入力:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --full-gen-key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|--expert}} を使うことで他の暗号を利用することができます ([[wikipedia:ja:楕円曲線暗号|楕円曲線暗号]]など)}}&lt;br /&gt;
&lt;br /&gt;
いくつか質問がきかれます。一般的に、ほとんどのユーザーは RSA (署名のみ) と RSA (暗号化のみ) の両方の鍵が必要になります。鍵長は2048ビットで十分です。4096ビットを使ったところで [https://www.gnupg.org/faq/gnupg-faq.html#no_default_of_rsa4096 &amp;quot;大した効果はありませんし、無駄に時間がかかるようになるだけです&amp;quot;] 。&lt;br /&gt;
&lt;br /&gt;
副鍵の有効期限の設定は技術的には必須ではありませんが、設定することは悪くありません。標準的なユーザーなら、1年間で十分でしょう。たとえ鍵束へのアクセスを失っても、他の人が有効でないことを知ることができるようになります。鍵を作成した後、新しい鍵を再発行しなくても満了日は延長することができます。&lt;br /&gt;
&lt;br /&gt;
安全なパスフレーズを選ぶようにしてください（[[セキュリティ#パスワードの管理]]を参照）。&lt;br /&gt;
&lt;br /&gt;
=== 秘密鍵のバックアップ ===&lt;br /&gt;
&lt;br /&gt;
秘密鍵をバックアップするには:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --export-secret-keys --armor &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039; &amp;gt; privkey.asc&lt;br /&gt;
&lt;br /&gt;
秘密鍵はロックされたコンテナや暗号化されたドライブなど安全な場所に置いてください。&lt;br /&gt;
&lt;br /&gt;
{{Warning|上記のエクスポートされたファイルにアクセスできる人は誰でも、&#039;&#039;パスフレーズを知らなくても&#039;&#039;あなたのふりをして文書を暗号化したり署名したりできます}}&lt;br /&gt;
&lt;br /&gt;
=== 公開鍵のエクスポート ===&lt;br /&gt;
&lt;br /&gt;
他の人があなたに暗号化したメッセージを送れるようにするには、彼らがあなたの公開鍵を知っている必要があります。&lt;br /&gt;
&lt;br /&gt;
（メールで送る場合などのために）ASCII 版の公開鍵を生成するには:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --armor --output public.key --export &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
あるいは、[[#鍵サーバを使用する|鍵サーバ]]で鍵を共有する方法もあります。&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|--no-emit-version}} を使うか、これを設定ファイルに書くことでバージョン番号の表示を抑制できます。}}&lt;br /&gt;
&lt;br /&gt;
=== 鍵のインポート ===&lt;br /&gt;
&lt;br /&gt;
メッセージを暗号化して他の人に送るには、彼らの公開鍵が必要です。公開鍵を自分の公開鍵リングにインポートするには:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --import public.key&lt;br /&gt;
&lt;br /&gt;
あるいは、[[#鍵サーバを使用する|鍵サーバ]]で公開鍵を見つけます。&lt;br /&gt;
&lt;br /&gt;
=== 鍵サーバを使用する ===&lt;br /&gt;
&lt;br /&gt;
自分の公開鍵を公共の PGP 鍵サーバに登録することで、他の人があなたに直接連絡することなしにあなたの鍵を入手できるようになります。&lt;br /&gt;
&lt;br /&gt;
 $ gpg --send-keys &#039;&#039;&amp;lt;key-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
鍵サーバから鍵をインポートするには:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --recv-keys &#039;&#039;&amp;lt;key-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Warning|誰でも鍵サーバに鍵を送ることができます。そのため、ダウンロードした鍵が本当にその人のものであると信用してはいけません。入手した鍵の指紋を、持ち主が別の場所（ブログ、サイト、メール・電話で連絡するなど）で公開している指紋と比較してその鍵の真正性を確かめるべきです。複数の情報源を使うことでその鍵の信頼性は増します。[[Wikipedia:Public key fingerprint]]を参照。}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* 代わりの鍵サーバは {{ic|pool.sks-keyservers.net}} で {{ic|--keyserver}} で指定できます。[[wikipedia:Key server (cryptographic)#Keyserver examples]]を参照&lt;br /&gt;
* {{ic|--use-tor}} を使うと [[Tor]] で鍵サーバに接続できます。{{ic|hkp://jirk5u4osbsr34t5.onion}} は sks-keyservers プールの onion アドレスです。[https://gnupg.org/blog/20151224-gnupg-in-november-and-december.html See this GnuPG blog post] を参照}}&lt;br /&gt;
&lt;br /&gt;
=== 暗号化と復号化 ===&lt;br /&gt;
&lt;br /&gt;
暗号化や復号化をするときは複数の秘密鍵を使用することが可能です。複数の鍵を使うときは使用する鍵を選択する必要があります。{{ic|-u &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}} オプションや {{ic|--local-user &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}} オプションを使うことで選択できます。このオプションを使うとデフォルトの鍵を使用する代わりに指定された鍵を使用します。&lt;br /&gt;
&lt;br /&gt;
ASCII armor（テキストでメッセージをコピー＆ペーストするのに適している）を使ってファイルを暗号化するには、次を使用:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --encrypt --armor secret.txt&lt;br /&gt;
&lt;br /&gt;
単に暗号化だけしたいときは{{ic|--armor}}は不要です。&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* 受取人を変更したい場合は {{ic|-r &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}} オプションで変更できます (または {{ic|--recipient &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}})&lt;br /&gt;
* Add {{ic|-R &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}} or {{ic|--hidden-recipient &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}} instead of {{ic|--recipient}} to not put the recipient key IDs in the encrypted message. This helps to hide the receivers of the message and is a limited countermeasure against traffic analysis.&lt;br /&gt;
* Add {{ic|--no-emit-version}} to avoid printing the version number, or add the corresponding setting to your configuration file.}}&lt;br /&gt;
&lt;br /&gt;
{{Note|gnupg を使えば機密文書を暗号化できますが、一度に複数のファイルを暗号化することはできません。ディレクトリやファイルシステム全体を暗号化したいときは、[[TrueCrypt]] や [[EncFS]] などを使用するか、tarball にファイルをまとめて暗号化すると良いでしょう。}}&lt;br /&gt;
&lt;br /&gt;
ファイルを復号化するには、次を使用:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --decrypt secret.txt.asc&lt;br /&gt;
&lt;br /&gt;
パスフレーズの入力が求められます。復号化するには送信者の公開鍵をインポートしてある必要があります。&lt;br /&gt;
&lt;br /&gt;
== 鍵の管理 ==&lt;br /&gt;
&lt;br /&gt;
=== 鍵の編集 ===&lt;br /&gt;
&lt;br /&gt;
* {{ic|gpg --edit-key &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}} コマンドを実行するとメニューが表示され、鍵管理に関連するほとんどの作業を行うことができます。以下は満了日を設定する例です:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --edit-key &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
 &amp;gt; key &#039;&#039;number&#039;&#039;&lt;br /&gt;
 &amp;gt; expire &#039;&#039;yyyy-mm-dd&#039;&#039;&lt;br /&gt;
 &amp;gt; save&lt;br /&gt;
 &amp;gt; quit&lt;br /&gt;
&lt;br /&gt;
便利なコマンド:&lt;br /&gt;
 &amp;gt; passwd       # change the passphrase&lt;br /&gt;
 &amp;gt; clean        # compact any user ID that is no longer usable (e.g revoked or expired)&lt;br /&gt;
 &amp;gt; revkey       # revoke a key&lt;br /&gt;
 &amp;gt; addkey       # add a subkey to this key&lt;br /&gt;
 &amp;gt; expire       # change the key expiration time&lt;br /&gt;
&lt;br /&gt;
* 公開鍵の ASCII バージョンを生成 (例: メールなどで配るため):&lt;br /&gt;
&lt;br /&gt;
 $ gpg --armor --output public.key --export &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* PGP 公開鍵サーバーに鍵を登録して、他の人があなたに直接連絡しなくても鍵を取得できるようにする:&lt;br /&gt;
&lt;br /&gt;
 $ gpg  --keyserver pgp.mit.edu --send-keys &#039;&#039;&amp;lt;key-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* ユーザー Bob あてに署名と暗号化:&lt;br /&gt;
&lt;br /&gt;
 $ gpg -se -r Bob &#039;&#039;file&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* クリアテキスト署名を作成:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --clearsign &#039;&#039;file&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== 副鍵のエクスポート ===&lt;br /&gt;
&lt;br /&gt;
複数のデバイスで同じ鍵を使い回す場合、マスター鍵を分離させて、セキュリティが低いシステムでは暗号化に必要な副鍵だけを使いたいという状況が考えられます。&lt;br /&gt;
&lt;br /&gt;
まず、エクスポートしたい副鍵を確認してください:&lt;br /&gt;
&lt;br /&gt;
 $ gpg -K&lt;br /&gt;
&lt;br /&gt;
エクスポートする副鍵だけを選択:&lt;br /&gt;
&lt;br /&gt;
 $ gpg -a --export-secret-subkeys [subkey id]! &amp;gt; /tmp/subkey.gpg&lt;br /&gt;
&lt;br /&gt;
{{Warning|If you forget to add the !, all of your subkeys will be exported.}}&lt;br /&gt;
&lt;br /&gt;
ここで作業を終えても良いですが、パスフレーズの変更もしておくと安全です。一時フォルダに鍵をインポートします:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --homedir /tmp/gpg --import /tmp/subkey.gpg&lt;br /&gt;
 $ gpg --homedir /tmp/gpg --edit-key &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
 &amp;gt; passwd&lt;br /&gt;
 &amp;gt; save&lt;br /&gt;
 $ gpg --homedir /tmp/gpg -a --export-secret-subkeys [subkey id]! &amp;gt; /tmp/subkey.altpass.gpg&lt;br /&gt;
&lt;br /&gt;
{{Note|マスター鍵が存在しない、また、マスター鍵のパスワードが変更されていないという警告が表示されますが、変更したのは副鍵のパスワードなので無視してかまいません。}}&lt;br /&gt;
&lt;br /&gt;
これで、他のデバイスで {{ic|/tmp/subkey.altpass.gpg}} を使うことができます。&lt;br /&gt;
&lt;br /&gt;
=== 副鍵の使用 ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|何か特段の事情がないかぎり、有効期限が切れたり無効になった副鍵を削除しないでください。削除してしまうとその副鍵で暗号化したファイルを復号化できなくなってしまいます。満了した、または無効のキーを削除するのは他のユーザーの鍵束を整理するときだけにしてください。}}&lt;br /&gt;
&lt;br /&gt;
副鍵を設定して一定期間後に満了したら、新しい副鍵を作成できます。他のユーザーが鍵束を更新できるように数週間前に行うようにしましょう。&lt;br /&gt;
&lt;br /&gt;
{{Note|新しい鍵を作成する必要はありません。期限がきて使えなくなっただけだからです。有効期間を延長することができます。}}&lt;br /&gt;
&lt;br /&gt;
* 新しい副鍵を作成 (署名と暗号化の鍵の両方)&lt;br /&gt;
&lt;br /&gt;
 $ gpg --edit-key &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
 &amp;gt; addkey&lt;br /&gt;
&lt;br /&gt;
そして質問に答えて下さい (推奨される設定については前のセクションを参照)。&lt;br /&gt;
&lt;br /&gt;
* 変更を保存:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; save&lt;br /&gt;
&lt;br /&gt;
* キーサーバーにアップデート:&lt;br /&gt;
&lt;br /&gt;
 $ gpg  --keyserver pgp.mit.edu --send-keys &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|満了した副鍵を失効させる必要はありません、また、良い行いとは言えません。しょっちゅう鍵を無効化させているようでしたら、他人はあなたを信用しなくなるかもしれません。}}&lt;br /&gt;
&lt;br /&gt;
=== 鍵を表示 ===&lt;br /&gt;
&lt;br /&gt;
* 公開鍵束の鍵:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --list-keys&lt;br /&gt;
&lt;br /&gt;
* 秘密鍵束の鍵:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --list-secret-keys&lt;br /&gt;
&lt;br /&gt;
== gpg-agent ==&lt;br /&gt;
&lt;br /&gt;
{{Deletion|Much of this is outdated and unnecessary info.|section=gpg-agent deletion}}&lt;br /&gt;
{{Out of date|[[#GPG_AGENT_INFO]] is deprecated since {{pkg|gnupg}}-2.1. See [[#Unattended passphrase]] for new method.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;gpg-agent&#039;&#039; はキーチェインにパスワードをリクエストしたりキャッシュしたりするのに使われるデーモンです。メールクライアントなど外部のプログラムから GnuPG を利用する場合に便利です。{{ic|gpg.conf}} に次の行を追加することで使用できます:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.gnupg/gpg.conf|use-agent}}&lt;br /&gt;
&lt;br /&gt;
この設定によって GnuPG はパスワードが必要になった時にエージェントを使うようになります。ただし、あらかじめエージェントを実行しておく必要があります。エージェントを自動的に起動するには、{{ic|.xinitrc}} や {{ic|.bash_profile}} に以下のエントリを追加してください。{{ic|$GNUPGHOME}} を変更していた場合は envfile のパスを忘れずに変更するようにしてください。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.bash_profile|2=&amp;lt;nowiki&amp;gt;&lt;br /&gt;
envfile=&amp;quot;$HOME/.gnupg/gpg-agent.env&amp;quot;&lt;br /&gt;
if [[ -e &amp;quot;$envfile&amp;quot; ]] &amp;amp;&amp;amp; kill -0 $(grep GPG_AGENT_INFO &amp;quot;$envfile&amp;quot; | cut -d: -f 2) 2&amp;gt;/dev/null; then&lt;br /&gt;
    eval &amp;quot;$(cat &amp;quot;$envfile&amp;quot;)&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
    eval &amp;quot;$(gpg-agent --daemon --enable-ssh-support --write-env-file &amp;quot;$envfile&amp;quot;)&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
export GPG_AGENT_INFO  # the env file does not contain the export statement&lt;br /&gt;
export SSH_AUTH_SOCK   # enable gpg-agent for ssh&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
その後、セッションを一度ログアウトしてからログインしなおして下さい。&#039;&#039;gpg-agent&#039;&#039; が有効になっているか確認:&lt;br /&gt;
&lt;br /&gt;
 $ pgrep gpg-agent&lt;br /&gt;
&lt;br /&gt;
=== 設定 ===&lt;br /&gt;
&lt;br /&gt;
gpg-agent は {{ic|~/.gnupg/gpg-agent.conf}} ファイルで設定することができます。設定オプションは {{ic|man gpg-agent}} に記載されています。例えば、未使用の鍵の cache ttl を変更することができます:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.gnupg/gpg-agent.conf|&lt;br /&gt;
default-cache-ttl 3600&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|セッションを通してパスフレーズをキャッシュするには、次のコマンドを実行してください:&lt;br /&gt;
 $ /usr/lib/gnupg/gpg-preset-passphrase --preset XXXXXX&lt;br /&gt;
&lt;br /&gt;
XXXX は鍵輪に置き換えてください。鍵輪の値は {{ic|gpg --with-keygrip -K}} を実行することで取得できます。パスフレーズは {{ic|gpg-agent}} が再起動されるまで保存されます。{{ic|default-cache-ttl}} の値を設定した場合、そちらが優先されます。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== エージェントのリロード ===&lt;br /&gt;
&lt;br /&gt;
設定を変更した後は、{{ic|gpg-connect-agent}} に {{ic|RELOADAGENT}} という文字列をパイプで渡して、エージェントをリロードしてください。&lt;br /&gt;
&lt;br /&gt;
 $ echo RELOADAGENT | gpg-connect-agent&lt;br /&gt;
&lt;br /&gt;
シェルに {{ic|OK}} と出力されます。&lt;br /&gt;
&lt;br /&gt;
=== pinentry ===&lt;br /&gt;
&lt;br /&gt;
最後に、ユーザーにパスワードを尋ねる方法をエージェントに設定する必要があります。gpg-agent の設定ファイルで設定できます。&lt;br /&gt;
&lt;br /&gt;
デフォルトでは gtk のダイアログが使われます。使用できるオプションは {{ic|info pinentry}} を見て下さい。ダイアログの実装を変更するには {{ic|pinentry-program}} 設定オプションを設定します:&lt;br /&gt;
{{hc|~/.gnupg/gpg-agent.conf|&lt;br /&gt;
&lt;br /&gt;
# PIN entry program&lt;br /&gt;
# pinentry-program /usr/bin/pinentry-curses&lt;br /&gt;
# pinentry-program /usr/bin/pinentry-qt4&lt;br /&gt;
# pinentry-program /usr/bin/pinentry-kwallet&lt;br /&gt;
&lt;br /&gt;
pinentry-program /usr/bin/pinentry-gtk-2&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|/usr/bin/pinentry-kwallet}} を使うには {{Pkg|kwalletcli}} パッケージをインストールする必要があります。}}&lt;br /&gt;
&lt;br /&gt;
変更を行った後は、gpg-agent をリロードしてください。&lt;br /&gt;
&lt;br /&gt;
=== systemd ユーザーで gpg-agent を起動 ===&lt;br /&gt;
&lt;br /&gt;
[[Systemd/ユーザー]] 機能を使ってエージェントを起動することが可能です。&lt;br /&gt;
&lt;br /&gt;
systemd ユニットファイルを作成:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/systemd/user/gpg-agent.service|2=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=GnuPG private key agent&lt;br /&gt;
IgnoreOnIsolate=true&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=forking&lt;br /&gt;
ExecStart=/usr/bin/gpg-agent --daemon --homedir=%h/.gnupg&lt;br /&gt;
ExecStop=/usr/bin/pkill gpg-agent&lt;br /&gt;
Restart=on-abort&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* {{ic|GNUPGHOME}} など、サービスに環境変数を設定する必要があります。詳しくは [[systemd/ユーザー#環境変数]] を見て下さい。&lt;br /&gt;
* gnupg ホームディレクトリが {{ic|~/.gnupg}} の場合、パスを指定する必要はありません。&lt;br /&gt;
* {{ic|gpg -agent}} は標準ソケットを使いません。代わりに gnupg のホームディレクトリにある {{ic|S.gpg-agent}} という名前のソケットを使います。environment ファイルを読み込んで {{ic|/tmp}} に作成されたランダムなソケットのパスを取得するスクリプトは忘れることができます。&lt;br /&gt;
}}&lt;br /&gt;
* If you use SSH capabilities of gpg-agent (--enable-ssh-support), the systemd unit above will not work&lt;br /&gt;
&lt;br /&gt;
{{Tip|gpg-agent が実行していること、接続を待機していることを確認するには、次のコマンドを実行してください: {{ic|$ gpg-connect-agent}}。設定が問題なければ、プロンプトが表示されます (&#039;&#039;bye&#039;&#039; や &#039;&#039;quit&#039;&#039; と入力すれば接続が終了します)。}}&lt;br /&gt;
&lt;br /&gt;
=== 無人のパスフレーズ ===&lt;br /&gt;
&lt;br /&gt;
GnuPG 2.1.0 から gpg-agent と pinentry の利用が必須になりました。これによって {{ic|--passphrase-fd 0}} コマンドラインオプションによって STDIN からパイプで渡されたパスフレーズの後方互換性が損ねられています。古いリリースと同じような機能を使うには2つのことをする必要があります:&lt;br /&gt;
&lt;br /&gt;
まず、gpg-agent の設定を編集して &#039;&#039;loopback&#039;&#039; pinentry モードを許可してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=~/.gnupg/gpg-agent.conf|2=&lt;br /&gt;
allow-loopback-pinentry&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
gpg-agent プロセスが実行している場合は再起動して変更を適用します。&lt;br /&gt;
&lt;br /&gt;
次に、更新する必要があるアプリケーションに以下のようにコマンドラインパラメータを含めて loopback モードを使用します:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --pinentry-mode loopback ...&lt;br /&gt;
&lt;br /&gt;
もしくは、コマンドラインで設定ができない場合、オプションを設定に追加します:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=~/.gnupg/gpg.conf|2=&lt;br /&gt;
pinentry-mode loopback&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|上流の開発者は &#039;&#039;gpg.conf&#039;&#039; で &#039;&#039;pinentry-mode loopback&#039;&#039; を設定すると他の機能が使えなくなる可能性があると示唆しています。出来るかぎりコマンドラインオプションを使うようにして下さい [https://bugs.g10code.com/gnupg/issue1772]。}}&lt;br /&gt;
&lt;br /&gt;
== スマートカード ==&lt;br /&gt;
&lt;br /&gt;
{{Note|{{Pkg|pcsclite}} と {{Pkg|libusb-compat}} をインストールして、{{ic|pcscd.service}} サービスを [[systemd#ユニットを使う|systemd]] で実行する必要があります。}}&lt;br /&gt;
&lt;br /&gt;
GnuPG はスマートカードリーダーのインターフェイスとして &#039;&#039;scdaemon&#039;&#039; を使います。詳しくは [[man ページ]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== GnuPG のみ設定 ===&lt;br /&gt;
&lt;br /&gt;
GnuPG ベース以外のカードを使う予定がない場合は、{{ic|~/.gnupg/scdaemon.conf}} の {{Ic|reader-port}} パラメータを確認してください。&#039;0&#039; が最初に利用できるシリアルポートリーダーを、&#039;32768&#039; (デフォルト) が最初の USB リーダーを示しています。&lt;br /&gt;
&lt;br /&gt;
=== GnuPG と OpenSC ===&lt;br /&gt;
&lt;br /&gt;
opensc ドライバーであらゆるスマートカードを使う場合は (例: いろいろな国の ID カード)、GnuPG の設定に注意する必要があります。何も設定をしていないと {{Ic|gpg --card-status}} を使った時に以下のようなメッセージが表示されることがあります:&lt;br /&gt;
&lt;br /&gt;
 gpg: selecting openpgp failed: ec=6.108&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、scdaemon はデバイスに直接接続しようとします。リーダーが他のプロセスによって使用中だとこの接続は失敗します。例えば: OpenSC によって使用される pcscd デーモン。この状況に対処するには、opensc と同じ基盤のドライバーを使って一緒に動作できるようにする必要があります。scdaemon に pcscd を使用させるため、{{ic|~/.gnupg/scdaemon.conf}} から {{Ic|reader-port}} を削除して、{{ic|libpcsclite.so}} ライブラリの場所を指定し、ccid を無効化してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.gnupg/scdaemon.conf|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
pcsc-driver /usr/lib/libpcsclite.so&lt;br /&gt;
card-timeout 5&lt;br /&gt;
disable-ccid&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
OpenSC を使わない場合は {{Ic|man scdaemon}} をチェックしてください。&lt;br /&gt;
&lt;br /&gt;
== Tips and tricks ==&lt;br /&gt;
&lt;br /&gt;
=== Different algorithm ===&lt;br /&gt;
&lt;br /&gt;
You may want to use stronger algorithms:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.gnupg/gpg.conf|&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
personal-digest-preferences SHA512&lt;br /&gt;
cert-digest-algo SHA512&lt;br /&gt;
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed&lt;br /&gt;
personal-cipher-preferences TWOFISH CAMELLIA256 AES 3DES&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
In the latest version of GnuPG, the default algorithms used are SHA256 and AES, both of which are secure enough for most people. However, if you are using a version of GnuPG older than 2.1, or if you want an even higher level of security, then you should follow the above step.&lt;br /&gt;
&lt;br /&gt;
=== Encrypt a password ===&lt;br /&gt;
&lt;br /&gt;
It can be useful to encrypt some password, so it will not be written in clear on a configuration file. A good example is your email password.&lt;br /&gt;
&lt;br /&gt;
First create a file with your password. You &#039;&#039;&#039;need&#039;&#039;&#039; to leave &#039;&#039;&#039;one&#039;&#039;&#039; empty line after the password, otherwise gpg will return an error message when evaluating the file.&lt;br /&gt;
&lt;br /&gt;
Then run:&lt;br /&gt;
&lt;br /&gt;
 $ gpg -e -a -r &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039; &#039;&#039;your_password_file&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{ic|-e}} is for encrypt, {{ic|-a}} for armor (ASCII output), {{ic|-r}} for recipient user ID.&lt;br /&gt;
&lt;br /&gt;
You will be left with a new {{ic|&#039;&#039;your_password_file&#039;&#039;.asc}} file.&lt;br /&gt;
&lt;br /&gt;
=== Default options for new users ===&lt;br /&gt;
&lt;br /&gt;
If you want to setup some default options for new users, put configuration files in {{ic|/etc/skel/.gnupg/}}. When the new user is added in system, files from here will be copied to its GnuPG home directory. There is also a simple script called &#039;&#039;addgnupghome&#039;&#039; which you can use to create new GnuPG home directories for existing users:&lt;br /&gt;
&lt;br /&gt;
 # addgnupghome user1 user2&lt;br /&gt;
&lt;br /&gt;
This will add the respective {{ic|/home/user1/.gnupg}} and {{ic|/home/user2/.gnupg}} and copy the files from the skeleton directory to it. Users with existing GnuPG home directory are simply skipped.&lt;br /&gt;
&lt;br /&gt;
=== Revoking a key ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|&lt;br /&gt;
*Anybody having access to your revocation certificate can revoke your key, rendering it useless.&lt;br /&gt;
*Key revocation should only be performed if your key is compromised or lost, or you forget your passphrase.}}&lt;br /&gt;
&lt;br /&gt;
Revocation certificates are automatically generated for newly generated keys, although one can be generated manually by the user later. These are located at {{ic|~/.gnupg/openpgp-revocs.d/}}. The filename of the certificate is the fingerprint of the key it will revoke.&lt;br /&gt;
&lt;br /&gt;
To revoke your key, simply import the revocation certificate:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --import &#039;&#039;&amp;lt;fingerprint&amp;gt;&#039;&#039;.rev&lt;br /&gt;
&lt;br /&gt;
Now update the keyserver:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --keyserver subkeys.pgp.net --send &#039;&#039;&amp;lt;userid&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Change trust model ===&lt;br /&gt;
&lt;br /&gt;
By default GnuPG uses the [[Wikipedia::Web of Trust|Web of Trust]] as the trust model. You can change this to [[Wikipedia::Trust on First|Trust on First]] Use by adding {{ic|1=--trust-model=tofu}} when adding a key or adding this option to your GnuPG configuration file. More details are in [https://lists.gnupg.org/pipermail/gnupg-devel/2015-October/030341.html this email to the GnuPG list].&lt;br /&gt;
&lt;br /&gt;
=== Hide all recipient id&#039;s ===&lt;br /&gt;
&lt;br /&gt;
By default the recipient&#039;s key ID is in the encrypted message. This can be removed at encryption time for a recipient by using {{ic|hidden-recipient &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}}. To remove it for all recipients add {{ic|throw-keyids}} to your configuration file. This helps to hide the receivers of the message and is a limited countermeasure against traffic analysis. (Using a little social engineering anyone who is able to decrypt the message can check whether one of the other recipients is the one he suspects.)  On the receiving side, it may slow down the decryption process because all available secret keys must be tried (&#039;&#039;e.g.&#039;&#039; with {{ic|--try-secret-key &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}}).&lt;br /&gt;
&lt;br /&gt;
=== Using caff for keysigning parties ===&lt;br /&gt;
&lt;br /&gt;
To allow users to validate keys on the keyservers and in their keyrings (i.e. make sure they are from whom they claim to be), PGP/GPG uses he [[Wikipedia::Web of Trust|Web of Trust]]. Keysigning parties allow users to get together in physical location to validate keys. The [[Wikipedia:Zimmermann–Sassaman key-signing protocol|Zimmermann-Sassaman]] key-signing protocol is a way of making these very effective. [http://www.cryptnet.net/fdp/crypto/keysigning_party/en/keysigning_party.html Here] you will find a how-to article.&lt;br /&gt;
&lt;br /&gt;
キーサインパーティの後、鍵に署名したり所有者に署名を送るのを簡略化するために、&#039;&#039;caff&#039;&#039; というツールを使うことができます。AUR のパッケージ {{AUR|caff-svn}} でインストールすることができ、{{AUR|signing-party-svn}} パッケージなど他の便利なツールにも付属しています。どちらにせよ、AUR から大量の依存パッケージをインストールすることになります。また、以下のように CPAN からインストールすることも可能です:&lt;br /&gt;
 cpanm Any::Moose&lt;br /&gt;
 cpanm GnuPG::Interface&lt;br /&gt;
&lt;br /&gt;
To send the signatures to their owners you need a working [[Wikipedia:Message transfer agent|MTA]]. If you do not have already one, install [[msmtp]].&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== Make it work behind an http proxy ===&lt;br /&gt;
Since 2.1.9 the http proxy option can be set like this:&lt;br /&gt;
&lt;br /&gt;
  gpg --keyserver-option http-proxy=HOST:PORT&lt;br /&gt;
&lt;br /&gt;
See https://bugs.gnupg.org/gnupg/issue1786 for more explanation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Not enough random bytes available ===&lt;br /&gt;
鍵を生成するときに、gpg は以下のエラーを表示することがあります:&lt;br /&gt;
 Not enough random bytes available. Please do some other work to give the OS a chance to collect more entropy!&lt;br /&gt;
残っているエントロピーを確認するには、カーネルパラメータをチェックしてください:&lt;br /&gt;
 cat /proc/sys/kernel/random/entropy_avail&lt;br /&gt;
&lt;br /&gt;
エントロピーがたくさんある健康的な Linux 環境ならマックスの 4,096 ビットに近い値が返されます。返ってくる値が 200 以下の場合、システムのエントロピーが足りていません。&lt;br /&gt;
&lt;br /&gt;
エントロピー問題を解決するには、メッセージ通りのことをするのがベストです (例: ディスクを動かす、マウスを動かす、wiki を編集する - 何でもエントロピーの生成に繋がります)。それでも問題が解決しない場合、エントロピーを使い果たしているサービスが何なのかチェックして、しばらくそのサービスを停止してみてください。サービスを停止できない場合、[[乱数生成#高速な RNG]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== su ===&lt;br /&gt;
&lt;br /&gt;
{{Ic|pinentry}} を使う場合、使用するターミナルデバイス (例: {{Ic|/dev/tty1}}) の適切なパーミッションが必要です。しかしながら、&#039;&#039;su&#039;&#039; (または &#039;&#039;sudo&#039;&#039;) を使用すると、所有権は元のユーザーに残り、新しいユーザーにはなくなります。これでは pinentry はたとえ root であっても起動しません。pinentry を使用する (つまりエージェントで gpg を使用する) 前にデバイスのパーミッションを同じ所に変更する必要があります。root で gpg を実行する場合、gpg を使用する直前に所有者を root に変更してください:&lt;br /&gt;
&lt;br /&gt;
 chown root /dev/ttyN  # where N is the current tty&lt;br /&gt;
&lt;br /&gt;
そして gpg を使用した後に元に戻して下さい。おそらく {{Ic|/dev/pts/}} と同じのが正しいです。&lt;br /&gt;
&lt;br /&gt;
{{Note|The owner of tty &#039;&#039;must&#039;&#039; match with the user for which pinentry is running. Being part of the group {{Ic|tty}} &#039;&#039;&#039;is not&#039;&#039;&#039; enough.}}&lt;br /&gt;
&lt;br /&gt;
=== エージェントがファイルの終末についてエラーを表示する ===&lt;br /&gt;
&lt;br /&gt;
デフォルトの pinentry プログラムは pinentry-gtk-2 であり、D-Bus セッションバスを正しく実行する必要があります。詳しくは[[一般的なトラブルシューティング#セッションのパーミッション]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
もしくは、{{ic|pinentry-qt}} を使うこともできます。[[#pinentry]] を参照。&lt;br /&gt;
&lt;br /&gt;
=== KGpg 設定のパーミッション ===&lt;br /&gt;
&lt;br /&gt;
There have been issues with {{Pkg|kdeutils-kgpg}} being able to access the {{ic|~/.gnupg/}} options. One issue might be a result of a deprecated &#039;&#039;options&#039;&#039; file, see the [https://bugs.kde.org/show_bug.cgi?id=290221 bug] report.&lt;br /&gt;
&lt;br /&gt;
Another user reported that &#039;&#039;KGpg&#039;&#039; failed to start until the {{ic|~/.gnupg}} folder is set to {{ic|drwxr-xr-x}} permissions. If you require this work-around, ensure that the directory contents retain {{ic|-rw-------}} permissions! Further, report it as a bug to the [https://bugs.kde.org/buglist.cgi?quicksearch=kgpg developers].&lt;br /&gt;
&lt;br /&gt;
=== gnome-keyring と gpg-agent が衝突する ===&lt;br /&gt;
&lt;br /&gt;
Gnome keyring は GPG エージェントコンポーネントを実装していますが、GnuPG バージョン 2.1 から、GnuPG は {{ic|GPG_AGENT_INFO}} 環境変数を無視するようになったため、Gnome keyring を GPG エージェントとして使うことはできません。&lt;br /&gt;
&lt;br /&gt;
However, since version 0.9.6 the package {{Pkg|pinentry}} provides the {{Ic|pinentry-gnome3}} program. You may set the following option in your {{Ic|gpg-agent.conf}} file&lt;br /&gt;
  pinentry-program /usr/bin/pinentry-gnome3&lt;br /&gt;
in order to make use of that pinentry program.&lt;br /&gt;
&lt;br /&gt;
Since version 0.9.2 all pinentry programs can be configured to optionally save a passphrase with libsecret. For example, when the user is asked for a passphrase via {{Ic|pinentry-gnome3}}, a checkbox is shown whether to save the passphrase using a password manager. Unfortunately, the package {{Pkg|pinentry}} does not have this feature enabled (see {{Bug|46059}} for the reasons). You may use {{AUR|pinentry-libsecret}} as a replacement for it, which has support for libsecret enabled.&lt;br /&gt;
&lt;br /&gt;
=== mutt and gpg ===&lt;br /&gt;
&lt;br /&gt;
To be asked for your GnuPG password only once per session as of GnuPG 2.1, see [https://bbs.archlinux.org/viewtopic.php?pid=1490821#p1490821 this forum thread].&lt;br /&gt;
&lt;br /&gt;
=== gnupg バージョン 2.1 にアップグレードすると鍵が&amp;quot;消失&amp;quot;する ===&lt;br /&gt;
&lt;br /&gt;
{{ic|gpg --list-keys}} を実行しても以前まで使っていた鍵が表示されない場合、また、アプリケーションが鍵を見つけられないまたは鍵が不正だとエラーを吐く場合、鍵が新しいフォーマットに移行できていない可能性があります。&lt;br /&gt;
&lt;br /&gt;
[http://jo-ke.name/wp/?p=111 GnuPG invalid packet workaround] を読んで下さい。要約すると、旧式の {{ic|pubring.gpg}} と {{ic|secring.gpg}} ファイルの鍵にはバグが存在しており、新しい {{ic|pubring.kbx}} ファイルと {{ic|private-keys-v1.d/}} サブディレクトリ、そしてディレクトリのファイルによって置き換えられたということが書かれています。以下のコマンドを実行することで消失した鍵を復旧させることができるかもしれません:&lt;br /&gt;
&lt;br /&gt;
 $ cd&lt;br /&gt;
 $ cp -r .gnupg gnupgOLD&lt;br /&gt;
 $ gpg --export-ownertrust &amp;gt; otrust.txt&lt;br /&gt;
 $ gpg --import .gnupg/pubring.gpg&lt;br /&gt;
 $ gpg --import-ownertrust otrust.txt&lt;br /&gt;
 $ gpg --list-keys&lt;br /&gt;
&lt;br /&gt;
=== (鍵を受信しようとすると) どのキーサーバーでも gpg がフリーズする ===&lt;br /&gt;
&lt;br /&gt;
特定のキーサーバーで鍵を受信しようとして gpg がフリーズしている場合、dirmngr を kill して (問題が起こっていない) 他のキーサーバーにアクセスできるようにする必要があります。そうしないと全てのキーサーバーでフリーズしてしまいます。&lt;br /&gt;
&lt;br /&gt;
=== スマートカードが検出されない ===&lt;br /&gt;
&lt;br /&gt;
スマートカードにアクセスするための権限がない場合、カードを正しく設定して接続しても、{{ic|card error}} が表示されることがあります。&lt;br /&gt;
&lt;br /&gt;
スマートカードにアクセスする必要があるユーザーに {{ic|scard}} を追加することで解決できます。追加したら、以下のような [[Udev#udev ルールを記述する|udev]] ルールを作って下さい:&lt;br /&gt;
{{hc|/etc/udev/rules.d/71-gnupg-ccid.rules|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
ACTION==&amp;quot;add&amp;quot;, SUBSYSTEM==&amp;quot;usb&amp;quot;, ENV{ID_VENDOR_ID}==&amp;quot;1050&amp;quot;, ENV{ID_MODEL_ID}==&amp;quot;0116|0111&amp;quot;, MODE=&amp;quot;664&amp;quot;, GROUP=&amp;quot;scard&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
VENDOR と MODEL は {{ic|lsusb}} の出力にあわせて変更する必要があります。上記は YubikeyNEO の例です。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://gnupg.org/ GNU Privacy Guard Homepage]&lt;br /&gt;
* [https://fedoraproject.org/wiki/Creating_GPG_Keys Creating GPG Keys (Fedora)]&lt;br /&gt;
* [https://wiki.debian.org/Subkeys OpenPGP subkeys in Debian]&lt;br /&gt;
* [http://blog.sanctum.geek.nz/series/linux-crypto/ A more comprehensive gpg Tutorial]&lt;br /&gt;
* [https://help.riseup.net/en/security/message-security/openpgp/gpg-best-practices gpg.conf recommendations and best practices]&lt;br /&gt;
* [https://github.com/ioerror/torbirdy/blob/master/gpg.conf Torbirdy gpg.conf]&lt;br /&gt;
* [https://www.reddit.com/r/GPGpractice/ /r/GPGpractice - a subreddit to practice using GnuPG.]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=GnuPG&amp;diff=4833</id>
		<title>GnuPG</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=GnuPG&amp;diff=4833"/>
		<updated>2016-01-24T18:18:49Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: 4.使い方まで完全に同期できていることを確認&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:セキュリティ]]&lt;br /&gt;
[[en:GnuPG]]&lt;br /&gt;
[[es:GnuPG]]&lt;br /&gt;
[[ru:GnuPG]]&lt;br /&gt;
[http://www.gnupg.org 公式サイト] によれば:&lt;br /&gt;
&lt;br /&gt;
:GnuPG は RFC4880（別名 [[Wikipedia:PGP|PGP]]）で定義される OpenPGP 標準の完全でフリーな実装です。GnuPG を使うことでデータや通信を暗号化したり署名することができます。多目的の鍵管理システムであり、あらゆる種類の公開鍵ディレクトリのアクセスモジュールです。GnuPG（またの名を GPG）は他のアプリケーションとの簡単に連携できる機能を備えたコマンドラインツールです。豊富なアプリケーションとライブラリが利用可能です。GnuPG のバージョン2は S/MIME と ssh のサポートも含んでいます。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{Pkg|gnupg}} をインストールしてください。&lt;br /&gt;
&lt;br /&gt;
gnupg をインストールすると、GnuPG がパスフレーズエントリに使用するシンプルな PIN やパスフレーズエントリダイアログのコレクションである {{Pkg|pinentry}} もインストールされます。&#039;&#039;pinentry&#039;&#039; はシンボリックリンク {{ic|/usr/bin/pinentry}} によって決められ、デフォルトでは {{ic|/usr/bin/pinentry-gtk-2}} になります。&lt;br /&gt;
&lt;br /&gt;
グラフィカルフロントエンドや GnuPG と連携するプログラムを使いたい場合は[[アプリケーション一覧/セキュリティ#暗号化, 署名, ステガノグラフィー]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
== 環境変数 ==&lt;br /&gt;
&lt;br /&gt;
=== GNUPGHOME ===&lt;br /&gt;
&lt;br /&gt;
{{ic|$GNUPGHOME}} は全ての設定ファイルを保存するディレクトリを指定するのに GnuPG によって使われます。デフォルトでは {{ic|$GNUPGHOME}} は設定されておらず、代わりに {{ic|$HOME}} が使われます。そのためインストール直後は {{ic|~/.gnupg}} ディレクトリが確認できます。[[自動起動|スタートアップファイル]]に次の行を記述することでデフォルト設定を変更できます:&lt;br /&gt;
&lt;br /&gt;
 export GNUPGHOME=&amp;quot;&#039;&#039;/path/to/directory&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note|デフォルトでは、gnupg ディレクトリの[[ファイルのパーミッションと属性|パーミッション]]は &#039;&#039;700&#039;&#039; に設定されており、ディレクトリのファイルのパーミッションは &#039;&#039;600&#039;&#039; に設定されています。ファイルの読み書きやアクセスの権限を持っているのはディレクトリの所有者だけです (&#039;&#039;r&#039;&#039;,&#039;&#039;w&#039;&#039;,&#039;&#039;x&#039;&#039;)。これはセキュリティ上の理由で設定されていることなので変更してはいけません。ディレクトリやファイルがこのセキュリティ対策に従っていない場合、ファイルやホームディレクトリのパーミッションが安全ではないという警告が表示されます。}}&lt;br /&gt;
&lt;br /&gt;
== 設定ファイル ==&lt;br /&gt;
&lt;br /&gt;
デフォルトは {{ic|~/.gnupg/gpg.conf}} と {{ic|~/.gnupg/dirmngr.conf}} です。デフォルトの場所を変更したい場合は、{{ic|$ gpg --homedir &#039;&#039;path/to/file&#039;&#039;}} と gpg を実行するか {{ic|$GNUPGHOME}} 変数を使って下さい。どんな長いオプションもこのファイルに追加します。2つのダッシュを書かないで、オプションや必要な引数の名前を書いて下さい。スケルトンファイルは {{ic|/usr/share/gnupgl}} にあります。gpg がなんらかの操作のため最初に起動されたとき、~/.gnupg が存在しなければこれらのファイルが ~/.gnupg にコピーされます。[[#参照]] に他の例があります。&lt;br /&gt;
&lt;br /&gt;
== 使い方 ==&lt;br /&gt;
&lt;br /&gt;
{{Note|コマンドに &#039;&#039;{{ic|&amp;lt;user-id&amp;gt;}}&#039;&#039; が必要なときは、鍵 ID、指紋、名前やメールアドレスの一部などを指定できます。これについて GnuPG は寛容です。}}&lt;br /&gt;
{{Note|以下のステップのいくつかは、使用法によってはメールクライアントなどの外部プログラムにより提供されていることもあります。[[アプリケーション一覧/セキュリティ#暗号化, 署名, ステガノグラフィー]]も参照}}&lt;br /&gt;
&lt;br /&gt;
=== 鍵の作成 ===&lt;br /&gt;
&lt;br /&gt;
秘密鍵を生成するにはターミナルに次を入力:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --full-gen-key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|--expert}} を使うことで他の暗号を利用することができます ([[wikipedia:ja:楕円曲線暗号|楕円曲線暗号]]など)}}&lt;br /&gt;
&lt;br /&gt;
いくつか質問がきかれます。一般的に、ほとんどのユーザーは RSA (署名のみ) と RSA (暗号化のみ) の両方の鍵が必要になります。鍵長は2048ビットで十分です。4096ビットを使ったところで [https://www.gnupg.org/faq/gnupg-faq.html#no_default_of_rsa4096 &amp;quot;大した効果はありませんし、無駄に時間がかかるようになるだけです&amp;quot;] 。&lt;br /&gt;
&lt;br /&gt;
副鍵の有効期限の設定は技術的には必須ではありませんが、設定することは悪くありません。標準的なユーザーなら、1年間で十分でしょう。たとえ鍵束へのアクセスを失っても、他の人が有効でないことを知ることができるようになります。鍵を作成した後、新しい鍵を再発行しなくても満了日は延長することができます。&lt;br /&gt;
&lt;br /&gt;
安全なパスフレーズを選ぶようにしてください（[[セキュリティ#パスワードの管理]]を参照）。&lt;br /&gt;
&lt;br /&gt;
=== 秘密鍵のバックアップ ===&lt;br /&gt;
&lt;br /&gt;
秘密鍵をバックアップするには:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --export-secret-keys --armor &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039; &amp;gt; privkey.asc&lt;br /&gt;
&lt;br /&gt;
秘密鍵はロックされたコンテナや暗号化されたドライブなど安全な場所に置いてください。&lt;br /&gt;
&lt;br /&gt;
{{Warning|上記のエクスポートされたファイルにアクセスできる人は誰でも、&#039;&#039;パスフレーズを知らなくても&#039;&#039;あなたのふりをして文書を暗号化したり署名したりできます}}&lt;br /&gt;
&lt;br /&gt;
=== 公開鍵のエクスポート ===&lt;br /&gt;
&lt;br /&gt;
他の人があなたに暗号化したメッセージを送れるようにするには、彼らがあなたの公開鍵を知っている必要があります。&lt;br /&gt;
&lt;br /&gt;
（メールで送る場合などのために）ASCII 版の公開鍵を生成するには:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --armor --output public.key --export &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
あるいは、[[#鍵サーバを使用する|鍵サーバ]]で鍵を共有する方法もあります。&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|--no-emit-version}} を使うか、これを設定ファイルに書くことでバージョン番号の表示を抑制できます。}}&lt;br /&gt;
&lt;br /&gt;
=== 鍵のインポート ===&lt;br /&gt;
&lt;br /&gt;
メッセージを暗号化して他の人に送るには、彼らの公開鍵が必要です。公開鍵を自分の公開鍵リングにインポートするには:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --import public.key&lt;br /&gt;
&lt;br /&gt;
あるいは、[[#鍵サーバを使用する|鍵サーバ]]で公開鍵を見つけます。&lt;br /&gt;
&lt;br /&gt;
=== 鍵サーバを使用する ===&lt;br /&gt;
&lt;br /&gt;
自分の公開鍵を公共の PGP 鍵サーバに登録することで、他の人があなたに直接連絡することなしにあなたの鍵を入手できるようになります。&lt;br /&gt;
&lt;br /&gt;
 $ gpg --send-keys &#039;&#039;&amp;lt;key-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
鍵サーバから鍵をインポートするには:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --recv-keys &#039;&#039;&amp;lt;key-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Warning|誰でも鍵サーバに鍵を送ることができます。そのため、ダウンロードした鍵が本当にその人のものであると信用してはいけません。入手した鍵の指紋を、持ち主が別の場所（ブログ、サイト、メール・電話で連絡するなど）で公開している指紋と比較してその鍵の真正性を確かめるべきです。複数の情報源を使うことでその鍵の信頼性は増します。[[Wikipedia:Public key fingerprint]]を参照。}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* 代わりの鍵サーバは {{ic|pool.sks-keyservers.net}} で {{ic|--keyserver}} で指定できます。[[wikipedia:Key server (cryptographic)#Keyserver examples]]を参照&lt;br /&gt;
* {{ic|--use-tor}} を使うと [[Tor]] で鍵サーバに接続できます。{{ic|hkp://jirk5u4osbsr34t5.onion}} は sks-keyservers プールの onion アドレスです。[https://gnupg.org/blog/20151224-gnupg-in-november-and-december.html See this GnuPG blog post] を参照}}&lt;br /&gt;
&lt;br /&gt;
=== 暗号化と復号化 ===&lt;br /&gt;
&lt;br /&gt;
暗号化や復号化をするときは複数の秘密鍵を使用することが可能です。複数の鍵を使うときは使用する鍵を選択する必要があります。{{ic|-u &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}} オプションや {{ic|--local-user &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}} オプションを使うことで選択できます。このオプションを使うとデフォルトの鍵を使用する代わりに指定された鍵を使用します。&lt;br /&gt;
&lt;br /&gt;
ファイルを暗号化するには、次を使用:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --encrypt -o secret.tar.gpg secret.tar&lt;br /&gt;
&lt;br /&gt;
* 受取人を変更したい場合は {{ic|-r &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}} オプションで変更できます (または {{ic|--recipient &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}})。&lt;br /&gt;
* gnupg を使えば機密文書を暗号化できますが、一度に複数のファイルを暗号化することはできません。ディレクトリやファイルシステム全体を暗号化したいときは、[[TrueCrypt]] や [[EncFS]] などを使用するか、tarball にファイルをまとめて暗号化すると良いでしょう。&lt;br /&gt;
&lt;br /&gt;
ファイルを復号化するには、次を使用:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --decrypt secret.tar.gpg&lt;br /&gt;
&lt;br /&gt;
パスフレーズの入力が求められます。&lt;br /&gt;
&lt;br /&gt;
== 鍵の管理 ==&lt;br /&gt;
&lt;br /&gt;
=== 鍵の編集 ===&lt;br /&gt;
&lt;br /&gt;
* {{ic|gpg --edit-key &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}} コマンドを実行するとメニューが表示され、鍵管理に関連するほとんどの作業を行うことができます。以下は満了日を設定する例です:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --edit-key &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
 &amp;gt; key &#039;&#039;number&#039;&#039;&lt;br /&gt;
 &amp;gt; expire &#039;&#039;yyyy-mm-dd&#039;&#039;&lt;br /&gt;
 &amp;gt; save&lt;br /&gt;
 &amp;gt; quit&lt;br /&gt;
&lt;br /&gt;
便利なコマンド:&lt;br /&gt;
 &amp;gt; passwd       # change the passphrase&lt;br /&gt;
 &amp;gt; clean        # compact any user ID that is no longer usable (e.g revoked or expired)&lt;br /&gt;
 &amp;gt; revkey       # revoke a key&lt;br /&gt;
 &amp;gt; addkey       # add a subkey to this key&lt;br /&gt;
 &amp;gt; expire       # change the key expiration time&lt;br /&gt;
&lt;br /&gt;
* 公開鍵の ASCII バージョンを生成 (例: メールなどで配るため):&lt;br /&gt;
&lt;br /&gt;
 $ gpg --armor --output public.key --export &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* PGP 公開鍵サーバーに鍵を登録して、他の人があなたに直接連絡しなくても鍵を取得できるようにする:&lt;br /&gt;
&lt;br /&gt;
 $ gpg  --keyserver pgp.mit.edu --send-keys &#039;&#039;&amp;lt;key-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* ユーザー Bob あてに署名と暗号化:&lt;br /&gt;
&lt;br /&gt;
 $ gpg -se -r Bob &#039;&#039;file&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* クリアテキスト署名を作成:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --clearsign &#039;&#039;file&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== 副鍵のエクスポート ===&lt;br /&gt;
&lt;br /&gt;
複数のデバイスで同じ鍵を使い回す場合、マスター鍵を分離させて、セキュリティが低いシステムでは暗号化に必要な副鍵だけを使いたいという状況が考えられます。&lt;br /&gt;
&lt;br /&gt;
まず、エクスポートしたい副鍵を確認してください:&lt;br /&gt;
&lt;br /&gt;
 $ gpg -K&lt;br /&gt;
&lt;br /&gt;
エクスポートする副鍵だけを選択:&lt;br /&gt;
&lt;br /&gt;
 $ gpg -a --export-secret-subkeys [subkey id]! &amp;gt; /tmp/subkey.gpg&lt;br /&gt;
&lt;br /&gt;
{{Warning|If you forget to add the !, all of your subkeys will be exported.}}&lt;br /&gt;
&lt;br /&gt;
ここで作業を終えても良いですが、パスフレーズの変更もしておくと安全です。一時フォルダに鍵をインポートします:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --homedir /tmp/gpg --import /tmp/subkey.gpg&lt;br /&gt;
 $ gpg --homedir /tmp/gpg --edit-key &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
 &amp;gt; passwd&lt;br /&gt;
 &amp;gt; save&lt;br /&gt;
 $ gpg --homedir /tmp/gpg -a --export-secret-subkeys [subkey id]! &amp;gt; /tmp/subkey.altpass.gpg&lt;br /&gt;
&lt;br /&gt;
{{Note|マスター鍵が存在しない、また、マスター鍵のパスワードが変更されていないという警告が表示されますが、変更したのは副鍵のパスワードなので無視してかまいません。}}&lt;br /&gt;
&lt;br /&gt;
これで、他のデバイスで {{ic|/tmp/subkey.altpass.gpg}} を使うことができます。&lt;br /&gt;
&lt;br /&gt;
=== 副鍵の使用 ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|何か特段の事情がないかぎり、有効期限が切れたり無効になった副鍵を削除しないでください。削除してしまうとその副鍵で暗号化したファイルを復号化できなくなってしまいます。満了した、または無効のキーを削除するのは他のユーザーの鍵束を整理するときだけにしてください。}}&lt;br /&gt;
&lt;br /&gt;
副鍵を設定して一定期間後に満了したら、新しい副鍵を作成できます。他のユーザーが鍵束を更新できるように数週間前に行うようにしましょう。&lt;br /&gt;
&lt;br /&gt;
{{Note|新しい鍵を作成する必要はありません。期限がきて使えなくなっただけだからです。有効期間を延長することができます。}}&lt;br /&gt;
&lt;br /&gt;
* 新しい副鍵を作成 (署名と暗号化の鍵の両方)&lt;br /&gt;
&lt;br /&gt;
 $ gpg --edit-key &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
 &amp;gt; addkey&lt;br /&gt;
&lt;br /&gt;
そして質問に答えて下さい (推奨される設定については前のセクションを参照)。&lt;br /&gt;
&lt;br /&gt;
* 変更を保存:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; save&lt;br /&gt;
&lt;br /&gt;
* キーサーバーにアップデート:&lt;br /&gt;
&lt;br /&gt;
 $ gpg  --keyserver pgp.mit.edu --send-keys &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|満了した副鍵を失効させる必要はありません、また、良い行いとは言えません。しょっちゅう鍵を無効化させているようでしたら、他人はあなたを信用しなくなるかもしれません。}}&lt;br /&gt;
&lt;br /&gt;
=== 鍵を表示 ===&lt;br /&gt;
&lt;br /&gt;
* 公開鍵束の鍵:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --list-keys&lt;br /&gt;
&lt;br /&gt;
* 秘密鍵束の鍵:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --list-secret-keys&lt;br /&gt;
&lt;br /&gt;
== gpg-agent ==&lt;br /&gt;
&lt;br /&gt;
{{Deletion|Much of this is outdated and unnecessary info.|section=gpg-agent deletion}}&lt;br /&gt;
{{Out of date|[[#GPG_AGENT_INFO]] is deprecated since {{pkg|gnupg}}-2.1. See [[#Unattended passphrase]] for new method.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;gpg-agent&#039;&#039; はキーチェインにパスワードをリクエストしたりキャッシュしたりするのに使われるデーモンです。メールクライアントなど外部のプログラムから GnuPG を利用する場合に便利です。{{ic|gpg.conf}} に次の行を追加することで使用できます:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.gnupg/gpg.conf|use-agent}}&lt;br /&gt;
&lt;br /&gt;
この設定によって GnuPG はパスワードが必要になった時にエージェントを使うようになります。ただし、あらかじめエージェントを実行しておく必要があります。エージェントを自動的に起動するには、{{ic|.xinitrc}} や {{ic|.bash_profile}} に以下のエントリを追加してください。{{ic|$GNUPGHOME}} を変更していた場合は envfile のパスを忘れずに変更するようにしてください。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.bash_profile|2=&amp;lt;nowiki&amp;gt;&lt;br /&gt;
envfile=&amp;quot;$HOME/.gnupg/gpg-agent.env&amp;quot;&lt;br /&gt;
if [[ -e &amp;quot;$envfile&amp;quot; ]] &amp;amp;&amp;amp; kill -0 $(grep GPG_AGENT_INFO &amp;quot;$envfile&amp;quot; | cut -d: -f 2) 2&amp;gt;/dev/null; then&lt;br /&gt;
    eval &amp;quot;$(cat &amp;quot;$envfile&amp;quot;)&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
    eval &amp;quot;$(gpg-agent --daemon --enable-ssh-support --write-env-file &amp;quot;$envfile&amp;quot;)&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
export GPG_AGENT_INFO  # the env file does not contain the export statement&lt;br /&gt;
export SSH_AUTH_SOCK   # enable gpg-agent for ssh&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
その後、セッションを一度ログアウトしてからログインしなおして下さい。&#039;&#039;gpg-agent&#039;&#039; が有効になっているか確認:&lt;br /&gt;
&lt;br /&gt;
 $ pgrep gpg-agent&lt;br /&gt;
&lt;br /&gt;
=== 設定 ===&lt;br /&gt;
&lt;br /&gt;
gpg-agent は {{ic|~/.gnupg/gpg-agent.conf}} ファイルで設定することができます。設定オプションは {{ic|man gpg-agent}} に記載されています。例えば、未使用の鍵の cache ttl を変更することができます:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.gnupg/gpg-agent.conf|&lt;br /&gt;
default-cache-ttl 3600&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|セッションを通してパスフレーズをキャッシュするには、次のコマンドを実行してください:&lt;br /&gt;
 $ /usr/lib/gnupg/gpg-preset-passphrase --preset XXXXXX&lt;br /&gt;
&lt;br /&gt;
XXXX は鍵輪に置き換えてください。鍵輪の値は {{ic|gpg --with-keygrip -K}} を実行することで取得できます。パスフレーズは {{ic|gpg-agent}} が再起動されるまで保存されます。{{ic|default-cache-ttl}} の値を設定した場合、そちらが優先されます。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== エージェントのリロード ===&lt;br /&gt;
&lt;br /&gt;
設定を変更した後は、{{ic|gpg-connect-agent}} に {{ic|RELOADAGENT}} という文字列をパイプで渡して、エージェントをリロードしてください。&lt;br /&gt;
&lt;br /&gt;
 $ echo RELOADAGENT | gpg-connect-agent&lt;br /&gt;
&lt;br /&gt;
シェルに {{ic|OK}} と出力されます。&lt;br /&gt;
&lt;br /&gt;
=== pinentry ===&lt;br /&gt;
&lt;br /&gt;
最後に、ユーザーにパスワードを尋ねる方法をエージェントに設定する必要があります。gpg-agent の設定ファイルで設定できます。&lt;br /&gt;
&lt;br /&gt;
デフォルトでは gtk のダイアログが使われます。使用できるオプションは {{ic|info pinentry}} を見て下さい。ダイアログの実装を変更するには {{ic|pinentry-program}} 設定オプションを設定します:&lt;br /&gt;
{{hc|~/.gnupg/gpg-agent.conf|&lt;br /&gt;
&lt;br /&gt;
# PIN entry program&lt;br /&gt;
# pinentry-program /usr/bin/pinentry-curses&lt;br /&gt;
# pinentry-program /usr/bin/pinentry-qt4&lt;br /&gt;
# pinentry-program /usr/bin/pinentry-kwallet&lt;br /&gt;
&lt;br /&gt;
pinentry-program /usr/bin/pinentry-gtk-2&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|/usr/bin/pinentry-kwallet}} を使うには {{Pkg|kwalletcli}} パッケージをインストールする必要があります。}}&lt;br /&gt;
&lt;br /&gt;
変更を行った後は、gpg-agent をリロードしてください。&lt;br /&gt;
&lt;br /&gt;
=== systemd ユーザーで gpg-agent を起動 ===&lt;br /&gt;
&lt;br /&gt;
[[Systemd/ユーザー]] 機能を使ってエージェントを起動することが可能です。&lt;br /&gt;
&lt;br /&gt;
systemd ユニットファイルを作成:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/systemd/user/gpg-agent.service|2=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=GnuPG private key agent&lt;br /&gt;
IgnoreOnIsolate=true&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=forking&lt;br /&gt;
ExecStart=/usr/bin/gpg-agent --daemon --homedir=%h/.gnupg&lt;br /&gt;
ExecStop=/usr/bin/pkill gpg-agent&lt;br /&gt;
Restart=on-abort&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* {{ic|GNUPGHOME}} など、サービスに環境変数を設定する必要があります。詳しくは [[systemd/ユーザー#環境変数]] を見て下さい。&lt;br /&gt;
* gnupg ホームディレクトリが {{ic|~/.gnupg}} の場合、パスを指定する必要はありません。&lt;br /&gt;
* {{ic|gpg -agent}} は標準ソケットを使いません。代わりに gnupg のホームディレクトリにある {{ic|S.gpg-agent}} という名前のソケットを使います。environment ファイルを読み込んで {{ic|/tmp}} に作成されたランダムなソケットのパスを取得するスクリプトは忘れることができます。&lt;br /&gt;
}}&lt;br /&gt;
* If you use SSH capabilities of gpg-agent (--enable-ssh-support), the systemd unit above will not work&lt;br /&gt;
&lt;br /&gt;
{{Tip|gpg-agent が実行していること、接続を待機していることを確認するには、次のコマンドを実行してください: {{ic|$ gpg-connect-agent}}。設定が問題なければ、プロンプトが表示されます (&#039;&#039;bye&#039;&#039; や &#039;&#039;quit&#039;&#039; と入力すれば接続が終了します)。}}&lt;br /&gt;
&lt;br /&gt;
=== 無人のパスフレーズ ===&lt;br /&gt;
&lt;br /&gt;
GnuPG 2.1.0 から gpg-agent と pinentry の利用が必須になりました。これによって {{ic|--passphrase-fd 0}} コマンドラインオプションによって STDIN からパイプで渡されたパスフレーズの後方互換性が損ねられています。古いリリースと同じような機能を使うには2つのことをする必要があります:&lt;br /&gt;
&lt;br /&gt;
まず、gpg-agent の設定を編集して &#039;&#039;loopback&#039;&#039; pinentry モードを許可してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=~/.gnupg/gpg-agent.conf|2=&lt;br /&gt;
allow-loopback-pinentry&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
gpg-agent プロセスが実行している場合は再起動して変更を適用します。&lt;br /&gt;
&lt;br /&gt;
次に、更新する必要があるアプリケーションに以下のようにコマンドラインパラメータを含めて loopback モードを使用します:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --pinentry-mode loopback ...&lt;br /&gt;
&lt;br /&gt;
もしくは、コマンドラインで設定ができない場合、オプションを設定に追加します:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=~/.gnupg/gpg.conf|2=&lt;br /&gt;
pinentry-mode loopback&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|上流の開発者は &#039;&#039;gpg.conf&#039;&#039; で &#039;&#039;pinentry-mode loopback&#039;&#039; を設定すると他の機能が使えなくなる可能性があると示唆しています。出来るかぎりコマンドラインオプションを使うようにして下さい [https://bugs.g10code.com/gnupg/issue1772]。}}&lt;br /&gt;
&lt;br /&gt;
== スマートカード ==&lt;br /&gt;
&lt;br /&gt;
{{Note|{{Pkg|pcsclite}} と {{Pkg|libusb-compat}} をインストールして、{{ic|pcscd.service}} サービスを [[systemd#ユニットを使う|systemd]] で実行する必要があります。}}&lt;br /&gt;
&lt;br /&gt;
GnuPG はスマートカードリーダーのインターフェイスとして &#039;&#039;scdaemon&#039;&#039; を使います。詳しくは [[man ページ]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== GnuPG のみ設定 ===&lt;br /&gt;
&lt;br /&gt;
GnuPG ベース以外のカードを使う予定がない場合は、{{ic|~/.gnupg/scdaemon.conf}} の {{Ic|reader-port}} パラメータを確認してください。&#039;0&#039; が最初に利用できるシリアルポートリーダーを、&#039;32768&#039; (デフォルト) が最初の USB リーダーを示しています。&lt;br /&gt;
&lt;br /&gt;
=== GnuPG と OpenSC ===&lt;br /&gt;
&lt;br /&gt;
opensc ドライバーであらゆるスマートカードを使う場合は (例: いろいろな国の ID カード)、GnuPG の設定に注意する必要があります。何も設定をしていないと {{Ic|gpg --card-status}} を使った時に以下のようなメッセージが表示されることがあります:&lt;br /&gt;
&lt;br /&gt;
 gpg: selecting openpgp failed: ec=6.108&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、scdaemon はデバイスに直接接続しようとします。リーダーが他のプロセスによって使用中だとこの接続は失敗します。例えば: OpenSC によって使用される pcscd デーモン。この状況に対処するには、opensc と同じ基盤のドライバーを使って一緒に動作できるようにする必要があります。scdaemon に pcscd を使用させるため、{{ic|~/.gnupg/scdaemon.conf}} から {{Ic|reader-port}} を削除して、{{ic|libpcsclite.so}} ライブラリの場所を指定し、ccid を無効化してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.gnupg/scdaemon.conf|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
pcsc-driver /usr/lib/libpcsclite.so&lt;br /&gt;
card-timeout 5&lt;br /&gt;
disable-ccid&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
OpenSC を使わない場合は {{Ic|man scdaemon}} をチェックしてください。&lt;br /&gt;
&lt;br /&gt;
== Tips and tricks ==&lt;br /&gt;
&lt;br /&gt;
=== Different algorithm ===&lt;br /&gt;
&lt;br /&gt;
You may want to use stronger algorithms:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.gnupg/gpg.conf|&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
personal-digest-preferences SHA512&lt;br /&gt;
cert-digest-algo SHA512&lt;br /&gt;
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed&lt;br /&gt;
personal-cipher-preferences TWOFISH CAMELLIA256 AES 3DES&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
In the latest version of GnuPG, the default algorithms used are SHA256 and AES, both of which are secure enough for most people. However, if you are using a version of GnuPG older than 2.1, or if you want an even higher level of security, then you should follow the above step.&lt;br /&gt;
&lt;br /&gt;
=== Encrypt a password ===&lt;br /&gt;
&lt;br /&gt;
It can be useful to encrypt some password, so it will not be written in clear on a configuration file. A good example is your email password.&lt;br /&gt;
&lt;br /&gt;
First create a file with your password. You &#039;&#039;&#039;need&#039;&#039;&#039; to leave &#039;&#039;&#039;one&#039;&#039;&#039; empty line after the password, otherwise gpg will return an error message when evaluating the file.&lt;br /&gt;
&lt;br /&gt;
Then run:&lt;br /&gt;
&lt;br /&gt;
 $ gpg -e -a -r &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039; &#039;&#039;your_password_file&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{ic|-e}} is for encrypt, {{ic|-a}} for armor (ASCII output), {{ic|-r}} for recipient user ID.&lt;br /&gt;
&lt;br /&gt;
You will be left with a new {{ic|&#039;&#039;your_password_file&#039;&#039;.asc}} file.&lt;br /&gt;
&lt;br /&gt;
=== Default options for new users ===&lt;br /&gt;
&lt;br /&gt;
If you want to setup some default options for new users, put configuration files in {{ic|/etc/skel/.gnupg/}}. When the new user is added in system, files from here will be copied to its GnuPG home directory. There is also a simple script called &#039;&#039;addgnupghome&#039;&#039; which you can use to create new GnuPG home directories for existing users:&lt;br /&gt;
&lt;br /&gt;
 # addgnupghome user1 user2&lt;br /&gt;
&lt;br /&gt;
This will add the respective {{ic|/home/user1/.gnupg}} and {{ic|/home/user2/.gnupg}} and copy the files from the skeleton directory to it. Users with existing GnuPG home directory are simply skipped.&lt;br /&gt;
&lt;br /&gt;
=== Revoking a key ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|&lt;br /&gt;
*Anybody having access to your revocation certificate can revoke your key, rendering it useless.&lt;br /&gt;
*Key revocation should only be performed if your key is compromised or lost, or you forget your passphrase.}}&lt;br /&gt;
&lt;br /&gt;
Revocation certificates are automatically generated for newly generated keys, although one can be generated manually by the user later. These are located at {{ic|~/.gnupg/openpgp-revocs.d/}}. The filename of the certificate is the fingerprint of the key it will revoke.&lt;br /&gt;
&lt;br /&gt;
To revoke your key, simply import the revocation certificate:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --import &#039;&#039;&amp;lt;fingerprint&amp;gt;&#039;&#039;.rev&lt;br /&gt;
&lt;br /&gt;
Now update the keyserver:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --keyserver subkeys.pgp.net --send &#039;&#039;&amp;lt;userid&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Change trust model ===&lt;br /&gt;
&lt;br /&gt;
By default GnuPG uses the [[Wikipedia::Web of Trust|Web of Trust]] as the trust model. You can change this to [[Wikipedia::Trust on First|Trust on First]] Use by adding {{ic|1=--trust-model=tofu}} when adding a key or adding this option to your GnuPG configuration file. More details are in [https://lists.gnupg.org/pipermail/gnupg-devel/2015-October/030341.html this email to the GnuPG list].&lt;br /&gt;
&lt;br /&gt;
=== Hide all recipient id&#039;s ===&lt;br /&gt;
&lt;br /&gt;
By default the recipient&#039;s key ID is in the encrypted message. This can be removed at encryption time for a recipient by using {{ic|hidden-recipient &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}}. To remove it for all recipients add {{ic|throw-keyids}} to your configuration file. This helps to hide the receivers of the message and is a limited countermeasure against traffic analysis. (Using a little social engineering anyone who is able to decrypt the message can check whether one of the other recipients is the one he suspects.)  On the receiving side, it may slow down the decryption process because all available secret keys must be tried (&#039;&#039;e.g.&#039;&#039; with {{ic|--try-secret-key &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}}).&lt;br /&gt;
&lt;br /&gt;
=== Using caff for keysigning parties ===&lt;br /&gt;
&lt;br /&gt;
To allow users to validate keys on the keyservers and in their keyrings (i.e. make sure they are from whom they claim to be), PGP/GPG uses he [[Wikipedia::Web of Trust|Web of Trust]]. Keysigning parties allow users to get together in physical location to validate keys. The [[Wikipedia:Zimmermann–Sassaman key-signing protocol|Zimmermann-Sassaman]] key-signing protocol is a way of making these very effective. [http://www.cryptnet.net/fdp/crypto/keysigning_party/en/keysigning_party.html Here] you will find a how-to article.&lt;br /&gt;
&lt;br /&gt;
キーサインパーティの後、鍵に署名したり所有者に署名を送るのを簡略化するために、&#039;&#039;caff&#039;&#039; というツールを使うことができます。AUR のパッケージ {{AUR|caff-svn}} でインストールすることができ、{{AUR|signing-party-svn}} パッケージなど他の便利なツールにも付属しています。どちらにせよ、AUR から大量の依存パッケージをインストールすることになります。また、以下のように CPAN からインストールすることも可能です:&lt;br /&gt;
 cpanm Any::Moose&lt;br /&gt;
 cpanm GnuPG::Interface&lt;br /&gt;
&lt;br /&gt;
To send the signatures to their owners you need a working [[Wikipedia:Message transfer agent|MTA]]. If you do not have already one, install [[msmtp]].&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== Make it work behind an http proxy ===&lt;br /&gt;
Since 2.1.9 the http proxy option can be set like this:&lt;br /&gt;
&lt;br /&gt;
  gpg --keyserver-option http-proxy=HOST:PORT&lt;br /&gt;
&lt;br /&gt;
See https://bugs.gnupg.org/gnupg/issue1786 for more explanation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Not enough random bytes available ===&lt;br /&gt;
鍵を生成するときに、gpg は以下のエラーを表示することがあります:&lt;br /&gt;
 Not enough random bytes available. Please do some other work to give the OS a chance to collect more entropy!&lt;br /&gt;
残っているエントロピーを確認するには、カーネルパラメータをチェックしてください:&lt;br /&gt;
 cat /proc/sys/kernel/random/entropy_avail&lt;br /&gt;
&lt;br /&gt;
エントロピーがたくさんある健康的な Linux 環境ならマックスの 4,096 ビットに近い値が返されます。返ってくる値が 200 以下の場合、システムのエントロピーが足りていません。&lt;br /&gt;
&lt;br /&gt;
エントロピー問題を解決するには、メッセージ通りのことをするのがベストです (例: ディスクを動かす、マウスを動かす、wiki を編集する - 何でもエントロピーの生成に繋がります)。それでも問題が解決しない場合、エントロピーを使い果たしているサービスが何なのかチェックして、しばらくそのサービスを停止してみてください。サービスを停止できない場合、[[乱数生成#高速な RNG]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== su ===&lt;br /&gt;
&lt;br /&gt;
{{Ic|pinentry}} を使う場合、使用するターミナルデバイス (例: {{Ic|/dev/tty1}}) の適切なパーミッションが必要です。しかしながら、&#039;&#039;su&#039;&#039; (または &#039;&#039;sudo&#039;&#039;) を使用すると、所有権は元のユーザーに残り、新しいユーザーにはなくなります。これでは pinentry はたとえ root であっても起動しません。pinentry を使用する (つまりエージェントで gpg を使用する) 前にデバイスのパーミッションを同じ所に変更する必要があります。root で gpg を実行する場合、gpg を使用する直前に所有者を root に変更してください:&lt;br /&gt;
&lt;br /&gt;
 chown root /dev/ttyN  # where N is the current tty&lt;br /&gt;
&lt;br /&gt;
そして gpg を使用した後に元に戻して下さい。おそらく {{Ic|/dev/pts/}} と同じのが正しいです。&lt;br /&gt;
&lt;br /&gt;
{{Note|The owner of tty &#039;&#039;must&#039;&#039; match with the user for which pinentry is running. Being part of the group {{Ic|tty}} &#039;&#039;&#039;is not&#039;&#039;&#039; enough.}}&lt;br /&gt;
&lt;br /&gt;
=== エージェントがファイルの終末についてエラーを表示する ===&lt;br /&gt;
&lt;br /&gt;
デフォルトの pinentry プログラムは pinentry-gtk-2 であり、D-Bus セッションバスを正しく実行する必要があります。詳しくは[[一般的なトラブルシューティング#セッションのパーミッション]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
もしくは、{{ic|pinentry-qt}} を使うこともできます。[[#pinentry]] を参照。&lt;br /&gt;
&lt;br /&gt;
=== KGpg 設定のパーミッション ===&lt;br /&gt;
&lt;br /&gt;
There have been issues with {{Pkg|kdeutils-kgpg}} being able to access the {{ic|~/.gnupg/}} options. One issue might be a result of a deprecated &#039;&#039;options&#039;&#039; file, see the [https://bugs.kde.org/show_bug.cgi?id=290221 bug] report.&lt;br /&gt;
&lt;br /&gt;
Another user reported that &#039;&#039;KGpg&#039;&#039; failed to start until the {{ic|~/.gnupg}} folder is set to {{ic|drwxr-xr-x}} permissions. If you require this work-around, ensure that the directory contents retain {{ic|-rw-------}} permissions! Further, report it as a bug to the [https://bugs.kde.org/buglist.cgi?quicksearch=kgpg developers].&lt;br /&gt;
&lt;br /&gt;
=== gnome-keyring と gpg-agent が衝突する ===&lt;br /&gt;
&lt;br /&gt;
Gnome keyring は GPG エージェントコンポーネントを実装していますが、GnuPG バージョン 2.1 から、GnuPG は {{ic|GPG_AGENT_INFO}} 環境変数を無視するようになったため、Gnome keyring を GPG エージェントとして使うことはできません。&lt;br /&gt;
&lt;br /&gt;
However, since version 0.9.6 the package {{Pkg|pinentry}} provides the {{Ic|pinentry-gnome3}} program. You may set the following option in your {{Ic|gpg-agent.conf}} file&lt;br /&gt;
  pinentry-program /usr/bin/pinentry-gnome3&lt;br /&gt;
in order to make use of that pinentry program.&lt;br /&gt;
&lt;br /&gt;
Since version 0.9.2 all pinentry programs can be configured to optionally save a passphrase with libsecret. For example, when the user is asked for a passphrase via {{Ic|pinentry-gnome3}}, a checkbox is shown whether to save the passphrase using a password manager. Unfortunately, the package {{Pkg|pinentry}} does not have this feature enabled (see {{Bug|46059}} for the reasons). You may use {{AUR|pinentry-libsecret}} as a replacement for it, which has support for libsecret enabled.&lt;br /&gt;
&lt;br /&gt;
=== mutt and gpg ===&lt;br /&gt;
&lt;br /&gt;
To be asked for your GnuPG password only once per session as of GnuPG 2.1, see [https://bbs.archlinux.org/viewtopic.php?pid=1490821#p1490821 this forum thread].&lt;br /&gt;
&lt;br /&gt;
=== gnupg バージョン 2.1 にアップグレードすると鍵が&amp;quot;消失&amp;quot;する ===&lt;br /&gt;
&lt;br /&gt;
{{ic|gpg --list-keys}} を実行しても以前まで使っていた鍵が表示されない場合、また、アプリケーションが鍵を見つけられないまたは鍵が不正だとエラーを吐く場合、鍵が新しいフォーマットに移行できていない可能性があります。&lt;br /&gt;
&lt;br /&gt;
[http://jo-ke.name/wp/?p=111 GnuPG invalid packet workaround] を読んで下さい。要約すると、旧式の {{ic|pubring.gpg}} と {{ic|secring.gpg}} ファイルの鍵にはバグが存在しており、新しい {{ic|pubring.kbx}} ファイルと {{ic|private-keys-v1.d/}} サブディレクトリ、そしてディレクトリのファイルによって置き換えられたということが書かれています。以下のコマンドを実行することで消失した鍵を復旧させることができるかもしれません:&lt;br /&gt;
&lt;br /&gt;
 $ cd&lt;br /&gt;
 $ cp -r .gnupg gnupgOLD&lt;br /&gt;
 $ gpg --export-ownertrust &amp;gt; otrust.txt&lt;br /&gt;
 $ gpg --import .gnupg/pubring.gpg&lt;br /&gt;
 $ gpg --import-ownertrust otrust.txt&lt;br /&gt;
 $ gpg --list-keys&lt;br /&gt;
&lt;br /&gt;
=== (鍵を受信しようとすると) どのキーサーバーでも gpg がフリーズする ===&lt;br /&gt;
&lt;br /&gt;
特定のキーサーバーで鍵を受信しようとして gpg がフリーズしている場合、dirmngr を kill して (問題が起こっていない) 他のキーサーバーにアクセスできるようにする必要があります。そうしないと全てのキーサーバーでフリーズしてしまいます。&lt;br /&gt;
&lt;br /&gt;
=== スマートカードが検出されない ===&lt;br /&gt;
&lt;br /&gt;
スマートカードにアクセスするための権限がない場合、カードを正しく設定して接続しても、{{ic|card error}} が表示されることがあります。&lt;br /&gt;
&lt;br /&gt;
スマートカードにアクセスする必要があるユーザーに {{ic|scard}} を追加することで解決できます。追加したら、以下のような [[Udev#udev ルールを記述する|udev]] ルールを作って下さい:&lt;br /&gt;
{{hc|/etc/udev/rules.d/71-gnupg-ccid.rules|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
ACTION==&amp;quot;add&amp;quot;, SUBSYSTEM==&amp;quot;usb&amp;quot;, ENV{ID_VENDOR_ID}==&amp;quot;1050&amp;quot;, ENV{ID_MODEL_ID}==&amp;quot;0116|0111&amp;quot;, MODE=&amp;quot;664&amp;quot;, GROUP=&amp;quot;scard&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
VENDOR と MODEL は {{ic|lsusb}} の出力にあわせて変更する必要があります。上記は YubikeyNEO の例です。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://gnupg.org/ GNU Privacy Guard Homepage]&lt;br /&gt;
* [https://fedoraproject.org/wiki/Creating_GPG_Keys Creating GPG Keys (Fedora)]&lt;br /&gt;
* [https://wiki.debian.org/Subkeys OpenPGP subkeys in Debian]&lt;br /&gt;
* [http://blog.sanctum.geek.nz/series/linux-crypto/ A more comprehensive gpg Tutorial]&lt;br /&gt;
* [https://help.riseup.net/en/security/message-security/openpgp/gpg-best-practices gpg.conf recommendations and best practices]&lt;br /&gt;
* [https://github.com/ioerror/torbirdy/blob/master/gpg.conf Torbirdy gpg.conf]&lt;br /&gt;
* [https://www.reddit.com/r/GPGpractice/ /r/GPGpractice - a subreddit to practice using GnuPG.]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=GnuPG&amp;diff=4832</id>
		<title>GnuPG</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=GnuPG&amp;diff=4832"/>
		<updated>2016-01-24T17:53:39Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: 同期&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:セキュリティ]]&lt;br /&gt;
[[en:GnuPG]]&lt;br /&gt;
[[es:GnuPG]]&lt;br /&gt;
[[ru:GnuPG]]&lt;br /&gt;
[http://www.gnupg.org 公式サイト] によれば:&lt;br /&gt;
&lt;br /&gt;
:GnuPG は RFC4880（別名 [[Wikipedia:PGP|PGP]]）で定義される OpenPGP 標準の完全でフリーな実装です。GnuPG を使うことでデータや通信を暗号化したり署名することができます。多目的の鍵管理システムであり、あらゆる種類の公開鍵ディレクトリのアクセスモジュールです。GnuPG（またの名を GPG）は他のアプリケーションとの簡単に連携できる機能を備えたコマンドラインツールです。豊富なアプリケーションとライブラリが利用可能です。GnuPG のバージョン2は S/MIME と ssh のサポートも含んでいます。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{Pkg|gnupg}} をインストールしてください。&lt;br /&gt;
&lt;br /&gt;
gnupg をインストールすると、GnuPG がパスフレーズエントリに使用するシンプルな PIN やパスフレーズエントリダイアログのコレクションである {{Pkg|pinentry}} もインストールされます。&#039;&#039;pinentry&#039;&#039; はシンボリックリンク {{ic|/usr/bin/pinentry}} によって決められ、デフォルトでは {{ic|/usr/bin/pinentry-gtk-2}} になります。&lt;br /&gt;
&lt;br /&gt;
グラフィカルフロントエンドや GnuPG と連携するプログラムを使いたい場合は[[アプリケーション一覧/セキュリティ#暗号化, 署名, ステガノグラフィー]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
== 環境変数 ==&lt;br /&gt;
&lt;br /&gt;
=== GNUPGHOME ===&lt;br /&gt;
&lt;br /&gt;
{{ic|$GNUPGHOME}} は全ての設定ファイルを保存するディレクトリを指定するのに GnuPG によって使われます。デフォルトでは {{ic|$GNUPGHOME}} は設定されておらず、代わりに {{ic|$HOME}} が使われます。そのためインストール直後は {{ic|~/.gnupg}} ディレクトリが確認できます。[[自動起動|スタートアップファイル]]に次の行を記述することでデフォルト設定を変更できます:&lt;br /&gt;
&lt;br /&gt;
 export GNUPGHOME=&amp;quot;&#039;&#039;/path/to/directory&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note|デフォルトでは、gnupg ディレクトリの[[ファイルのパーミッションと属性|パーミッション]]は &#039;&#039;700&#039;&#039; に設定されており、ディレクトリのファイルのパーミッションは &#039;&#039;600&#039;&#039; に設定されています。ファイルの読み書きやアクセスの権限を持っているのはディレクトリの所有者だけです (&#039;&#039;r&#039;&#039;,&#039;&#039;w&#039;&#039;,&#039;&#039;x&#039;&#039;)。これはセキュリティ上の理由で設定されていることなので変更してはいけません。ディレクトリやファイルがこのセキュリティ対策に従っていない場合、ファイルやホームディレクトリのパーミッションが安全ではないという警告が表示されます。}}&lt;br /&gt;
&lt;br /&gt;
== 設定ファイル ==&lt;br /&gt;
&lt;br /&gt;
デフォルトは {{ic|~/.gnupg/gpg.conf}} と {{ic|~/.gnupg/dirmngr.conf}} です。デフォルトの場所を変更したい場合は、{{ic|$ gpg --homedir &#039;&#039;path/to/file&#039;&#039;}} と gpg を実行するか {{ic|$GNUPGHOME}} 変数を使って下さい。どんな長いオプションもこのファイルに追加します。2つのダッシュを書かないで、オプションや必要な引数の名前を書いて下さい。スケルトンファイルは {{ic|/usr/share/gnupgl}} にあります。gpg がなんらかの操作のため最初に起動されたとき、~/.gnupg が存在しなければこれらのファイルが ~/.gnupg にコピーされます。[[#参照]] に他の例があります。&lt;br /&gt;
&lt;br /&gt;
== 使い方 ==&lt;br /&gt;
&lt;br /&gt;
{{Note|コマンドに &#039;&#039;{{ic|&amp;lt;user-id&amp;gt;}}&#039;&#039; が必要なときは、鍵 ID、指紋、名前やメールアドレスの一部などを指定できます。これについて GnuPG は寛容です。}}&lt;br /&gt;
{{Note|以下のステップのいくつかは、使用法によってはメールクライアントなどの外部プログラムにより提供されていることもあります。[[アプリケーション一覧/セキュリティ#暗号化, 署名, ステガノグラフィー]]も参照}}&lt;br /&gt;
&lt;br /&gt;
=== 鍵の作成 ===&lt;br /&gt;
&lt;br /&gt;
秘密鍵を生成するにはターミナルに次を入力:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --full-gen-key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|--expert}} を使うことで他の暗号を利用することができます ([[wikipedia:ja:楕円曲線暗号|楕円曲線暗号]]など)}}&lt;br /&gt;
&lt;br /&gt;
いくつか質問がきかれます。一般的に、ほとんどのユーザーは RSA (署名のみ) と RSA (暗号化のみ) の両方の鍵が必要になります。鍵長は2048ビットで十分です。4096ビットを使ったところで [https://www.gnupg.org/faq/gnupg-faq.html#no_default_of_rsa4096 &amp;quot;大した効果はありませんし、無駄に時間がかかるようになるだけです&amp;quot;] 。&lt;br /&gt;
&lt;br /&gt;
副鍵の有効期限の設定は技術的には必須ではありませんが、設定することは悪くありません。標準的なユーザーなら、1年間で十分でしょう。たとえ鍵束へのアクセスを失っても、他の人が有効でないことを知ることができるようになります。鍵を作成した後、新しい鍵を再発行しなくても満了日は延長することができます。&lt;br /&gt;
&lt;br /&gt;
安全なパスフレーズを選ぶようにしてください（[[セキュリティ#パスワードの管理]]を参照）。&lt;br /&gt;
&lt;br /&gt;
=== Backup your private key ===&lt;br /&gt;
&lt;br /&gt;
To backup your private key do the following:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --export-secret-keys --armor &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039; &amp;gt; privkey.asc&lt;br /&gt;
&lt;br /&gt;
Place the private key in a safe place, such as a locked container or encrypted drive.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Anyone who gains access to the above exported file will be able to encrypt and sign documents as if they were you &#039;&#039;without&#039;&#039; needing to know your passphrase.}}&lt;br /&gt;
&lt;br /&gt;
=== Export your public key ===&lt;br /&gt;
&lt;br /&gt;
In order for others to send encrypted messages to you, they need your public key.&lt;br /&gt;
&lt;br /&gt;
To generate an ASCII version of your public key (e.g. to distribute it by e-mail):&lt;br /&gt;
&lt;br /&gt;
 $ gpg --armor --output public.key --export &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Alternatively, or in addition, you can share your key [[#Use_a_keyserver|on a keyserver]].&lt;br /&gt;
&lt;br /&gt;
{{Tip|Add {{ic|--no-emit-version}} to avoid printing the version number, or add the corresponding setting to your configuration file.}}&lt;br /&gt;
&lt;br /&gt;
=== Import a key ===&lt;br /&gt;
&lt;br /&gt;
In order to encrypt messages to others, you need their public key. To import a public key to your public key ring:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --import public.key&lt;br /&gt;
&lt;br /&gt;
Alternatively, find a public key [[#Use_a_keyserver|on a keyserver]].&lt;br /&gt;
&lt;br /&gt;
=== Use a keyserver ===&lt;br /&gt;
&lt;br /&gt;
You can register your key with a public PGP key server, so that others can retrieve your key without having to contact you directly:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --send-keys &#039;&#039;&amp;lt;key-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To import a key from a key server:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --recv-keys &#039;&#039;&amp;lt;key-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Warning|Anyone can send keys to a keyserver, so you should not trust that the key you download actually belongs to the individual listed. You should verify the authenticity of the retrieved public key by comparing its fingerprint with one that the owner published on an independent source, such as their own blog or website, or contacting them by email, over the phone or in person. Using multiple authentication sources will increase the level of trust you can give to the downloaded key. See [[Wikipedia:Public key fingerprint]] for more information.}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* An alternative key server is {{ic|pool.sks-keyservers.net}} and can be specified with {{ic|--keyserver}}; see also [[wikipedia:Key server (cryptographic)#Keyserver examples]].&lt;br /&gt;
* You can connect to the keyserver over [[Tor]] using {{ic|--use-tor}}. {{ic|hkp://jirk5u4osbsr34t5.onion}} is the onion address for the sks-keyservers pool. [https://gnupg.org/blog/20151224-gnupg-in-november-and-december.html See this GnuPG blog post] for more information.}}&lt;br /&gt;
&lt;br /&gt;
=== 暗号化と復号化 ===&lt;br /&gt;
&lt;br /&gt;
暗号化や復号化をするときは複数の秘密鍵を使用することが可能です。複数の鍵を使うときは使用する鍵を選択する必要があります。{{ic|-u &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}} オプションや {{ic|--local-user &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}} オプションを使うことで選択できます。このオプションを使うとデフォルトの鍵を使用する代わりに指定された鍵を使用します。&lt;br /&gt;
&lt;br /&gt;
ファイルを暗号化するには、次を使用:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --encrypt -o secret.tar.gpg secret.tar&lt;br /&gt;
&lt;br /&gt;
* 受取人を変更したい場合は {{ic|-r &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}} オプションで変更できます (または {{ic|--recipient &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}})。&lt;br /&gt;
* gnupg を使えば機密文書を暗号化できますが、一度に複数のファイルを暗号化することはできません。ディレクトリやファイルシステム全体を暗号化したいときは、[[TrueCrypt]] や [[EncFS]] などを使用するか、tarball にファイルをまとめて暗号化すると良いでしょう。&lt;br /&gt;
&lt;br /&gt;
ファイルを復号化するには、次を使用:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --decrypt secret.tar.gpg&lt;br /&gt;
&lt;br /&gt;
パスフレーズの入力が求められます。&lt;br /&gt;
&lt;br /&gt;
== 鍵の管理 ==&lt;br /&gt;
&lt;br /&gt;
=== 鍵の編集 ===&lt;br /&gt;
&lt;br /&gt;
* {{ic|gpg --edit-key &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}} コマンドを実行するとメニューが表示され、鍵管理に関連するほとんどの作業を行うことができます。以下は満了日を設定する例です:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --edit-key &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
 &amp;gt; key &#039;&#039;number&#039;&#039;&lt;br /&gt;
 &amp;gt; expire &#039;&#039;yyyy-mm-dd&#039;&#039;&lt;br /&gt;
 &amp;gt; save&lt;br /&gt;
 &amp;gt; quit&lt;br /&gt;
&lt;br /&gt;
便利なコマンド:&lt;br /&gt;
 &amp;gt; passwd       # change the passphrase&lt;br /&gt;
 &amp;gt; clean        # compact any user ID that is no longer usable (e.g revoked or expired)&lt;br /&gt;
 &amp;gt; revkey       # revoke a key&lt;br /&gt;
 &amp;gt; addkey       # add a subkey to this key&lt;br /&gt;
 &amp;gt; expire       # change the key expiration time&lt;br /&gt;
&lt;br /&gt;
* 公開鍵の ASCII バージョンを生成 (例: メールなどで配るため):&lt;br /&gt;
&lt;br /&gt;
 $ gpg --armor --output public.key --export &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* PGP 公開鍵サーバーに鍵を登録して、他の人があなたに直接連絡しなくても鍵を取得できるようにする:&lt;br /&gt;
&lt;br /&gt;
 $ gpg  --keyserver pgp.mit.edu --send-keys &#039;&#039;&amp;lt;key-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* ユーザー Bob あてに署名と暗号化:&lt;br /&gt;
&lt;br /&gt;
 $ gpg -se -r Bob &#039;&#039;file&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* クリアテキスト署名を作成:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --clearsign &#039;&#039;file&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== 副鍵のエクスポート ===&lt;br /&gt;
&lt;br /&gt;
複数のデバイスで同じ鍵を使い回す場合、マスター鍵を分離させて、セキュリティが低いシステムでは暗号化に必要な副鍵だけを使いたいという状況が考えられます。&lt;br /&gt;
&lt;br /&gt;
まず、エクスポートしたい副鍵を確認してください:&lt;br /&gt;
&lt;br /&gt;
 $ gpg -K&lt;br /&gt;
&lt;br /&gt;
エクスポートする副鍵だけを選択:&lt;br /&gt;
&lt;br /&gt;
 $ gpg -a --export-secret-subkeys [subkey id]! &amp;gt; /tmp/subkey.gpg&lt;br /&gt;
&lt;br /&gt;
{{Warning|If you forget to add the !, all of your subkeys will be exported.}}&lt;br /&gt;
&lt;br /&gt;
ここで作業を終えても良いですが、パスフレーズの変更もしておくと安全です。一時フォルダに鍵をインポートします:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --homedir /tmp/gpg --import /tmp/subkey.gpg&lt;br /&gt;
 $ gpg --homedir /tmp/gpg --edit-key &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
 &amp;gt; passwd&lt;br /&gt;
 &amp;gt; save&lt;br /&gt;
 $ gpg --homedir /tmp/gpg -a --export-secret-subkeys [subkey id]! &amp;gt; /tmp/subkey.altpass.gpg&lt;br /&gt;
&lt;br /&gt;
{{Note|マスター鍵が存在しない、また、マスター鍵のパスワードが変更されていないという警告が表示されますが、変更したのは副鍵のパスワードなので無視してかまいません。}}&lt;br /&gt;
&lt;br /&gt;
これで、他のデバイスで {{ic|/tmp/subkey.altpass.gpg}} を使うことができます。&lt;br /&gt;
&lt;br /&gt;
=== 副鍵の使用 ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|何か特段の事情がないかぎり、有効期限が切れたり無効になった副鍵を削除しないでください。削除してしまうとその副鍵で暗号化したファイルを復号化できなくなってしまいます。満了した、または無効のキーを削除するのは他のユーザーの鍵束を整理するときだけにしてください。}}&lt;br /&gt;
&lt;br /&gt;
副鍵を設定して一定期間後に満了したら、新しい副鍵を作成できます。他のユーザーが鍵束を更新できるように数週間前に行うようにしましょう。&lt;br /&gt;
&lt;br /&gt;
{{Note|新しい鍵を作成する必要はありません。期限がきて使えなくなっただけだからです。有効期間を延長することができます。}}&lt;br /&gt;
&lt;br /&gt;
* 新しい副鍵を作成 (署名と暗号化の鍵の両方)&lt;br /&gt;
&lt;br /&gt;
 $ gpg --edit-key &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
 &amp;gt; addkey&lt;br /&gt;
&lt;br /&gt;
そして質問に答えて下さい (推奨される設定については前のセクションを参照)。&lt;br /&gt;
&lt;br /&gt;
* 変更を保存:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; save&lt;br /&gt;
&lt;br /&gt;
* キーサーバーにアップデート:&lt;br /&gt;
&lt;br /&gt;
 $ gpg  --keyserver pgp.mit.edu --send-keys &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|満了した副鍵を失効させる必要はありません、また、良い行いとは言えません。しょっちゅう鍵を無効化させているようでしたら、他人はあなたを信用しなくなるかもしれません。}}&lt;br /&gt;
&lt;br /&gt;
=== 鍵を表示 ===&lt;br /&gt;
&lt;br /&gt;
* 公開鍵束の鍵:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --list-keys&lt;br /&gt;
&lt;br /&gt;
* 秘密鍵束の鍵:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --list-secret-keys&lt;br /&gt;
&lt;br /&gt;
== gpg-agent ==&lt;br /&gt;
&lt;br /&gt;
{{Deletion|Much of this is outdated and unnecessary info.|section=gpg-agent deletion}}&lt;br /&gt;
{{Out of date|[[#GPG_AGENT_INFO]] is deprecated since {{pkg|gnupg}}-2.1. See [[#Unattended passphrase]] for new method.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;gpg-agent&#039;&#039; はキーチェインにパスワードをリクエストしたりキャッシュしたりするのに使われるデーモンです。メールクライアントなど外部のプログラムから GnuPG を利用する場合に便利です。{{ic|gpg.conf}} に次の行を追加することで使用できます:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.gnupg/gpg.conf|use-agent}}&lt;br /&gt;
&lt;br /&gt;
この設定によって GnuPG はパスワードが必要になった時にエージェントを使うようになります。ただし、あらかじめエージェントを実行しておく必要があります。エージェントを自動的に起動するには、{{ic|.xinitrc}} や {{ic|.bash_profile}} に以下のエントリを追加してください。{{ic|$GNUPGHOME}} を変更していた場合は envfile のパスを忘れずに変更するようにしてください。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.bash_profile|2=&amp;lt;nowiki&amp;gt;&lt;br /&gt;
envfile=&amp;quot;$HOME/.gnupg/gpg-agent.env&amp;quot;&lt;br /&gt;
if [[ -e &amp;quot;$envfile&amp;quot; ]] &amp;amp;&amp;amp; kill -0 $(grep GPG_AGENT_INFO &amp;quot;$envfile&amp;quot; | cut -d: -f 2) 2&amp;gt;/dev/null; then&lt;br /&gt;
    eval &amp;quot;$(cat &amp;quot;$envfile&amp;quot;)&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
    eval &amp;quot;$(gpg-agent --daemon --enable-ssh-support --write-env-file &amp;quot;$envfile&amp;quot;)&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
export GPG_AGENT_INFO  # the env file does not contain the export statement&lt;br /&gt;
export SSH_AUTH_SOCK   # enable gpg-agent for ssh&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
その後、セッションを一度ログアウトしてからログインしなおして下さい。&#039;&#039;gpg-agent&#039;&#039; が有効になっているか確認:&lt;br /&gt;
&lt;br /&gt;
 $ pgrep gpg-agent&lt;br /&gt;
&lt;br /&gt;
=== 設定 ===&lt;br /&gt;
&lt;br /&gt;
gpg-agent は {{ic|~/.gnupg/gpg-agent.conf}} ファイルで設定することができます。設定オプションは {{ic|man gpg-agent}} に記載されています。例えば、未使用の鍵の cache ttl を変更することができます:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.gnupg/gpg-agent.conf|&lt;br /&gt;
default-cache-ttl 3600&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|セッションを通してパスフレーズをキャッシュするには、次のコマンドを実行してください:&lt;br /&gt;
 $ /usr/lib/gnupg/gpg-preset-passphrase --preset XXXXXX&lt;br /&gt;
&lt;br /&gt;
XXXX は鍵輪に置き換えてください。鍵輪の値は {{ic|gpg --with-keygrip -K}} を実行することで取得できます。パスフレーズは {{ic|gpg-agent}} が再起動されるまで保存されます。{{ic|default-cache-ttl}} の値を設定した場合、そちらが優先されます。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== エージェントのリロード ===&lt;br /&gt;
&lt;br /&gt;
設定を変更した後は、{{ic|gpg-connect-agent}} に {{ic|RELOADAGENT}} という文字列をパイプで渡して、エージェントをリロードしてください。&lt;br /&gt;
&lt;br /&gt;
 $ echo RELOADAGENT | gpg-connect-agent&lt;br /&gt;
&lt;br /&gt;
シェルに {{ic|OK}} と出力されます。&lt;br /&gt;
&lt;br /&gt;
=== pinentry ===&lt;br /&gt;
&lt;br /&gt;
最後に、ユーザーにパスワードを尋ねる方法をエージェントに設定する必要があります。gpg-agent の設定ファイルで設定できます。&lt;br /&gt;
&lt;br /&gt;
デフォルトでは gtk のダイアログが使われます。使用できるオプションは {{ic|info pinentry}} を見て下さい。ダイアログの実装を変更するには {{ic|pinentry-program}} 設定オプションを設定します:&lt;br /&gt;
{{hc|~/.gnupg/gpg-agent.conf|&lt;br /&gt;
&lt;br /&gt;
# PIN entry program&lt;br /&gt;
# pinentry-program /usr/bin/pinentry-curses&lt;br /&gt;
# pinentry-program /usr/bin/pinentry-qt4&lt;br /&gt;
# pinentry-program /usr/bin/pinentry-kwallet&lt;br /&gt;
&lt;br /&gt;
pinentry-program /usr/bin/pinentry-gtk-2&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|/usr/bin/pinentry-kwallet}} を使うには {{Pkg|kwalletcli}} パッケージをインストールする必要があります。}}&lt;br /&gt;
&lt;br /&gt;
変更を行った後は、gpg-agent をリロードしてください。&lt;br /&gt;
&lt;br /&gt;
=== systemd ユーザーで gpg-agent を起動 ===&lt;br /&gt;
&lt;br /&gt;
[[Systemd/ユーザー]] 機能を使ってエージェントを起動することが可能です。&lt;br /&gt;
&lt;br /&gt;
systemd ユニットファイルを作成:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/systemd/user/gpg-agent.service|2=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=GnuPG private key agent&lt;br /&gt;
IgnoreOnIsolate=true&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=forking&lt;br /&gt;
ExecStart=/usr/bin/gpg-agent --daemon --homedir=%h/.gnupg&lt;br /&gt;
ExecStop=/usr/bin/pkill gpg-agent&lt;br /&gt;
Restart=on-abort&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* {{ic|GNUPGHOME}} など、サービスに環境変数を設定する必要があります。詳しくは [[systemd/ユーザー#環境変数]] を見て下さい。&lt;br /&gt;
* gnupg ホームディレクトリが {{ic|~/.gnupg}} の場合、パスを指定する必要はありません。&lt;br /&gt;
* {{ic|gpg -agent}} は標準ソケットを使いません。代わりに gnupg のホームディレクトリにある {{ic|S.gpg-agent}} という名前のソケットを使います。environment ファイルを読み込んで {{ic|/tmp}} に作成されたランダムなソケットのパスを取得するスクリプトは忘れることができます。&lt;br /&gt;
}}&lt;br /&gt;
* If you use SSH capabilities of gpg-agent (--enable-ssh-support), the systemd unit above will not work&lt;br /&gt;
&lt;br /&gt;
{{Tip|gpg-agent が実行していること、接続を待機していることを確認するには、次のコマンドを実行してください: {{ic|$ gpg-connect-agent}}。設定が問題なければ、プロンプトが表示されます (&#039;&#039;bye&#039;&#039; や &#039;&#039;quit&#039;&#039; と入力すれば接続が終了します)。}}&lt;br /&gt;
&lt;br /&gt;
=== 無人のパスフレーズ ===&lt;br /&gt;
&lt;br /&gt;
GnuPG 2.1.0 から gpg-agent と pinentry の利用が必須になりました。これによって {{ic|--passphrase-fd 0}} コマンドラインオプションによって STDIN からパイプで渡されたパスフレーズの後方互換性が損ねられています。古いリリースと同じような機能を使うには2つのことをする必要があります:&lt;br /&gt;
&lt;br /&gt;
まず、gpg-agent の設定を編集して &#039;&#039;loopback&#039;&#039; pinentry モードを許可してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=~/.gnupg/gpg-agent.conf|2=&lt;br /&gt;
allow-loopback-pinentry&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
gpg-agent プロセスが実行している場合は再起動して変更を適用します。&lt;br /&gt;
&lt;br /&gt;
次に、更新する必要があるアプリケーションに以下のようにコマンドラインパラメータを含めて loopback モードを使用します:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --pinentry-mode loopback ...&lt;br /&gt;
&lt;br /&gt;
もしくは、コマンドラインで設定ができない場合、オプションを設定に追加します:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=~/.gnupg/gpg.conf|2=&lt;br /&gt;
pinentry-mode loopback&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|上流の開発者は &#039;&#039;gpg.conf&#039;&#039; で &#039;&#039;pinentry-mode loopback&#039;&#039; を設定すると他の機能が使えなくなる可能性があると示唆しています。出来るかぎりコマンドラインオプションを使うようにして下さい [https://bugs.g10code.com/gnupg/issue1772]。}}&lt;br /&gt;
&lt;br /&gt;
== スマートカード ==&lt;br /&gt;
&lt;br /&gt;
{{Note|{{Pkg|pcsclite}} と {{Pkg|libusb-compat}} をインストールして、{{ic|pcscd.service}} サービスを [[systemd#ユニットを使う|systemd]] で実行する必要があります。}}&lt;br /&gt;
&lt;br /&gt;
GnuPG はスマートカードリーダーのインターフェイスとして &#039;&#039;scdaemon&#039;&#039; を使います。詳しくは [[man ページ]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== GnuPG のみ設定 ===&lt;br /&gt;
&lt;br /&gt;
GnuPG ベース以外のカードを使う予定がない場合は、{{ic|~/.gnupg/scdaemon.conf}} の {{Ic|reader-port}} パラメータを確認してください。&#039;0&#039; が最初に利用できるシリアルポートリーダーを、&#039;32768&#039; (デフォルト) が最初の USB リーダーを示しています。&lt;br /&gt;
&lt;br /&gt;
=== GnuPG と OpenSC ===&lt;br /&gt;
&lt;br /&gt;
opensc ドライバーであらゆるスマートカードを使う場合は (例: いろいろな国の ID カード)、GnuPG の設定に注意する必要があります。何も設定をしていないと {{Ic|gpg --card-status}} を使った時に以下のようなメッセージが表示されることがあります:&lt;br /&gt;
&lt;br /&gt;
 gpg: selecting openpgp failed: ec=6.108&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、scdaemon はデバイスに直接接続しようとします。リーダーが他のプロセスによって使用中だとこの接続は失敗します。例えば: OpenSC によって使用される pcscd デーモン。この状況に対処するには、opensc と同じ基盤のドライバーを使って一緒に動作できるようにする必要があります。scdaemon に pcscd を使用させるため、{{ic|~/.gnupg/scdaemon.conf}} から {{Ic|reader-port}} を削除して、{{ic|libpcsclite.so}} ライブラリの場所を指定し、ccid を無効化してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.gnupg/scdaemon.conf|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
pcsc-driver /usr/lib/libpcsclite.so&lt;br /&gt;
card-timeout 5&lt;br /&gt;
disable-ccid&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
OpenSC を使わない場合は {{Ic|man scdaemon}} をチェックしてください。&lt;br /&gt;
&lt;br /&gt;
== Tips and tricks ==&lt;br /&gt;
&lt;br /&gt;
=== Different algorithm ===&lt;br /&gt;
&lt;br /&gt;
You may want to use stronger algorithms:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.gnupg/gpg.conf|&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
personal-digest-preferences SHA512&lt;br /&gt;
cert-digest-algo SHA512&lt;br /&gt;
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed&lt;br /&gt;
personal-cipher-preferences TWOFISH CAMELLIA256 AES 3DES&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
In the latest version of GnuPG, the default algorithms used are SHA256 and AES, both of which are secure enough for most people. However, if you are using a version of GnuPG older than 2.1, or if you want an even higher level of security, then you should follow the above step.&lt;br /&gt;
&lt;br /&gt;
=== Encrypt a password ===&lt;br /&gt;
&lt;br /&gt;
It can be useful to encrypt some password, so it will not be written in clear on a configuration file. A good example is your email password.&lt;br /&gt;
&lt;br /&gt;
First create a file with your password. You &#039;&#039;&#039;need&#039;&#039;&#039; to leave &#039;&#039;&#039;one&#039;&#039;&#039; empty line after the password, otherwise gpg will return an error message when evaluating the file.&lt;br /&gt;
&lt;br /&gt;
Then run:&lt;br /&gt;
&lt;br /&gt;
 $ gpg -e -a -r &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039; &#039;&#039;your_password_file&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{ic|-e}} is for encrypt, {{ic|-a}} for armor (ASCII output), {{ic|-r}} for recipient user ID.&lt;br /&gt;
&lt;br /&gt;
You will be left with a new {{ic|&#039;&#039;your_password_file&#039;&#039;.asc}} file.&lt;br /&gt;
&lt;br /&gt;
=== Default options for new users ===&lt;br /&gt;
&lt;br /&gt;
If you want to setup some default options for new users, put configuration files in {{ic|/etc/skel/.gnupg/}}. When the new user is added in system, files from here will be copied to its GnuPG home directory. There is also a simple script called &#039;&#039;addgnupghome&#039;&#039; which you can use to create new GnuPG home directories for existing users:&lt;br /&gt;
&lt;br /&gt;
 # addgnupghome user1 user2&lt;br /&gt;
&lt;br /&gt;
This will add the respective {{ic|/home/user1/.gnupg}} and {{ic|/home/user2/.gnupg}} and copy the files from the skeleton directory to it. Users with existing GnuPG home directory are simply skipped.&lt;br /&gt;
&lt;br /&gt;
=== Revoking a key ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|&lt;br /&gt;
*Anybody having access to your revocation certificate can revoke your key, rendering it useless.&lt;br /&gt;
*Key revocation should only be performed if your key is compromised or lost, or you forget your passphrase.}}&lt;br /&gt;
&lt;br /&gt;
Revocation certificates are automatically generated for newly generated keys, although one can be generated manually by the user later. These are located at {{ic|~/.gnupg/openpgp-revocs.d/}}. The filename of the certificate is the fingerprint of the key it will revoke.&lt;br /&gt;
&lt;br /&gt;
To revoke your key, simply import the revocation certificate:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --import &#039;&#039;&amp;lt;fingerprint&amp;gt;&#039;&#039;.rev&lt;br /&gt;
&lt;br /&gt;
Now update the keyserver:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --keyserver subkeys.pgp.net --send &#039;&#039;&amp;lt;userid&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Change trust model ===&lt;br /&gt;
&lt;br /&gt;
By default GnuPG uses the [[Wikipedia::Web of Trust|Web of Trust]] as the trust model. You can change this to [[Wikipedia::Trust on First|Trust on First]] Use by adding {{ic|1=--trust-model=tofu}} when adding a key or adding this option to your GnuPG configuration file. More details are in [https://lists.gnupg.org/pipermail/gnupg-devel/2015-October/030341.html this email to the GnuPG list].&lt;br /&gt;
&lt;br /&gt;
=== Hide all recipient id&#039;s ===&lt;br /&gt;
&lt;br /&gt;
By default the recipient&#039;s key ID is in the encrypted message. This can be removed at encryption time for a recipient by using {{ic|hidden-recipient &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}}. To remove it for all recipients add {{ic|throw-keyids}} to your configuration file. This helps to hide the receivers of the message and is a limited countermeasure against traffic analysis. (Using a little social engineering anyone who is able to decrypt the message can check whether one of the other recipients is the one he suspects.)  On the receiving side, it may slow down the decryption process because all available secret keys must be tried (&#039;&#039;e.g.&#039;&#039; with {{ic|--try-secret-key &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}}).&lt;br /&gt;
&lt;br /&gt;
=== Using caff for keysigning parties ===&lt;br /&gt;
&lt;br /&gt;
To allow users to validate keys on the keyservers and in their keyrings (i.e. make sure they are from whom they claim to be), PGP/GPG uses he [[Wikipedia::Web of Trust|Web of Trust]]. Keysigning parties allow users to get together in physical location to validate keys. The [[Wikipedia:Zimmermann–Sassaman key-signing protocol|Zimmermann-Sassaman]] key-signing protocol is a way of making these very effective. [http://www.cryptnet.net/fdp/crypto/keysigning_party/en/keysigning_party.html Here] you will find a how-to article.&lt;br /&gt;
&lt;br /&gt;
キーサインパーティの後、鍵に署名したり所有者に署名を送るのを簡略化するために、&#039;&#039;caff&#039;&#039; というツールを使うことができます。AUR のパッケージ {{AUR|caff-svn}} でインストールすることができ、{{AUR|signing-party-svn}} パッケージなど他の便利なツールにも付属しています。どちらにせよ、AUR から大量の依存パッケージをインストールすることになります。また、以下のように CPAN からインストールすることも可能です:&lt;br /&gt;
 cpanm Any::Moose&lt;br /&gt;
 cpanm GnuPG::Interface&lt;br /&gt;
&lt;br /&gt;
To send the signatures to their owners you need a working [[Wikipedia:Message transfer agent|MTA]]. If you do not have already one, install [[msmtp]].&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== Make it work behind an http proxy ===&lt;br /&gt;
Since 2.1.9 the http proxy option can be set like this:&lt;br /&gt;
&lt;br /&gt;
  gpg --keyserver-option http-proxy=HOST:PORT&lt;br /&gt;
&lt;br /&gt;
See https://bugs.gnupg.org/gnupg/issue1786 for more explanation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Not enough random bytes available ===&lt;br /&gt;
鍵を生成するときに、gpg は以下のエラーを表示することがあります:&lt;br /&gt;
 Not enough random bytes available. Please do some other work to give the OS a chance to collect more entropy!&lt;br /&gt;
残っているエントロピーを確認するには、カーネルパラメータをチェックしてください:&lt;br /&gt;
 cat /proc/sys/kernel/random/entropy_avail&lt;br /&gt;
&lt;br /&gt;
エントロピーがたくさんある健康的な Linux 環境ならマックスの 4,096 ビットに近い値が返されます。返ってくる値が 200 以下の場合、システムのエントロピーが足りていません。&lt;br /&gt;
&lt;br /&gt;
エントロピー問題を解決するには、メッセージ通りのことをするのがベストです (例: ディスクを動かす、マウスを動かす、wiki を編集する - 何でもエントロピーの生成に繋がります)。それでも問題が解決しない場合、エントロピーを使い果たしているサービスが何なのかチェックして、しばらくそのサービスを停止してみてください。サービスを停止できない場合、[[乱数生成#高速な RNG]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== su ===&lt;br /&gt;
&lt;br /&gt;
{{Ic|pinentry}} を使う場合、使用するターミナルデバイス (例: {{Ic|/dev/tty1}}) の適切なパーミッションが必要です。しかしながら、&#039;&#039;su&#039;&#039; (または &#039;&#039;sudo&#039;&#039;) を使用すると、所有権は元のユーザーに残り、新しいユーザーにはなくなります。これでは pinentry はたとえ root であっても起動しません。pinentry を使用する (つまりエージェントで gpg を使用する) 前にデバイスのパーミッションを同じ所に変更する必要があります。root で gpg を実行する場合、gpg を使用する直前に所有者を root に変更してください:&lt;br /&gt;
&lt;br /&gt;
 chown root /dev/ttyN  # where N is the current tty&lt;br /&gt;
&lt;br /&gt;
そして gpg を使用した後に元に戻して下さい。おそらく {{Ic|/dev/pts/}} と同じのが正しいです。&lt;br /&gt;
&lt;br /&gt;
{{Note|The owner of tty &#039;&#039;must&#039;&#039; match with the user for which pinentry is running. Being part of the group {{Ic|tty}} &#039;&#039;&#039;is not&#039;&#039;&#039; enough.}}&lt;br /&gt;
&lt;br /&gt;
=== エージェントがファイルの終末についてエラーを表示する ===&lt;br /&gt;
&lt;br /&gt;
デフォルトの pinentry プログラムは pinentry-gtk-2 であり、D-Bus セッションバスを正しく実行する必要があります。詳しくは[[一般的なトラブルシューティング#セッションのパーミッション]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
もしくは、{{ic|pinentry-qt}} を使うこともできます。[[#pinentry]] を参照。&lt;br /&gt;
&lt;br /&gt;
=== KGpg 設定のパーミッション ===&lt;br /&gt;
&lt;br /&gt;
There have been issues with {{Pkg|kdeutils-kgpg}} being able to access the {{ic|~/.gnupg/}} options. One issue might be a result of a deprecated &#039;&#039;options&#039;&#039; file, see the [https://bugs.kde.org/show_bug.cgi?id=290221 bug] report.&lt;br /&gt;
&lt;br /&gt;
Another user reported that &#039;&#039;KGpg&#039;&#039; failed to start until the {{ic|~/.gnupg}} folder is set to {{ic|drwxr-xr-x}} permissions. If you require this work-around, ensure that the directory contents retain {{ic|-rw-------}} permissions! Further, report it as a bug to the [https://bugs.kde.org/buglist.cgi?quicksearch=kgpg developers].&lt;br /&gt;
&lt;br /&gt;
=== gnome-keyring と gpg-agent が衝突する ===&lt;br /&gt;
&lt;br /&gt;
Gnome keyring は GPG エージェントコンポーネントを実装していますが、GnuPG バージョン 2.1 から、GnuPG は {{ic|GPG_AGENT_INFO}} 環境変数を無視するようになったため、Gnome keyring を GPG エージェントとして使うことはできません。&lt;br /&gt;
&lt;br /&gt;
However, since version 0.9.6 the package {{Pkg|pinentry}} provides the {{Ic|pinentry-gnome3}} program. You may set the following option in your {{Ic|gpg-agent.conf}} file&lt;br /&gt;
  pinentry-program /usr/bin/pinentry-gnome3&lt;br /&gt;
in order to make use of that pinentry program.&lt;br /&gt;
&lt;br /&gt;
Since version 0.9.2 all pinentry programs can be configured to optionally save a passphrase with libsecret. For example, when the user is asked for a passphrase via {{Ic|pinentry-gnome3}}, a checkbox is shown whether to save the passphrase using a password manager. Unfortunately, the package {{Pkg|pinentry}} does not have this feature enabled (see {{Bug|46059}} for the reasons). You may use {{AUR|pinentry-libsecret}} as a replacement for it, which has support for libsecret enabled.&lt;br /&gt;
&lt;br /&gt;
=== mutt and gpg ===&lt;br /&gt;
&lt;br /&gt;
To be asked for your GnuPG password only once per session as of GnuPG 2.1, see [https://bbs.archlinux.org/viewtopic.php?pid=1490821#p1490821 this forum thread].&lt;br /&gt;
&lt;br /&gt;
=== gnupg バージョン 2.1 にアップグレードすると鍵が&amp;quot;消失&amp;quot;する ===&lt;br /&gt;
&lt;br /&gt;
{{ic|gpg --list-keys}} を実行しても以前まで使っていた鍵が表示されない場合、また、アプリケーションが鍵を見つけられないまたは鍵が不正だとエラーを吐く場合、鍵が新しいフォーマットに移行できていない可能性があります。&lt;br /&gt;
&lt;br /&gt;
[http://jo-ke.name/wp/?p=111 GnuPG invalid packet workaround] を読んで下さい。要約すると、旧式の {{ic|pubring.gpg}} と {{ic|secring.gpg}} ファイルの鍵にはバグが存在しており、新しい {{ic|pubring.kbx}} ファイルと {{ic|private-keys-v1.d/}} サブディレクトリ、そしてディレクトリのファイルによって置き換えられたということが書かれています。以下のコマンドを実行することで消失した鍵を復旧させることができるかもしれません:&lt;br /&gt;
&lt;br /&gt;
 $ cd&lt;br /&gt;
 $ cp -r .gnupg gnupgOLD&lt;br /&gt;
 $ gpg --export-ownertrust &amp;gt; otrust.txt&lt;br /&gt;
 $ gpg --import .gnupg/pubring.gpg&lt;br /&gt;
 $ gpg --import-ownertrust otrust.txt&lt;br /&gt;
 $ gpg --list-keys&lt;br /&gt;
&lt;br /&gt;
=== (鍵を受信しようとすると) どのキーサーバーでも gpg がフリーズする ===&lt;br /&gt;
&lt;br /&gt;
特定のキーサーバーで鍵を受信しようとして gpg がフリーズしている場合、dirmngr を kill して (問題が起こっていない) 他のキーサーバーにアクセスできるようにする必要があります。そうしないと全てのキーサーバーでフリーズしてしまいます。&lt;br /&gt;
&lt;br /&gt;
=== スマートカードが検出されない ===&lt;br /&gt;
&lt;br /&gt;
スマートカードにアクセスするための権限がない場合、カードを正しく設定して接続しても、{{ic|card error}} が表示されることがあります。&lt;br /&gt;
&lt;br /&gt;
スマートカードにアクセスする必要があるユーザーに {{ic|scard}} を追加することで解決できます。追加したら、以下のような [[Udev#udev ルールを記述する|udev]] ルールを作って下さい:&lt;br /&gt;
{{hc|/etc/udev/rules.d/71-gnupg-ccid.rules|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
ACTION==&amp;quot;add&amp;quot;, SUBSYSTEM==&amp;quot;usb&amp;quot;, ENV{ID_VENDOR_ID}==&amp;quot;1050&amp;quot;, ENV{ID_MODEL_ID}==&amp;quot;0116|0111&amp;quot;, MODE=&amp;quot;664&amp;quot;, GROUP=&amp;quot;scard&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
VENDOR と MODEL は {{ic|lsusb}} の出力にあわせて変更する必要があります。上記は YubikeyNEO の例です。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://gnupg.org/ GNU Privacy Guard Homepage]&lt;br /&gt;
* [https://fedoraproject.org/wiki/Creating_GPG_Keys Creating GPG Keys (Fedora)]&lt;br /&gt;
* [https://wiki.debian.org/Subkeys OpenPGP subkeys in Debian]&lt;br /&gt;
* [http://blog.sanctum.geek.nz/series/linux-crypto/ A more comprehensive gpg Tutorial]&lt;br /&gt;
* [https://help.riseup.net/en/security/message-security/openpgp/gpg-best-practices gpg.conf recommendations and best practices]&lt;br /&gt;
* [https://github.com/ioerror/torbirdy/blob/master/gpg.conf Torbirdy gpg.conf]&lt;br /&gt;
* [https://www.reddit.com/r/GPGpractice/ /r/GPGpractice - a subreddit to practice using GnuPG.]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=GnuPG&amp;diff=4831</id>
		<title>GnuPG</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=GnuPG&amp;diff=4831"/>
		<updated>2016-01-24T16:57:11Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: この.serviceをそのまま使うとエラーになるため、英語版の最新版に修正&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:セキュリティ]]&lt;br /&gt;
[[en:GnuPG]]&lt;br /&gt;
[[es:GnuPG]]&lt;br /&gt;
[[ru:GnuPG]]&lt;br /&gt;
[http://www.gnupg.org GnuPG] を使うことでデータや通信を暗号化したり署名することができます。多目的の鍵管理システムであり、あらゆる種類の公開鍵ディレクトリのアクセスモジュールです。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
[[公式リポジトリ]]にある {{Pkg|gnupg}} をインストールしてください。&lt;br /&gt;
&lt;br /&gt;
gnupg をインストールすると、GnuPG がパスフレーズエントリに使用するシンプルな PIN やパスフレーズエントリダイアログのコレクションである {{Pkg|pinentry}} もインストールされます。&#039;&#039;pinentry&#039;&#039; はシンボリックリンク {{ic|/usr/bin/pinentry}} によって決められ、デフォルトでは {{ic|/usr/bin/pinentry-gtk-2}} になります。&lt;br /&gt;
&lt;br /&gt;
== 環境変数 ==&lt;br /&gt;
&lt;br /&gt;
=== GNUPGHOME ===&lt;br /&gt;
&lt;br /&gt;
{{ic|$GNUPGHOME}} は全ての設定ファイルを保存するディレクトリを指定するのに GnuPG によって使われます。デフォルトでは {{ic|$GNUPGHOME}} は設定されておらず、代わりに {{ic|$HOME}} が使われます。そのためインストール直後は {{ic|~/.gnupg}} ディレクトリが確認できます。[[自動起動|スタートアップファイル]]に次の行を記述することでデフォルト設定を変更できます:&lt;br /&gt;
&lt;br /&gt;
 export GNUPGHOME=&amp;quot;&#039;&#039;/path/to/directory&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note|デフォルトでは、gnupg ディレクトリの[[ファイルのパーミッションと属性|パーミッション]]は &#039;&#039;700&#039;&#039; に設定されており、ディレクトリのファイルのパーミッションは &#039;&#039;600&#039;&#039; に設定されています。ファイルの読み書きやアクセスの権限を持っているのはディレクトリの所有者だけです (&#039;&#039;r&#039;&#039;,&#039;&#039;w&#039;&#039;,&#039;&#039;x&#039;&#039;)。これはセキュリティ上の理由で設定されていることなので変更してはいけません。ディレクトリやファイルがこのセキュリティ対策に従っていない場合、ファイルやホームディレクトリのパーミッションが安全ではないという警告が表示されます。}}&lt;br /&gt;
&lt;br /&gt;
=== GPG_AGENT_INFO ===&lt;br /&gt;
&lt;br /&gt;
{{ic|GPG_AGENT_INFO}} は gpg-agent を示すのに使われます。コロンで区切られた3つのフィールドから成ります:&lt;br /&gt;
&lt;br /&gt;
# Unix ドメインソケットのパス&lt;br /&gt;
# gpg-agent の PID&lt;br /&gt;
# プロトコルのバージョン&lt;br /&gt;
&lt;br /&gt;
例: {{ic|1=GPG_AGENT_INFO=/tmp/gpg-eFqmSC/S.gpg-agent:7795:1}}。gpg-agent を起動すると、この変数が適切に設定されます。&lt;br /&gt;
&lt;br /&gt;
{{Note|[https://www.gnupg.org/faq/whats-new-in-2.1.html GnuPG 2.1 のアナウンス] によると: GnuPG 2.1 で {{ic|GPG_AGENT_INFO}} の必要性は完全になくなり変数は無視されるようになりました。代わりに、{{ic|$GNUPGHOME/S.gpg-agent}} という決まった名前の Unix ドメインソケットが使われます。エージェントも必要に応じて、ツールがエージェントのサービスを必要としたときに起動します。}}&lt;br /&gt;
&lt;br /&gt;
== 設定ファイル ==&lt;br /&gt;
&lt;br /&gt;
デフォルトは {{ic|~/.gnupg/gpg.conf}} です。デフォルトの場所を変更したい場合は、{{ic|$ gpg --homedir &#039;&#039;path/to/file&#039;&#039;}} と gpg を実行するか {{ic|$GNUPGHOME}} 変数を使って下さい。&lt;br /&gt;
&lt;br /&gt;
どんな長いオプションもこのファイルに追加します。2つのダッシュを書かないで、オプションや必要な引数の名前を書いて下さい。スケルトンファイルは {{ic|/usr/share/gnupg/gpg-conf.skel}} にあります。以下はベーシックな設定ファイルです:&lt;br /&gt;
{{hc|~/.gnupg/gpg.conf|&lt;br /&gt;
default-key &#039;&#039;name&#039;&#039;            # useful in case you manage several keys and want to set a default one&lt;br /&gt;
keyring &#039;&#039;file&#039;&#039;                # will add &#039;&#039;file&#039;&#039; to the current list of keyrings&lt;br /&gt;
trustdb-name &#039;&#039;file&#039;&#039;           # use &#039;&#039;file&#039;&#039; instead of the default trustdb&lt;br /&gt;
homedir &#039;&#039;dir&#039;&#039;                 # set the name of the gnupg home dir to &#039;&#039;dir&#039;&#039; instead of ~/.gnupg&lt;br /&gt;
display-charset utf-8       # bypass all translation and assume that the OS uses native UTF-8 encoding&lt;br /&gt;
keyserver &#039;&#039;name&#039;&#039;              # use &#039;&#039;name&#039;&#039; as your keyserver&lt;br /&gt;
no-greeting                 # suppress the initial copyright message&lt;br /&gt;
armor                       # create ASCII armored output. Default is binary OpenPGP format&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
新規ユーザーのデフォルトオプションを設定したいときは、{{ic|/etc/skel/.gnupg/}} に設定ファイルを置いて下さい。システムに新しいユーザーが追加されたとき、ここからファイルが GnuPG のホームディレクトリにコピーされます。&#039;&#039;addgnupghome&#039;&#039; というシンプルなスクリプトもあり、既存のユーザーに新しい GnuPG ホームディレクトリを作成できます:&lt;br /&gt;
&lt;br /&gt;
 # addgnupghome user1 user2&lt;br /&gt;
&lt;br /&gt;
このコマンドで {{ic|/home/user1/.gnupg}} と {{ic|/home/user2/.gnupg}} が作成されスケルトンディレクトリからファイルがコピーされます。既に GnuPG ホームディレクトリが存在するユーザーは無視されます。&lt;br /&gt;
&lt;br /&gt;
== 基本的な鍵の管理 ==&lt;br /&gt;
&lt;br /&gt;
{{Note|コマンドに &#039;&#039;{{ic|&amp;lt;user-id&amp;gt;}}&#039;&#039; が必要なときは、鍵 ID、指紋、名前やメールアドレスの一部などを指定できます。これについて GnuPG は寛容です。}}&lt;br /&gt;
&lt;br /&gt;
=== 鍵の作成 ===&lt;br /&gt;
&lt;br /&gt;
最初に強力なアルゴリズムを使うように設定して下さい:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.gnupg/gpg.conf|&lt;br /&gt;
personal-digest-preferences SHA512&lt;br /&gt;
cert-digest-algo SHA512&lt;br /&gt;
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed&lt;br /&gt;
personal-cipher-preferences TWOFISH CAMELLIA256 AES 3DES&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
GnuPG の最新版では、デフォルトのアルゴリズムとして SHA256 と AES が使われており、どちらも殆どの場合安全です。しかしながら、2.1 以前の古い GnuPG を使っている場合や、さらに高いセキュリティを求めたい場合、上記のように設定するようにしてください。&lt;br /&gt;
&lt;br /&gt;
秘密鍵を生成するにはターミナルに次を入力:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --full-gen-key&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* {{ic|--full-gen-key}} オプションは {{Pkg|gnupg}}-2.1.0 から使えるようになりました。&lt;br /&gt;
* {{ic|--expert}} を使うことで他の暗号を利用することができます ([[wikipedia:ja:楕円曲線暗号|楕円曲線暗号]]など)。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
いくつか質問がきかれます。一般的に、ほとんどのユーザーは RSA (署名のみ) と RSA (暗号化のみ) の両方の鍵が必要になります。鍵長は2048ビットで十分です。4096ビットを使ったところで [https://www.gnupg.org/faq/gnupg-faq.html#no_default_of_rsa4096 &amp;quot;大した効果はありませんし、無駄に時間がかかるようになるだけです&amp;quot;] 。&lt;br /&gt;
&lt;br /&gt;
副鍵の有効期限の設定は技術的には必須ではありませんが、設定することは悪くありません。標準的なユーザーなら、1年間で十分でしょう。たとえ鍵束へのアクセスを失っても、他の人が有効でないことを知ることができるようになります。鍵を作成した後、新しい鍵を再発行しなくても満了日は延長することができます。&lt;br /&gt;
&lt;br /&gt;
=== 鍵の管理 ===&lt;br /&gt;
&lt;br /&gt;
* {{ic|gpg --edit-key &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}} コマンドを実行するとメニューが表示され、鍵管理に関連するほとんどの作業を行うことができます。以下は満了日を設定する例です:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --edit-key &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
 &amp;gt; key &#039;&#039;number&#039;&#039;&lt;br /&gt;
 &amp;gt; expire &#039;&#039;yyyy-mm-dd&#039;&#039;&lt;br /&gt;
 &amp;gt; save&lt;br /&gt;
 &amp;gt; quit&lt;br /&gt;
&lt;br /&gt;
便利なコマンド:&lt;br /&gt;
 &amp;gt; passwd       # change the passphrase&lt;br /&gt;
 &amp;gt; clean        # compact any user ID that is no longer usable (e.g revoked or expired)&lt;br /&gt;
 &amp;gt; revkey       # revoke a key&lt;br /&gt;
 &amp;gt; addkey       # add a subkey to this key&lt;br /&gt;
 &amp;gt; expire       # change the key expiration time&lt;br /&gt;
&lt;br /&gt;
* 公開鍵の ASCII バージョンを生成 (例: メールなどで配るため):&lt;br /&gt;
&lt;br /&gt;
 $ gpg --armor --output public.key --export &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* PGP 公開鍵サーバーに鍵を登録して、他の人があなたに直接連絡しなくても鍵を取得できるようにする:&lt;br /&gt;
&lt;br /&gt;
 $ gpg  --keyserver pgp.mit.edu --send-keys &#039;&#039;&amp;lt;key-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* ユーザー Bob あてに署名と暗号化:&lt;br /&gt;
&lt;br /&gt;
 $ gpg -se -r Bob &#039;&#039;file&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* クリアテキスト署名を作成:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --clearsign &#039;&#039;file&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== 副鍵のエクスポート ===&lt;br /&gt;
&lt;br /&gt;
複数のデバイスで同じ鍵を使い回す場合、マスター鍵を分離させて、セキュリティが低いシステムでは暗号化に必要な副鍵だけを使いたいという状況が考えられます。&lt;br /&gt;
&lt;br /&gt;
まず、エクスポートしたい副鍵を確認してください:&lt;br /&gt;
&lt;br /&gt;
 $ gpg -K&lt;br /&gt;
&lt;br /&gt;
エクスポートする副鍵だけを選択:&lt;br /&gt;
&lt;br /&gt;
 $ gpg -a --export-secret-subkeys [subkey id]! &amp;gt; /tmp/subkey.gpg&lt;br /&gt;
&lt;br /&gt;
{{Warning|If you forget to add the !, all of your subkeys will be exported.}}&lt;br /&gt;
&lt;br /&gt;
ここで作業を終えても良いですが、パスフレーズの変更もしておくと安全です。一時フォルダに鍵をインポートします:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --homedir /tmp/gpg --import /tmp/subkey.gpg&lt;br /&gt;
 $ gpg --homedir /tmp/gpg --edit-key &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
 &amp;gt; passwd&lt;br /&gt;
 &amp;gt; save&lt;br /&gt;
 $ gpg --homedir /tmp/gpg -a --export-secret-subkeys [subkey id]! &amp;gt; /tmp/subkey.altpass.gpg&lt;br /&gt;
&lt;br /&gt;
{{Note|マスター鍵が存在しない、また、マスター鍵のパスワードが変更されていないという警告が表示されますが、変更したのは副鍵のパスワードなので無視してかまいません。}}&lt;br /&gt;
&lt;br /&gt;
これで、他のデバイスで {{ic|/tmp/subkey.altpass.gpg}} を使うことができます。&lt;br /&gt;
&lt;br /&gt;
=== 副鍵の使用 ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|何か特段の事情がないかぎり、有効期限が切れたり無効になった副鍵を削除しないでください。削除してしまうとその副鍵で暗号化したファイルを復号化できなくなってしまいます。満了した、または無効のキーを削除するのは他のユーザーの鍵束を整理するときだけにしてください。}}&lt;br /&gt;
&lt;br /&gt;
副鍵を設定して一定期間後に満了したら、新しい副鍵を作成できます。他のユーザーが鍵束を更新できるように数週間前に行うようにしましょう。&lt;br /&gt;
&lt;br /&gt;
{{Note|新しい鍵を作成する必要はありません。期限がきて使えなくなっただけだからです。有効期間を延長することができます。}}&lt;br /&gt;
&lt;br /&gt;
* 新しい副鍵を作成 (署名と暗号化の鍵の両方)&lt;br /&gt;
&lt;br /&gt;
 $ gpg --edit-key &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
 &amp;gt; addkey&lt;br /&gt;
&lt;br /&gt;
そして質問に答えて下さい (推奨される設定については前のセクションを参照)。&lt;br /&gt;
&lt;br /&gt;
* 変更を保存:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; save&lt;br /&gt;
&lt;br /&gt;
* キーサーバーにアップデート:&lt;br /&gt;
&lt;br /&gt;
 $ gpg  --keyserver pgp.mit.edu --send-keys &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|満了した副鍵を失効させる必要はありません、また、良い行いとは言えません。しょっちゅう鍵を無効化させているようでしたら、他人はあなたを信用しなくなるかもしれません。}}&lt;br /&gt;
&lt;br /&gt;
=== 鍵のインポート ===&lt;br /&gt;
&lt;br /&gt;
* 公開鍵を公開鍵束にインポート:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --import public.key&lt;br /&gt;
&lt;br /&gt;
* 秘密鍵を秘密鍵束にインポート:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --import private.key&lt;br /&gt;
&lt;br /&gt;
* キーサーバーから鍵をインポート (&#039;--keyserver&#039; を省略した場合、デフォルトのサーバーが使われます):&lt;br /&gt;
&lt;br /&gt;
 $ gpg --keyserver pgp.mit.edu --recv-keys &amp;lt;keyid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 鍵を表示 ===&lt;br /&gt;
&lt;br /&gt;
* 公開鍵束の鍵:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --list-keys&lt;br /&gt;
&lt;br /&gt;
* 秘密鍵束の鍵:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --list-secret-keys&lt;br /&gt;
&lt;br /&gt;
== 暗号化と復号化 ==&lt;br /&gt;
&lt;br /&gt;
暗号化や復号化をするときは複数の秘密鍵を使用することが可能です。複数の鍵を使うときは使用する鍵を選択する必要があります。{{ic|-u &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}} オプションや {{ic|--local-user &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}} オプションを使うことで選択できます。このオプションを使うとデフォルトの鍵を使用する代わりに指定された鍵を使用します。&lt;br /&gt;
&lt;br /&gt;
ファイルを暗号化するには、次を使用:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --encrypt -o secret.tar.gpg secret.tar&lt;br /&gt;
&lt;br /&gt;
* 受取人を変更したい場合は {{ic|-r &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}} オプションで変更できます (または {{ic|--recipient &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039;}})。&lt;br /&gt;
* gnupg を使えば機密文書を暗号化できますが、一度に複数のファイルを暗号化することはできません。ディレクトリやファイルシステム全体を暗号化したいときは、[[TrueCrypt]] や [[EncFS]] などを使用するか、tarball にファイルをまとめて暗号化すると良いでしょう。&lt;br /&gt;
&lt;br /&gt;
ファイルを復号化するには、次を使用:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --decrypt secret.tar.gpg&lt;br /&gt;
&lt;br /&gt;
パスフレーズの入力が求められます。&lt;br /&gt;
&lt;br /&gt;
=== パスワードの暗号化 ===&lt;br /&gt;
&lt;br /&gt;
パスワードを暗号化すれば、設定ファイルに平文で書き込まれなくなります。メールのパスワードなどが良い例でしょう。&lt;br /&gt;
&lt;br /&gt;
まずパスワードを記述したファイルを作成してください。パスワードの後に空行を&#039;&#039;&#039;一行&#039;&#039;&#039;だけ追加しておく必要があります。そうしないとファイルを評価するときに gpg がエラーメッセージを返します。&lt;br /&gt;
&lt;br /&gt;
そして次を実行:&lt;br /&gt;
&lt;br /&gt;
 $ gpg -e -a -r &#039;&#039;&amp;lt;user-id&amp;gt;&#039;&#039; &#039;&#039;your_password_file&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{ic|-e}} は encrypt、{{ic|-a}} は armor (ASCII 出力)、{{ic|-r}} は受取人のユーザー ID です。&lt;br /&gt;
&lt;br /&gt;
新しく {{ic|&#039;&#039;your_password_file&#039;&#039;.asc}} ファイルが作られます。&lt;br /&gt;
&lt;br /&gt;
== gpg-agent ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;gpg-agent&#039;&#039; はキーチェインにパスワードをリクエストしたりキャッシュしたりするのに使われるデーモンです。メールクライアントなど外部のプログラムから GnuPG を利用する場合に便利です。{{ic|gpg.conf}} に次の行を追加することで使用できます:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.gnupg/gpg.conf|use-agent}}&lt;br /&gt;
&lt;br /&gt;
この設定によって GnuPG はパスワードが必要になった時にエージェントを使うようになります。ただし、あらかじめエージェントを実行しておく必要があります。エージェントを自動的に起動するには、{{ic|.xinitrc}} や {{ic|.bash_profile}} に以下のエントリを追加してください。{{ic|$GNUPGHOME}} を変更していた場合は envfile のパスを忘れずに変更するようにしてください。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.bash_profile|2=&amp;lt;nowiki&amp;gt;&lt;br /&gt;
envfile=&amp;quot;$HOME/.gnupg/gpg-agent.env&amp;quot;&lt;br /&gt;
if [[ -e &amp;quot;$envfile&amp;quot; ]] &amp;amp;&amp;amp; kill -0 $(grep GPG_AGENT_INFO &amp;quot;$envfile&amp;quot; | cut -d: -f 2) 2&amp;gt;/dev/null; then&lt;br /&gt;
    eval &amp;quot;$(cat &amp;quot;$envfile&amp;quot;)&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
    eval &amp;quot;$(gpg-agent --daemon --enable-ssh-support --write-env-file &amp;quot;$envfile&amp;quot;)&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
export GPG_AGENT_INFO  # the env file does not contain the export statement&lt;br /&gt;
export SSH_AUTH_SOCK   # enable gpg-agent for ssh&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
その後、セッションを一度ログアウトしてからログインしなおして下さい。&#039;&#039;gpg-agent&#039;&#039; が有効になっているか確認:&lt;br /&gt;
&lt;br /&gt;
 $ pgrep gpg-agent&lt;br /&gt;
&lt;br /&gt;
=== 設定 ===&lt;br /&gt;
&lt;br /&gt;
gpg-agent は {{ic|~/.gnupg/gpg-agent.conf}} ファイルで設定することができます。設定オプションは {{ic|man gpg-agent}} に記載されています。例えば、未使用の鍵の cache ttl を変更することができます:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.gnupg/gpg-agent.conf|&lt;br /&gt;
default-cache-ttl 3600&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|セッションを通してパスフレーズをキャッシュするには、次のコマンドを実行してください:&lt;br /&gt;
 $ /usr/lib/gnupg/gpg-preset-passphrase --preset XXXXXX&lt;br /&gt;
&lt;br /&gt;
XXXX は鍵輪に置き換えてください。鍵輪の値は {{ic|gpg --with-keygrip -K}} を実行することで取得できます。パスフレーズは {{ic|gpg-agent}} が再起動されるまで保存されます。{{ic|default-cache-ttl}} の値を設定した場合、そちらが優先されます。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== エージェントのリロード ===&lt;br /&gt;
&lt;br /&gt;
設定を変更した後は、{{ic|gpg-connect-agent}} に {{ic|RELOADAGENT}} という文字列をパイプで渡して、エージェントをリロードしてください。&lt;br /&gt;
&lt;br /&gt;
 $ echo RELOADAGENT | gpg-connect-agent&lt;br /&gt;
&lt;br /&gt;
シェルに {{ic|OK}} と出力されます。&lt;br /&gt;
&lt;br /&gt;
=== pinentry ===&lt;br /&gt;
&lt;br /&gt;
最後に、ユーザーにパスワードを尋ねる方法をエージェントに設定する必要があります。gpg-agent の設定ファイルで設定できます。&lt;br /&gt;
&lt;br /&gt;
デフォルトでは gtk のダイアログが使われます。使用できるオプションは {{ic|info pinentry}} を見て下さい。ダイアログの実装を変更するには {{ic|pinentry-program}} 設定オプションを設定します:&lt;br /&gt;
{{hc|~/.gnupg/gpg-agent.conf|&lt;br /&gt;
&lt;br /&gt;
# PIN entry program&lt;br /&gt;
# pinentry-program /usr/bin/pinentry-curses&lt;br /&gt;
# pinentry-program /usr/bin/pinentry-qt4&lt;br /&gt;
# pinentry-program /usr/bin/pinentry-kwallet&lt;br /&gt;
&lt;br /&gt;
pinentry-program /usr/bin/pinentry-gtk-2&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|/usr/bin/pinentry-kwallet}} を使うには {{Pkg|kwalletcli}} パッケージをインストールする必要があります。}}&lt;br /&gt;
&lt;br /&gt;
変更を行った後は、gpg-agent をリロードしてください。&lt;br /&gt;
&lt;br /&gt;
=== systemd ユーザーで gpg-agent を起動 ===&lt;br /&gt;
&lt;br /&gt;
[[Systemd/ユーザー]] 機能を使ってエージェントを起動することが可能です。&lt;br /&gt;
&lt;br /&gt;
systemd ユニットファイルを作成:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/systemd/user/gpg-agent.service|2=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=GnuPG private key agent&lt;br /&gt;
IgnoreOnIsolate=true&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=forking&lt;br /&gt;
ExecStart=/usr/bin/gpg-agent --daemon --homedir=%h/.gnupg&lt;br /&gt;
ExecStop=/usr/bin/pkill gpg-agent&lt;br /&gt;
Restart=on-abort&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* {{ic|GNUPGHOME}} など、サービスに環境変数を設定する必要があります。詳しくは [[systemd/ユーザー#環境変数]] を見て下さい。&lt;br /&gt;
* gnupg ホームディレクトリが {{ic|~/.gnupg}} の場合、パスを指定する必要はありません。&lt;br /&gt;
* {{ic|gpg -agent}} は標準ソケットを使いません。代わりに gnupg のホームディレクトリにある {{ic|S.gpg-agent}} という名前のソケットを使います。environment ファイルを読み込んで {{ic|/tmp}} に作成されたランダムなソケットのパスを取得するスクリプトは忘れることができます。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|gpg-agent が実行していること、接続を待機していることを確認するには、次のコマンドを実行してください: {{ic|$ gpg-connect-agent}}。設定が問題なければ、プロンプトが表示されます (&#039;&#039;bye&#039;&#039; や &#039;&#039;quit&#039;&#039; と入力すれば接続が終了します)。}}&lt;br /&gt;
&lt;br /&gt;
=== 無人のパスフレーズ ===&lt;br /&gt;
&lt;br /&gt;
GnuPG 2.1.0 から gpg-agent と pinentry の利用が必須になりました。これによって {{ic|--passphrase-fd 0}} コマンドラインオプションによって STDIN からパイプで渡されたパスフレーズの後方互換性が損ねられています。古いリリースと同じような機能を使うには2つのことをする必要があります:&lt;br /&gt;
&lt;br /&gt;
まず、gpg-agent の設定を編集して &#039;&#039;loopback&#039;&#039; pinentry モードを許可してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=~/.gnupg/gpg-agent.conf|2=&lt;br /&gt;
allow-loopback-pinentry&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
gpg-agent プロセスが実行している場合は再起動して変更を適用します。&lt;br /&gt;
&lt;br /&gt;
次に、更新する必要があるアプリケーションに以下のようにコマンドラインパラメータを含めて loopback モードを使用します:&lt;br /&gt;
&lt;br /&gt;
 $ gpg --pinentry-mode loopback ...&lt;br /&gt;
&lt;br /&gt;
もしくは、コマンドラインで設定ができない場合、オプションを設定に追加します:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=~/.gnupg/gpg.conf|2=&lt;br /&gt;
pinentry-mode loopback&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|上流の開発者は &#039;&#039;gpg.conf&#039;&#039; で &#039;&#039;pinentry-mode loopback&#039;&#039; を設定すると他の機能が使えなくなる可能性があると示唆しています。出来るかぎりコマンドラインオプションを使うようにして下さい [https://bugs.g10code.com/gnupg/issue1772]。}}&lt;br /&gt;
&lt;br /&gt;
== キーサインパーティ ==&lt;br /&gt;
&lt;br /&gt;
キーサーバーやキーリングにある鍵の正当性をユーザーが確認 (つまり鍵の持ち主が本人であることを確認) できるように、PGP/GPG はいわゆる信頼の輪 (&amp;quot;Web of Trust&amp;quot;) を利用しています。信頼の輪を維持するために様々なハッカーイベントが開かれており、キーサインパーティはそのひとつです。&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Zimmermann–Sassaman key-signing protocol|Zimmermann-Sassaman]] 鍵署名プロトコルはキーサインパーティを効果的に行うための方式です。[http://www.cryptnet.net/fdp/crypto/keysigning_party/en/keysigning_party.html こちら] にハウツー記事があります。&lt;br /&gt;
&lt;br /&gt;
=== caff ===&lt;br /&gt;
&lt;br /&gt;
キーサインパーティの後、鍵に署名したり所有者に署名を送るのを簡略化するために、&#039;&#039;caff&#039;&#039; というツールを使うことができます。AUR のパッケージ {{AUR|caff-svn}} でインストールすることができ、{{AUR|signing-party-svn}} パッケージなど他の便利なツールにも付属しています。どちらにせよ、AUR から大量の依存パッケージをインストールすることになります。また、以下のように CPAN からインストールすることも可能です:&lt;br /&gt;
 cpanm Any::Moose&lt;br /&gt;
 cpanm GnuPG::Interface&lt;br /&gt;
&lt;br /&gt;
所有者に署名を送信するには [[Wikipedia:ja:メール転送エージェント|MTA]] が必要です。MTA を設定していない場合、[[msmtp]] をインストールして下さい。&lt;br /&gt;
&lt;br /&gt;
== スマートカード ==&lt;br /&gt;
&lt;br /&gt;
{{Note|{{Pkg|pcsclite}} と {{Pkg|libusb-compat}} をインストールして、{{ic|pcscd.service}} サービスを [[systemd#ユニットを使う|systemd]] で実行する必要があります。}}&lt;br /&gt;
&lt;br /&gt;
GnuPG はスマートカードリーダーのインターフェイスとして &#039;&#039;scdaemon&#039;&#039; を使います。詳しくは [[man ページ]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== GnuPG のみ設定 ===&lt;br /&gt;
&lt;br /&gt;
GnuPG ベース以外のカードを使う予定がない場合は、{{ic|~/.gnupg/scdaemon.conf}} の {{Ic|reader-port}} パラメータを確認してください。&#039;0&#039; が最初に利用できるシリアルポートリーダーを、&#039;32768&#039; (デフォルト) が最初の USB リーダーを示しています。&lt;br /&gt;
&lt;br /&gt;
=== GnuPG と OpenSC ===&lt;br /&gt;
&lt;br /&gt;
opensc ドライバーであらゆるスマートカードを使う場合は (例: いろいろな国の ID カード)、GnuPG の設定に注意する必要があります。何も設定をしていないと {{Ic|gpg --card-status}} を使った時に以下のようなメッセージが表示されることがあります:&lt;br /&gt;
&lt;br /&gt;
 gpg: selecting openpgp failed: ec=6.108&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、scdaemon はデバイスに直接接続しようとします。リーダーが他のプロセスによって使用中だとこの接続は失敗します。例えば: OpenSC によって使用される pcscd デーモン。この状況に対処するには、opensc と同じ基盤のドライバーを使って一緒に動作できるようにする必要があります。scdaemon に pcscd を使用させるため、{{ic|~/.gnupg/scdaemon.conf}} から {{Ic|reader-port}} を削除して、{{ic|libpcsclite.so}} ライブラリの場所を指定し、ccid を無効化してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.gnupg/scdaemon.conf|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
pcsc-driver /usr/lib/libpcsclite.so&lt;br /&gt;
card-timeout 5&lt;br /&gt;
disable-ccid&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
OpenSC を使わない場合は {{Ic|man scdaemon}} をチェックしてください。&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== Not enough random bytes available ===&lt;br /&gt;
鍵を生成するときに、gpg は以下のエラーを表示することがあります:&lt;br /&gt;
 Not enough random bytes available. Please do some other work to give the OS a chance to collect more entropy!&lt;br /&gt;
残っているエントロピーを確認するには、カーネルパラメータをチェックしてください:&lt;br /&gt;
 cat /proc/sys/kernel/random/entropy_avail&lt;br /&gt;
&lt;br /&gt;
エントロピーがたくさんある健康的な Linux 環境ならマックスの 4,096 ビットに近い値が返されます。返ってくる値が 200 以下の場合、システムのエントロピーが足りていません。&lt;br /&gt;
&lt;br /&gt;
エントロピー問題を解決するには、メッセージ通りのことをするのがベストです (例: ディスクを動かす、マウスを動かす、wiki を編集する - 何でもエントロピーの生成に繋がります)。それでも問題が解決しない場合、エントロピーを使い果たしているサービスが何なのかチェックして、しばらくそのサービスを停止してみてください。サービスを停止できない場合、[[乱数生成#高速な RNG]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== su ===&lt;br /&gt;
&lt;br /&gt;
{{Ic|pinentry}} を使う場合、使用するターミナルデバイス (例: {{Ic|/dev/tty1}}) の適切なパーミッションが必要です。しかしながら、&#039;&#039;su&#039;&#039; (または &#039;&#039;sudo&#039;&#039;) を使用すると、所有権は元のユーザーに残り、新しいユーザーにはなくなります。これでは pinentry はたとえ root であっても起動しません。pinentry を使用する (つまりエージェントで gpg を使用する) 前にデバイスのパーミッションを同じ所に変更する必要があります。root で gpg を実行する場合、gpg を使用する直前に所有者を root に変更してください:&lt;br /&gt;
&lt;br /&gt;
 chown root /dev/ttyN  # where N is the current tty&lt;br /&gt;
&lt;br /&gt;
そして gpg を使用した後に元に戻して下さい。おそらく {{Ic|/dev/pts/}} と同じのが正しいです。&lt;br /&gt;
&lt;br /&gt;
{{Note|The owner of tty &#039;&#039;must&#039;&#039; match with the user for which pinentry is running. Being part of the group {{Ic|tty}} &#039;&#039;&#039;is not&#039;&#039;&#039; enough.}}&lt;br /&gt;
&lt;br /&gt;
=== エージェントがファイルの終末についてエラーを表示する ===&lt;br /&gt;
&lt;br /&gt;
デフォルトの pinentry プログラムは pinentry-gtk-2 であり、D-Bus セッションバスを正しく実行する必要があります。詳しくは[[一般的なトラブルシューティング#セッションのパーミッション]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
もしくは、{{ic|pinentry-qt}} を使うこともできます。[[#pinentry]] を参照。&lt;br /&gt;
&lt;br /&gt;
=== KGpg 設定のパーミッション ===&lt;br /&gt;
&lt;br /&gt;
There have been issues with {{Pkg|kdeutils-kgpg}} being able to access the {{ic|~/.gnupg/}} options. One issue might be a result of a deprecated &#039;&#039;options&#039;&#039; file, see the [https://bugs.kde.org/show_bug.cgi?id=290221 bug] report.&lt;br /&gt;
&lt;br /&gt;
Another user reported that &#039;&#039;KGpg&#039;&#039; failed to start until the {{ic|~/.gnupg}} folder is set to {{ic|drwxr-xr-x}} permissions. If you require this work-around, ensure that the directory contents retain {{ic|-rw-------}} permissions! Further, report it as a bug to the [https://bugs.kde.org/buglist.cgi?quicksearch=kgpg developers].&lt;br /&gt;
&lt;br /&gt;
=== gnome-keyring と gpg-agent が衝突する ===&lt;br /&gt;
&lt;br /&gt;
Gnome keyring は GPG エージェントコンポーネントを実装していますが、GnuPG バージョン 2.1 から、GnuPG は {{ic|GPG_AGENT_INFO}} 環境変数を無視するようになったため、Gnome keyring を GPG エージェントとして使うことはできません。&lt;br /&gt;
&lt;br /&gt;
=== gnupg バージョン 2.1 にアップグレードすると鍵が&amp;quot;消失&amp;quot;する ===&lt;br /&gt;
&lt;br /&gt;
{{ic|gpg --list-keys}} を実行しても以前まで使っていた鍵が表示されない場合、また、アプリケーションが鍵を見つけられないまたは鍵が不正だとエラーを吐く場合、鍵が新しいフォーマットに移行できていない可能性があります。&lt;br /&gt;
&lt;br /&gt;
[http://jo-ke.name/wp/?p=111 GnuPG invalid packet workaround] を読んで下さい。要約すると、旧式の {{ic|pubring.gpg}} と {{ic|secring.gpg}} ファイルの鍵にはバグが存在しており、新しい {{ic|pubring.kbx}} ファイルと {{ic|private-keys-v1.d/}} サブディレクトリ、そしてディレクトリのファイルによって置き換えられたということが書かれています。以下のコマンドを実行することで消失した鍵を復旧させることができるかもしれません:&lt;br /&gt;
&lt;br /&gt;
 $ cd&lt;br /&gt;
 $ cp -r .gnupg gnupgOLD&lt;br /&gt;
 $ gpg --export-ownertrust &amp;gt; otrust.txt&lt;br /&gt;
 $ gpg --import .gnupg/pubring.gpg&lt;br /&gt;
 $ gpg --import-ownertrust otrust.txt&lt;br /&gt;
 $ gpg --list-keys&lt;br /&gt;
&lt;br /&gt;
=== (鍵を受信しようとすると) どのキーサーバーでも gpg がフリーズする ===&lt;br /&gt;
&lt;br /&gt;
特定のキーサーバーで鍵を受信しようとして gpg がフリーズしている場合、dirmngr を kill して (問題が起こっていない) 他のキーサーバーにアクセスできるようにする必要があります。そうしないと全てのキーサーバーでフリーズしてしまいます。&lt;br /&gt;
&lt;br /&gt;
=== スマートカードが検出されない ===&lt;br /&gt;
&lt;br /&gt;
スマートカードにアクセスするための権限がない場合、カードを正しく設定して接続しても、{{ic|card error}} が表示されることがあります。&lt;br /&gt;
&lt;br /&gt;
スマートカードにアクセスする必要があるユーザーに {{ic|scard}} を追加することで解決できます。追加したら、以下のような [[Udev#udev ルールを記述する|udev]] ルールを作って下さい:&lt;br /&gt;
{{hc|/etc/udev/rules.d/71-gnupg-ccid.rules|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
ACTION==&amp;quot;add&amp;quot;, SUBSYSTEM==&amp;quot;usb&amp;quot;, ENV{ID_VENDOR_ID}==&amp;quot;1050&amp;quot;, ENV{ID_MODEL_ID}==&amp;quot;0116|0111&amp;quot;, MODE=&amp;quot;664&amp;quot;, GROUP=&amp;quot;scard&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
VENDOR と MODEL は {{ic|lsusb}} の出力にあわせて変更する必要があります。上記は YubikeyNEO の例です。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [http://gnupg.org/gph/en/manual.html GNU Privacy ハンドブック]&lt;br /&gt;
* [http://blog.sanctum.geek.nz/series/linux-crypto/ A more comprehensive gpg Tutorial]&lt;br /&gt;
* [https://www.gnupg.org/faq/gnupg-faq.html GnuPG FAQ]&lt;br /&gt;
* [https://help.riseup.net/en/security/message-security/openpgp/gpg-best-practices gpg.conf recommendations and best practices]&lt;br /&gt;
* [https://github.com/ioerror/torbirdy/blob/master/gpg.conf Torbirdy gpg.conf]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA:Arch_%E3%81%AE%E5%85%A5%E6%89%8B%E3%81%A8%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&amp;diff=4830</id>
		<title>カテゴリ:Arch の入手とインストール</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA:Arch_%E3%81%AE%E5%85%A5%E6%89%8B%E3%81%A8%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&amp;diff=4830"/>
		<updated>2016-01-24T08:35:02Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Category:Getting and installing Arch]]&lt;br /&gt;
このカテゴリは Arch Linux のリリース、ダウンロード、インストールについての記事を含みます。&lt;br /&gt;
&lt;br /&gt;
インストールメディアとその [[GnuPG]] 署名は [https://archlinux.org/download/ Download] から入手できます。ひとつの ISO で32ビットと64ビット両方のアーキテクチャをサポートしています。&lt;br /&gt;
&lt;br /&gt;
== 署名の検証 ==&lt;br /&gt;
&lt;br /&gt;
イメージを使う前に署名を検証することを推奨します。&#039;&#039;HTTP ミラー&#039;&#039; からダウンロードした場合は特にそうです。ミラーはボランティアによって運営されており、[http://www.cs.arizona.edu/stork/packagemanagersecurity/attacks-on-package-managers.html#explanation 悪意のあるイメージを提供している] 可能性もあるからです。&lt;br /&gt;
&lt;br /&gt;
[[GnuPG]] がインストールされているシステムで署名を検証するには、（&#039;&#039;Checksums&#039;&#039; の下にある）&#039;&#039;PGP signature&#039;&#039; を ISO と同じディレクトリにダウンロードし、{{ic|gpg --verify archlinux-&amp;lt;version&amp;gt;-dual.iso.sig}} とします。もし公開鍵が見つからない場合は {{ic|gpg --recv-keys &#039;&#039;key-id&#039;&#039;}} で [[GnuPG#鍵のインポート|インポート]] します。&lt;br /&gt;
&lt;br /&gt;
別の方法としては、既存の Arch Linux システムから {{ic|pacman-key -v archlinux-&amp;lt;version&amp;gt;-dual.iso.sig}} を実行します。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* [https://archlinux.org/download/ archlinux.org] でなくミラーサイトからダウンロードした場合は署名自体が改ざんされていることもあり得ます。その場合は、署名を復号化するのに使われる公開鍵が別の信頼できる鍵によって署名されていることを確認してください。{{ic|gpg}} コマンドを使うと公開鍵の指紋を出力できます。&lt;br /&gt;
* 署名の真正性を検証する別の方法としては、公開鍵の指紋が ISO ファイルを署名した [https://www.archlinux.org/people/developers/ Arch Linux 開発者] の鍵指紋と同じであることを確認します。鍵の信頼性を確認する方法についてより詳しくは[[Wikipedia:ja:公開鍵暗号|公開鍵暗号]]を参照してください。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== インストール方法 ==&lt;br /&gt;
以下の表はインストールメディアを起動する一般的な方法の概要を示しています。インストールの手順中にリモートのリポジトリからパッケージを取得するため、これらの方法はインターネットに接続できることが必要になります。インターネットが利用できない場合は[[オフラインでのパッケージのインストール]]と[[Archiso#インターネットにアクセスできない環境でのインストール]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 方法&lt;br /&gt;
! 記事&lt;br /&gt;
! 条件&lt;br /&gt;
|-&lt;br /&gt;
| イメージをフラッシュメディアや光学ディスクに書き込んでそこから起動する。&lt;br /&gt;
|&lt;br /&gt;
* [[USB インストールメディア]]&lt;br /&gt;
* [[光学ディスクドライブ#焼き込み]]&lt;br /&gt;
|&lt;br /&gt;
* 1台、または多くとも2,3台のマシンへのインストール&lt;br /&gt;
* 直接ブート可能なシステムが得られる&lt;br /&gt;
|-&lt;br /&gt;
| サーバでイメージをマウントし、クライアントにネットワーク越しでそこから起動させる。&lt;br /&gt;
|&lt;br /&gt;
* [[PXE]]&lt;br /&gt;
* [[ディスクレスシステム]]&lt;br /&gt;
|&lt;br /&gt;
* クライアント・サーバモデル&lt;br /&gt;
* （1Gbit以上の）有線ネットワーク接続&lt;br /&gt;
|-&lt;br /&gt;
| 既存の Linux でイメージをマウントし、chroot 環境から Arch をインストールする。&lt;br /&gt;
|&lt;br /&gt;
* [[既存の Linux からインストール]]&lt;br /&gt;
* [[SSH からインストール]]&lt;br /&gt;
|&lt;br /&gt;
* 短いダウンタイムで既存のシステムを置き換える&lt;br /&gt;
* ローカルマシンへのインストール、または [[VNC]] か [[SSH]] 経由でリモートマシンへのインストール&lt;br /&gt;
|-&lt;br /&gt;
| 仮想マシンをセットアップして Arch をゲストとしてインストールする。&lt;br /&gt;
|&lt;br /&gt;
* [[:Category:Hypervisors]]&lt;br /&gt;
* [[既存のインストールを仮想マシンへ（または仮想マシンから）移す]]&lt;br /&gt;
|&lt;br /&gt;
* 仮想化ソフトウェアが動作する OS&lt;br /&gt;
* 学習・テスト・デバッグ用の隔離されたシステムが得られる&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 参考 ==&lt;br /&gt;
* [https://projects.archlinux.org/archiso.git/tree/docs/README.transfer README.transfer]&lt;br /&gt;
* [https://projects.archlinux.org/archiso.git/tree/docs/README.altbootmethods README.altbootmethods]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA:Arch_%E3%81%AE%E5%85%A5%E6%89%8B%E3%81%A8%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&amp;diff=4829</id>
		<title>カテゴリ:Arch の入手とインストール</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA:Arch_%E3%81%AE%E5%85%A5%E6%89%8B%E3%81%A8%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&amp;diff=4829"/>
		<updated>2016-01-24T08:33:46Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: リンクを修正&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Archについて]]&lt;br /&gt;
[[en:Category:Getting and installing Arch]]&lt;br /&gt;
このカテゴリは Arch Linux のリリース、ダウンロード、インストールについての記事を含みます。&lt;br /&gt;
&lt;br /&gt;
インストールメディアとその [[GnuPG]] 署名は [https://archlinux.org/download/ Download] から入手できます。ひとつの ISO で32ビットと64ビット両方のアーキテクチャをサポートしています。&lt;br /&gt;
&lt;br /&gt;
== 署名の検証 ==&lt;br /&gt;
&lt;br /&gt;
イメージを使う前に署名を検証することを推奨します。&#039;&#039;HTTP ミラー&#039;&#039; からダウンロードした場合は特にそうです。ミラーはボランティアによって運営されており、[http://www.cs.arizona.edu/stork/packagemanagersecurity/attacks-on-package-managers.html#explanation 悪意のあるイメージを提供している] 可能性もあるからです。&lt;br /&gt;
&lt;br /&gt;
[[GnuPG]] がインストールされているシステムで署名を検証するには、（&#039;&#039;Checksums&#039;&#039; の下にある）&#039;&#039;PGP signature&#039;&#039; を ISO と同じディレクトリにダウンロードし、{{ic|gpg --verify archlinux-&amp;lt;version&amp;gt;-dual.iso.sig}} とします。もし公開鍵が見つからない場合は {{ic|gpg --recv-keys &#039;&#039;key-id&#039;&#039;}} で [[GnuPG#鍵のインポート|インポート]] します。&lt;br /&gt;
&lt;br /&gt;
別の方法としては、既存の Arch Linux システムから {{ic|pacman-key -v archlinux-&amp;lt;version&amp;gt;-dual.iso.sig}} を実行します。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* [https://archlinux.org/download/ archlinux.org] でなくミラーサイトからダウンロードした場合は署名自体が改ざんされていることもあり得ます。その場合は、署名を復号化するのに使われる公開鍵が別の信頼できる鍵によって署名されていることを確認してください。{{ic|gpg}} コマンドを使うと公開鍵の指紋を出力できます。&lt;br /&gt;
* 署名の真正性を検証する別の方法としては、公開鍵の指紋が ISO ファイルを署名した [https://www.archlinux.org/people/developers/ Arch Linux 開発者] の鍵指紋と同じであることを確認します。鍵の信頼性を確認する方法についてより詳しくは[[Wikipedia:ja:公開鍵暗号|公開鍵暗号]]を参照してください。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== インストール方法 ==&lt;br /&gt;
以下の表はインストールメディアを起動する一般的な方法の概要を示しています。インストールの手順中にリモートのリポジトリからパッケージを取得するため、これらの方法はインターネットに接続できることが必要になります。インターネットが利用できない場合は[[オフラインでのパッケージのインストール]]と[[Archiso#インターネットにアクセスできない環境でのインストール]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 方法&lt;br /&gt;
! 記事&lt;br /&gt;
! 条件&lt;br /&gt;
|-&lt;br /&gt;
| イメージをフラッシュメディアや光学ディスクに書き込んでそこから起動する。&lt;br /&gt;
|&lt;br /&gt;
* [[USB インストールメディア]]&lt;br /&gt;
* [[光学ディスクドライブ#焼き込み]]&lt;br /&gt;
|&lt;br /&gt;
* 1台、または多くとも2,3台のマシンへのインストール&lt;br /&gt;
* 直接ブート可能なシステムが得られる&lt;br /&gt;
|-&lt;br /&gt;
| サーバでイメージをマウントし、クライアントにネットワーク越しでそこから起動させる。&lt;br /&gt;
|&lt;br /&gt;
* [[PXE]]&lt;br /&gt;
* [[ディスクレスシステム]]&lt;br /&gt;
|&lt;br /&gt;
* クライアント・サーバモデル&lt;br /&gt;
* （1Gbit以上の）有線ネットワーク接続&lt;br /&gt;
|-&lt;br /&gt;
| 既存の Linux でイメージをマウントし、chroot 環境から Arch をインストールする。&lt;br /&gt;
|&lt;br /&gt;
* [[既存の Linux からインストール]]&lt;br /&gt;
* [[SSH からインストール]]&lt;br /&gt;
|&lt;br /&gt;
* 短いダウンタイムで既存のシステムを置き換える&lt;br /&gt;
* ローカルマシンへのインストール、または [[VNC]] か [[SSH]] 経由でリモートマシンへのインストール&lt;br /&gt;
|-&lt;br /&gt;
| 仮想マシンをセットアップして Arch をゲストとしてインストールする。&lt;br /&gt;
|&lt;br /&gt;
* [[:Category:Hypervisors]]&lt;br /&gt;
* [[既存のインストールを仮想マシンへ（または仮想マシンから）移す]]&lt;br /&gt;
|&lt;br /&gt;
* 仮想化ソフトウェアが動作する OS&lt;br /&gt;
* 学習・テスト・デバッグ用の隔離されたシステムが得られる&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 参考 ==&lt;br /&gt;
* [https://projects.archlinux.org/archiso.git/tree/docs/README.transfer README.transfer]&lt;br /&gt;
* [https://projects.archlinux.org/archiso.git/tree/docs/README.altbootmethods README.altbootmethods]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA:Arch_%E3%81%AE%E5%85%A5%E6%89%8B%E3%81%A8%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&amp;diff=4828</id>
		<title>カテゴリ:Arch の入手とインストール</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA:Arch_%E3%81%AE%E5%85%A5%E6%89%8B%E3%81%A8%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&amp;diff=4828"/>
		<updated>2016-01-24T08:28:42Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: 英語版より翻訳&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Archについて]]&lt;br /&gt;
[[en:Category:Getting and installing Arch]]&lt;br /&gt;
このカテゴリは Arch Linux のリリース、ダウンロード、インストールについての記事を含みます。&lt;br /&gt;
&lt;br /&gt;
インストールメディアとその [[GnuPG]] 署名は [https://archlinux.org/download/ Download] から入手できます。ひとつの ISO で32ビットと64ビット両方のアーキテクチャをサポートしています。&lt;br /&gt;
&lt;br /&gt;
== 署名の検証 ==&lt;br /&gt;
&lt;br /&gt;
イメージを使う前に署名を検証することを推奨します。&#039;&#039;HTTP ミラー&#039;&#039; からダウンロードした場合は特にそうです。ミラーはボランティアによって運営されており、[http://www.cs.arizona.edu/stork/packagemanagersecurity/attacks-on-package-managers.html#explanation 悪意のあるイメージを提供している] 可能性もあるからです。&lt;br /&gt;
&lt;br /&gt;
[[GnuPG]] がインストールされているシステムで署名を検証するには、（&#039;&#039;Checksums&#039;&#039; の下にある）&#039;&#039;PGP signature&#039;&#039; を ISO と同じディレクトリにダウンロードし、{{ic|gpg --verify archlinux-&amp;lt;version&amp;gt;-dual.iso.sig}} とします。もし公開鍵が見つからない場合は {{ic|gpg --recv-keys &#039;&#039;key-id&#039;&#039;}} で [[GnuPG#鍵のインポート|インポート]] します。&lt;br /&gt;
&lt;br /&gt;
別の方法としては、既存の Arch Linux システムから {{ic|pacman-key -v archlinux-&amp;lt;version&amp;gt;-dual.iso.sig}} を実行します。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* [https://archlinux.org/download/ archlinux.org] でなくミラーサイトからダウンロードした場合は署名自体が改ざんされていることもあり得ます。その場合は、署名を復号化するのに使われる公開鍵が別の信頼できる鍵によって署名されていることを確認してください。{{ic|gpg}} コマンドを使うと公開鍵の指紋を出力できます。&lt;br /&gt;
* 署名の真正性を検証する別の方法としては、公開鍵の指紋が ISO ファイルを署名した [https://www.archlinux.org/people/developers/ Arch Linux 開発者] の鍵指紋と同じであることを確認します。鍵の信頼性を確認する方法についてより詳しくは[[Wikipedia:ja:公開鍵暗号|公開鍵暗号]]を参照してください。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== インストール方法 ==&lt;br /&gt;
以下の表はインストールメディアを起動する一般的な方法の概要を示しています。インストールの手順中にリモートのリポジトリからパッケージを取得するため、これらの方法はインターネットに接続できることが必要になります。インターネットが利用できない場合は[[オフラインでのパッケージのインストール]]と[[Archiso#インターネットにアクセスできない環境でのインストール]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 方法&lt;br /&gt;
! 記事&lt;br /&gt;
! 条件&lt;br /&gt;
|-&lt;br /&gt;
| イメージをフラッシュメディアや光学ディスクに書き込んでそこから起動する。&lt;br /&gt;
|&lt;br /&gt;
* [[USB flash installation media]]&lt;br /&gt;
* [[Optical disc drive#Burning]]&lt;br /&gt;
|&lt;br /&gt;
* 1台、または多くとも2,3台のマシンへのインストール&lt;br /&gt;
* 直接ブート可能なシステムが得られる&lt;br /&gt;
|-&lt;br /&gt;
| サーバでイメージをマウントし、クライアントにネットワーク越しでそこから起動させる。&lt;br /&gt;
|&lt;br /&gt;
* [[PXE]]&lt;br /&gt;
* [[Diskless system]]&lt;br /&gt;
|&lt;br /&gt;
* クライアント・サーバモデル&lt;br /&gt;
* （1Gbit以上の）有線ネットワーク接続&lt;br /&gt;
|-&lt;br /&gt;
| 既存の Linux でイメージをマウントし、chroot 環境から Arch をインストールする。&lt;br /&gt;
|&lt;br /&gt;
* [[Install from existing Linux]]&lt;br /&gt;
* [[Install from SSH]]&lt;br /&gt;
|&lt;br /&gt;
* 短いダウンタイムで既存のシステムを置き換える&lt;br /&gt;
* ローカルマシンへのインストール、または [[VNC]] か [[SSH]] 経由でリモートマシンへのインストール&lt;br /&gt;
|-&lt;br /&gt;
| 仮想マシンをセットアップして Arch をゲストとしてインストールする。&lt;br /&gt;
|&lt;br /&gt;
* [[:Category:Hypervisors]]&lt;br /&gt;
* [[Moving an existing install into (or out of) a virtual machine]]&lt;br /&gt;
|&lt;br /&gt;
* 仮想化ソフトウェアが動作する OS&lt;br /&gt;
* 学習・テスト・デバッグ用の隔離されたシステムが得られる&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 参考 ==&lt;br /&gt;
* [https://projects.archlinux.org/archiso.git/tree/docs/README.transfer README.transfer]&lt;br /&gt;
* [https://projects.archlinux.org/archiso.git/tree/docs/README.altbootmethods README.altbootmethods]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Audit_%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF&amp;diff=4827</id>
		<title>Audit フレームワーク</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Audit_%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF&amp;diff=4827"/>
		<updated>2016-01-24T07:41:39Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: 翻訳完了&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:セキュリティ]]&lt;br /&gt;
[[en:Audit framework]]&lt;br /&gt;
Linux の audit フレームワークは CAPP (Controlled Access Protection Profiles) に準拠した監査システムであり、システム上のセキュリティに関係した（または無関係な）イベントを収集できます。これを使うことにより、システム上で行われた動作を追跡できるようになります。&lt;br /&gt;
&lt;br /&gt;
Linux audit はシステム上で何が起きているかを詳細に分析できる手段であり、システムをよりセキュアにするために役に立ちます。しかしそれ自体がなにかセキュリティを強化するものではありません。つまり、それ自体が悪意のあるコードや様々な悪用からシステムを守ってくれるものではありません。そうではなく、これらの問題を追跡し、セキュリティ対策を施すための情報を audit は提供します。&lt;br /&gt;
&lt;br /&gt;
audit フレームワークはカーネルが報告するイベントを受信し、ログファイルに書き込みます。&lt;br /&gt;
&lt;br /&gt;
{{Note|Linux 3.12の時点では、audit フレームワークは名前空間の実装と互換性がありません。名前空間を使っている場合は audit フレームワークを使わないでください。}}&lt;br /&gt;
{{Note|システムのパフォーマンスに影響を与える可能性があります。}}&lt;br /&gt;
&lt;br /&gt;
==インストール==&lt;br /&gt;
CONFIG_AUDIT を有効にしたカスタムカーネルをインストールします。&lt;br /&gt;
{{Pkg|audit}} をインストールし、次を実行します:&lt;br /&gt;
 # systemctl enable auditd.service&lt;br /&gt;
 # systemctl start auditd.service&lt;br /&gt;
&lt;br /&gt;
audit フレームワークは auditd デーモンから構成されます。アプリケーションやシステムの動作によりカーネルの audit インターフェイスが発動し、audit インターフェイスが生成した audit メッセージを auditd が書き込みます。&lt;br /&gt;
&lt;br /&gt;
このデーモンはいくつかのコマンドとファイルにより制御されます:&lt;br /&gt;
* auditctl : その場でデーモンの挙動をコントロールします。ルールを追加するなど&lt;br /&gt;
* /etc/audit/audit.rules : ルールや auditd のパラメータを記述します&lt;br /&gt;
* aureport : システムの動作レポートを生成します&lt;br /&gt;
* ausearch : イベントを検索します&lt;br /&gt;
* auditspd : イベント通知をディスク上のログに書き込む代わりに他のアプリケーションに中継するデーモンです&lt;br /&gt;
* autrace : プロセスをトレースするためのコマンド。straceに似ています&lt;br /&gt;
* /etc/audit/auditd.conf : ログに関する設定ファイルです&lt;br /&gt;
&lt;br /&gt;
==ルールの追加==&lt;br /&gt;
ルールを追加する前に注意しなければならないのは、audit フレームワークは非常に饒舌で、ルールを実際に運用する前に注意深くテストする必要があることです。実際、たった1つのルールにより2,3分でログを溢れてしまうこともあり得ます。&lt;br /&gt;
&lt;br /&gt;
===ファイルとディレクトリへのアクセスを監査する===&lt;br /&gt;
audit フレームワークの一番簡単な使い方は、特定のファイルへのアクセスをログに記録することです。&lt;br /&gt;
それには {{ic|-w}} オプションを使います。&lt;br /&gt;
一番簡単なルールの例として passwd ファイルへのアクセスを追跡する:&lt;br /&gt;
&lt;br /&gt;
 # auditctl -w /etc/passwd -p rwxa&lt;br /&gt;
&lt;br /&gt;
フォルダへのアクセスを追跡するには:&lt;br /&gt;
&lt;br /&gt;
 # auditctl -w /etc/security/&lt;br /&gt;
&lt;br /&gt;
最初のルールは {{ic|/etc/passwd}} への読み込み {{ic|r}}、書き込み {{ic|w}}、実行 {{ic|x}}、属性変更 {{ic|a}} を追跡します。&lt;br /&gt;
2番目のルールは {{ic|/etc/security/}} への全てのアクセスを追跡します。&lt;br /&gt;
&lt;br /&gt;
有効なルールのリストを表示するには:&lt;br /&gt;
&lt;br /&gt;
 # auditctl -l&lt;br /&gt;
&lt;br /&gt;
全てのルールを削除するには:&lt;br /&gt;
&lt;br /&gt;
 # auditctl -D&lt;br /&gt;
&lt;br /&gt;
ルールが正しく動作することを確認したら、それを {{ic|/etc/audit/audit.rules}} に書きます:&lt;br /&gt;
 &lt;br /&gt;
 -w /etc/audit/audit.rules -p rwxa&lt;br /&gt;
 -w /etc/security/&lt;br /&gt;
&lt;br /&gt;
===システムコールを監査する===&lt;br /&gt;
{{ic|-a}} オプションをつけると、システムコール呼び出しを監査できます。&lt;br /&gt;
&lt;br /&gt;
セキュリティに関連したルールの例として、{{ic|chmod システムコール}} を追跡し、ファイル所有権の変更を検出します:&lt;br /&gt;
&lt;br /&gt;
 auditctl -a entry,always -S chmod&lt;br /&gt;
&lt;br /&gt;
全てのシステムコールのリストを見るには: man syscalls&lt;br /&gt;
&lt;br /&gt;
たくさんのルールと方法が考えられます。man auditctl と man audit.rules を参照してください。&lt;br /&gt;
&lt;br /&gt;
==ログを検索する==&lt;br /&gt;
audit フレームワークにはシステム上で発生したイベントを調べるためのツールがいくつか含まれています。&lt;br /&gt;
&lt;br /&gt;
===PIDを指定する===&lt;br /&gt;
特定の PID に関係するイベントを検索するには {{ic|ausearch}} を使います:&lt;br /&gt;
&lt;br /&gt;
 # ausearch -p 1&lt;br /&gt;
&lt;br /&gt;
このコマンドを実行すると、ルールに応じて記録されたイベントの中から PID 1 (systemd) に関係するものすべてを表示します。&lt;br /&gt;
&lt;br /&gt;
===キーの使い方===&lt;br /&gt;
イベントを管理するためにキーを使うことが推奨されます。&lt;br /&gt;
&lt;br /&gt;
イベントの検索を容易にするために、ルールに {{ic|-k}} オプションをつけます:&lt;br /&gt;
&lt;br /&gt;
 # auditctl -w /etc/passwd -p rwxa -k KEY_pwd&lt;br /&gt;
&lt;br /&gt;
するとキー {{ic|KEY_pwd}} を使ってイベントを検索できるようになります。次のコマンドにより {{ic|/etc/passwd}} に関係するイベントだけを表示できます:&lt;br /&gt;
&lt;br /&gt;
 # ausearch -k KEY_pwd&lt;br /&gt;
&lt;br /&gt;
===異常を探す===&lt;br /&gt;
{{ic|aureport}} を使うと異常なイベントの発生を素早く報告させることができます。異常なイベントとは、ネットワークインターフェイスがプロミスキャスモードに設定された、プロセスまたはスレッドが ENOMEM エラーで異常終了した、などです。&lt;br /&gt;
&lt;br /&gt;
{{ic|aureport}} の一番簡単な使い方は :&lt;br /&gt;
&lt;br /&gt;
 # aureport -n&lt;br /&gt;
&lt;br /&gt;
aureport を使ってカスタムレポートを生成することもできます。man aureport を参照してください。&lt;br /&gt;
&lt;br /&gt;
==どのファイル・システムコールを監査すべきか？==&lt;br /&gt;
ルールを追加するとログの量も増えます。その情報量が処理できる範囲内でなければならないことを忘れないで下さい。&lt;br /&gt;
基本的に、セキュリティに関係したイベント・ファイルは監視しなければなりません。ids、ips、anti-rootkits などです。&lt;br /&gt;
逆に、全ての write システムコールを追跡することはまったく無意味です。ちょっとコンパイルしただけでログが溢れてしまうでしょう。&lt;br /&gt;
&lt;br /&gt;
粒度を非常に小さくして複雑なルールセットを構成することもできます。もしそうしたい場合は auditctl の man ページは読む価値があります。&lt;br /&gt;
&lt;br /&gt;
==他のホストからのログを収集する==&lt;br /&gt;
audit フレームワークはプラグインシステムを備えており、それによりローカルのログファイルをリモートの auditd に送ることができます。&lt;br /&gt;
&lt;br /&gt;
=== ログファイルを送信する ===&lt;br /&gt;
ログファイルをリモートホストに送るには、{{ic|audisp-remote}} プラグインが必要です。これは {{Pkg|audit}} パッケージにより自動的にインストールされます。このパッケージを有効にするには:&lt;br /&gt;
{{hc|head=/etc/audisp/plugins.d/au-remote.conf|output=&lt;br /&gt;
active = yes&lt;br /&gt;
direction = out&lt;br /&gt;
path = /usr/bin/audisp-remote&lt;br /&gt;
type = always&lt;br /&gt;
format = string&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
そしてログの送り先になるリモートホストを設定します：&lt;br /&gt;
&lt;br /&gt;
{{hc|head=/etc/audisp/audisp-remote.conf|output=&lt;br /&gt;
remote_server = domain.name.or.ip&lt;br /&gt;
port = 60&lt;br /&gt;
##local_port = optional&lt;br /&gt;
transport = tcp&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== ログファイルを受け取る ===&lt;br /&gt;
リモートの audispds からのメッセージを受信できるようにするには、tcp オプションをセットするだけです:&lt;br /&gt;
{{hc|head=/etc/audit/auditd.conf|output=&lt;br /&gt;
tcp_listen_port = 60&lt;br /&gt;
tcp_listen_queue = 5&lt;br /&gt;
tcp_max_per_addr = 1&lt;br /&gt;
##tcp_client_ports = 1024-65535 #任意&lt;br /&gt;
tcp_client_max_idle = 0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
これで設定した&#039;&#039;&#039;全部の&#039;&#039;&#039;ホストのログが受信する auditd のログファイルに書き込まれるようになります。&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Audit_%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF&amp;diff=4826</id>
		<title>Audit フレームワーク</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Audit_%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF&amp;diff=4826"/>
		<updated>2016-01-24T01:11:53Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: 英語版より部分的に翻訳&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:セキュリティ]]&lt;br /&gt;
[[en:Audit framework]]&lt;br /&gt;
Linux の audit フレームワークは CAPP (Controlled Access Protection Profiles) に準拠した監査システムであり、システム上のセキュリティに関係した（または無関係な）イベントを収集できます。これを使うことにより、システム上で行われた動作を追跡できるようになります。&lt;br /&gt;
&lt;br /&gt;
Linux audit helps make your system more secure by providing you with a means to analyze what is happening on your system in great detail. It does not, however, provide additional security itself—it does not protect your system from code malfunctions or any kind of exploits. Instead, Audit is useful for tracking these issues and helps you take additional security measures, to prevent them.&lt;br /&gt;
&lt;br /&gt;
audit フレームワークはカーネルが報告するイベントを受信し、ログファイルに書き込みます。&lt;br /&gt;
&lt;br /&gt;
{{Note|Linux 3.12の時点では、audit フレームワークは名前空間の実装と互換性がありません。名前空間を使っている場合は audit フレームワークを使わないでください。}}&lt;br /&gt;
{{Note|システムのパフォーマンスに影響を与える可能性があります。}}&lt;br /&gt;
&lt;br /&gt;
==インストール==&lt;br /&gt;
CONFIG_AUDIT を有効にしたカスタムカーネルをインストールします。&lt;br /&gt;
{{Pkg|audit}} をインストールし、次を実行します:&lt;br /&gt;
 # systemctl enable auditd.service&lt;br /&gt;
 # systemctl start auditd.service&lt;br /&gt;
&lt;br /&gt;
audit フレームワークは auditd デーモンから構成されます。アプリケーションやシステムの動作によりカーネルの audit インターフェイスが発動し、audit インターフェイスが生成した audit メッセージを auditd が書き込みます。&lt;br /&gt;
&lt;br /&gt;
このデーモンはいくつかのコマンドとファイルにより制御されます:&lt;br /&gt;
* auditctl : その場でデーモンの挙動をコントロールします。ルールを追加するなど&lt;br /&gt;
* /etc/audit/audit.rules : ルールや auditd のパラメータを記述します&lt;br /&gt;
* aureport : システムの動作レポートを生成します&lt;br /&gt;
* ausearch : イベントを検索します&lt;br /&gt;
* auditspd : イベント通知をディスク上のログに書き込む代わりに他のアプリケーションに中継するデーモンです&lt;br /&gt;
* autrace : プロセスをトレースするためのコマンド。straceに似ています&lt;br /&gt;
* /etc/audit/auditd.conf : ログに関する設定ファイルです&lt;br /&gt;
&lt;br /&gt;
==ルールの追加==&lt;br /&gt;
ルールを追加する前に注意しなければならないのは、audit フレームワークは非常に饒舌で、ルールを実際に運用する前に注意深くテストする必要があることです。実際、たった1つのルールにより2,3分でログを溢れてしまうこともあり得ます。&lt;br /&gt;
&lt;br /&gt;
===ファイルとディレクトリへのアクセスを監査する===&lt;br /&gt;
audit フレームワークの一番簡単な使い方は、特定のファイルへのアクセスをログに記録することです。&lt;br /&gt;
それには {{ic|-w}} オプションを使います。&lt;br /&gt;
一番簡単なルールの例として passwd ファイルへのアクセスを追跡する:&lt;br /&gt;
&lt;br /&gt;
 # auditctl -w /etc/passwd -p rwxa&lt;br /&gt;
&lt;br /&gt;
フォルダへのアクセスを追跡するには:&lt;br /&gt;
&lt;br /&gt;
 # auditctl -w /etc/security/&lt;br /&gt;
&lt;br /&gt;
最初のルールは {{ic|/etc/passwd}} への読み込み {{ic|r}}、書き込み {{ic|w}}、実行 {{ic|x}}、属性変更 {{ic|a}} を追跡します。&lt;br /&gt;
2番目のルールは {{ic|/etc/security/}} への全てのアクセスを追跡します。&lt;br /&gt;
&lt;br /&gt;
有効なルールのリストを表示するには:&lt;br /&gt;
&lt;br /&gt;
 # auditctl -l&lt;br /&gt;
&lt;br /&gt;
全てのルールを削除するには:&lt;br /&gt;
&lt;br /&gt;
 # auditctl -D&lt;br /&gt;
&lt;br /&gt;
ルールが正しく動作することを確認したら、それを {{ic|/etc/audit/audit.rules}} に書きます:&lt;br /&gt;
 &lt;br /&gt;
 -w /etc/audit/audit.rules -p rwxa&lt;br /&gt;
 -w /etc/security/&lt;br /&gt;
&lt;br /&gt;
===システムコールを監査する===&lt;br /&gt;
The audit framework allow you to audit the syscalls performed with the {{ic|-a}} option.&lt;br /&gt;
&lt;br /&gt;
A security related rule is to track the {{ic|chmod syscall}}, to detect file ownership changes :&lt;br /&gt;
&lt;br /&gt;
 auditctl -a entry,always -S chmod&lt;br /&gt;
&lt;br /&gt;
For a list of all syscalls : man syscalls&lt;br /&gt;
&lt;br /&gt;
A lot of rules and posibilities are available, see man auditctl and man audit.rules&lt;br /&gt;
&lt;br /&gt;
==ログを検索する==&lt;br /&gt;
audit フレームワークにはシステム上で発生したイベントを調べるためのツールがいくつか含まれています。&lt;br /&gt;
&lt;br /&gt;
===PIDを指定する===&lt;br /&gt;
特定の PID に関係するイベントを検索するには {{ic|ausearch}} を使います:&lt;br /&gt;
&lt;br /&gt;
 # ausearch -p 1&lt;br /&gt;
&lt;br /&gt;
このコマンドを実行すると、ルールに応じて記録されたイベントの中から PID 1 (systemd) に関係するものすべてを表示します。&lt;br /&gt;
&lt;br /&gt;
===キーの使い方===&lt;br /&gt;
イベントを管理するためにキーを使うことが推奨されます。&lt;br /&gt;
&lt;br /&gt;
イベントの検索を容易にするために、ルールに {{ic|-k}} オプションをつけます:&lt;br /&gt;
&lt;br /&gt;
 # auditctl -w /etc/passwd -p rwxa -k KEY_pwd&lt;br /&gt;
&lt;br /&gt;
するとキー {{ic|KEY_pwd}} を使ってイベントを検索できるようになります。次のコマンドにより {{ic|/etc/passwd}} に関係するイベントだけを表示できます:&lt;br /&gt;
&lt;br /&gt;
 # ausearch -k KEY_pwd&lt;br /&gt;
&lt;br /&gt;
===異常を探す===&lt;br /&gt;
The {{ic|aureport}} tool can be used to quicly report any anormal event performed on the system, it include network interface used in promiscous mode, process or thread crashing or exiting with ENOMEM error etc.&lt;br /&gt;
&lt;br /&gt;
The easiest way to use {{ic|aureport}} is :&lt;br /&gt;
&lt;br /&gt;
 # aureport -n&lt;br /&gt;
&lt;br /&gt;
aureport can be used to generate custom report, see man aureport.&lt;br /&gt;
&lt;br /&gt;
==どのファイル・システムコールを監査すべきか？==&lt;br /&gt;
Keep in mind that each audit rule added will generate logs, so you must be ready to treat this amount of information.&lt;br /&gt;
Basically, each security-related event/file must be monitored, like ids, ips, anti-rootkits etc.&lt;br /&gt;
On the other side, it&#039;s totally useless to track every write syscall, the smallest compilation will fill your logs with this event.&lt;br /&gt;
&lt;br /&gt;
More complex set of rules can be set up, performing auditing on a very fine-grained base. If you want to do so, the man pages of auditctl are worth-reading.&lt;br /&gt;
&lt;br /&gt;
==他のホストからのログを収集する==&lt;br /&gt;
The audit framework has an plugin system which provides the possibility to send local logfiles to an remote auditd.&lt;br /&gt;
&lt;br /&gt;
=== ログファイルを送信する ===&lt;br /&gt;
To send your logfiles to an remote host you need the {{ic|audisp-remote}} plugin which comes automatically with the {{Pkg|audit}} package.&lt;br /&gt;
Activate the plugin:&lt;br /&gt;
{{hc|head=/etc/audisp/plugins.d/au-remote.conf|output=&lt;br /&gt;
active = yes&lt;br /&gt;
direction = out&lt;br /&gt;
path = /usr/bin/audisp-remote&lt;br /&gt;
type = always&lt;br /&gt;
format = string&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
and set the remote host where the logs should be send to:&lt;br /&gt;
&lt;br /&gt;
{{hc|head=/etc/audisp/audisp-remote.conf|output=&lt;br /&gt;
remote_server = domain.name.or.ip&lt;br /&gt;
port = 60&lt;br /&gt;
##local_port = optional&lt;br /&gt;
transport = tcp&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== ログファイルを受け取る ===&lt;br /&gt;
To make audit listen for remote audispds you just need to set the tcp options:&lt;br /&gt;
{{hc|head=/etc/audit/auditd.conf|output=&lt;br /&gt;
tcp_listen_port = 60&lt;br /&gt;
tcp_listen_queue = 5&lt;br /&gt;
tcp_max_per_addr = 1&lt;br /&gt;
##tcp_client_ports = 1024-65535 #optional&lt;br /&gt;
tcp_client_max_idle = 0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Now you can view the logs of &#039;&#039;&#039;all&#039;&#039;&#039; configured hosts in the logfiles of the recieving auditd.&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Graphviz&amp;diff=4825</id>
		<title>Graphviz</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Graphviz&amp;diff=4825"/>
		<updated>2016-01-23T08:09:33Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Applications]]&lt;br /&gt;
[[en:Graphviz]]&lt;br /&gt;
&lt;br /&gt;
Graphviz はグラフを描画するためのパッケージです。独自の DOT 言語で書かれたテキストファイルから様々なフォーマットの画像ファイルを生成することが出来ます。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
[[公式リポジトリ]]から {{Pkg|graphviz}} パッケージをインストールしてください。&lt;br /&gt;
&lt;br /&gt;
== フォント ==&lt;br /&gt;
&lt;br /&gt;
グラフに文字列を含めるためにはフォントをインストールしておく必要があります。フォントのインストール方法については[[フォント]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
日本語を表示するには例えば IPA フォントが使えます:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S otf-ipafont&lt;br /&gt;
&lt;br /&gt;
利用可能なフォントの一覧を表示するには:&lt;br /&gt;
&lt;br /&gt;
 $ fc-list&lt;br /&gt;
&lt;br /&gt;
dot コマンドがどのフォントを使用しているかを確認するには:&lt;br /&gt;
&lt;br /&gt;
 $ dot example.dot -Tpng -o foo.png -v 2&amp;gt;&amp;amp;1 | grep font&lt;br /&gt;
&lt;br /&gt;
== 例 ==&lt;br /&gt;
&lt;br /&gt;
dot ファイルの例です。&lt;br /&gt;
&lt;br /&gt;
{{hc|1=example.dot|2=&lt;br /&gt;
digraph graph_name {&lt;br /&gt;
  graph [&lt;br /&gt;
    charset = &amp;quot;UTF-8&amp;quot;;&lt;br /&gt;
    label = &amp;quot;sample graph&amp;quot;,&lt;br /&gt;
    labelloc = &amp;quot;t&amp;quot;,&lt;br /&gt;
    labeljust = &amp;quot;c&amp;quot;,&lt;br /&gt;
    bgcolor = &amp;quot;#343434&amp;quot;,&lt;br /&gt;
    fontcolor = white,&lt;br /&gt;
    fontsize = 18,&lt;br /&gt;
    style = &amp;quot;filled&amp;quot;,&lt;br /&gt;
    rankdir = TB,&lt;br /&gt;
    margin = 0.2,&lt;br /&gt;
    splines = spline,&lt;br /&gt;
    ranksep = 1.0,&lt;br /&gt;
    nodesep = 0.9&lt;br /&gt;
  ];&lt;br /&gt;
&lt;br /&gt;
  node [&lt;br /&gt;
    colorscheme = &amp;quot;rdylgn11&amp;quot;&lt;br /&gt;
    style = &amp;quot;solid,filled&amp;quot;,&lt;br /&gt;
    fontsize = 16,&lt;br /&gt;
    fontcolor = 6,&lt;br /&gt;
    fontname = &amp;quot;Migu 1M&amp;quot;,&lt;br /&gt;
    color = 7,&lt;br /&gt;
    fillcolor = 11,&lt;br /&gt;
    fixedsize = true,&lt;br /&gt;
    height = 0.6,&lt;br /&gt;
    width = 1.2&lt;br /&gt;
  ];&lt;br /&gt;
&lt;br /&gt;
  edge [&lt;br /&gt;
    style = solid,&lt;br /&gt;
    fontsize = 14,&lt;br /&gt;
    fontcolor = white,&lt;br /&gt;
    fontname = &amp;quot;Migu 1M&amp;quot;,&lt;br /&gt;
    color = white,&lt;br /&gt;
    labelfloat = true,&lt;br /&gt;
    labeldistance = 2.5,&lt;br /&gt;
    labelangle = 70&lt;br /&gt;
  ];&lt;br /&gt;
&lt;br /&gt;
  // node define&lt;br /&gt;
  alpha [shape = box];&lt;br /&gt;
  beta [shape = box];&lt;br /&gt;
  gamma [shape = Msquare];&lt;br /&gt;
  delta [shape = box];&lt;br /&gt;
  epsilon [shape = trapezium];&lt;br /&gt;
  zeta [shape = Msquare];&lt;br /&gt;
  eta;&lt;br /&gt;
  theta [shape = doublecircle];&lt;br /&gt;
&lt;br /&gt;
  // edge define&lt;br /&gt;
  alpha -&amp;gt; beta [label = &amp;quot;a-b&amp;quot;, arrowhead = normal];&lt;br /&gt;
  alpha -&amp;gt; gamma [label = &amp;quot;a-g&amp;quot;];&lt;br /&gt;
  beta -&amp;gt; delta [label = &amp;quot;b-d&amp;quot;];&lt;br /&gt;
  beta -&amp;gt; epsilon [label = &amp;quot;b-e&amp;quot;, arrowhead = tee];&lt;br /&gt;
  gamma -&amp;gt; zeta [label = &amp;quot;g-z&amp;quot;];&lt;br /&gt;
  gamma -&amp;gt; eta [label = &amp;quot;g-e&amp;quot;, style = dotted];&lt;br /&gt;
  delta -&amp;gt; theta [arrowhead = crow];&lt;br /&gt;
  zeta -&amp;gt; theta [arrowhead = crow];&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
このファイルから png 画像を生成するには:&lt;br /&gt;
&lt;br /&gt;
 $ dot -Tpng example.dot -o example.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 参考 ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.graphviz.org/ The official Graphviz website]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Graphviz&amp;diff=4824</id>
		<title>Graphviz</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Graphviz&amp;diff=4824"/>
		<updated>2016-01-23T03:52:16Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: 英語版より翻訳&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Applications]]&lt;br /&gt;
[[en:Graphviz]]&lt;br /&gt;
&lt;br /&gt;
Graphviz はグラフを描画するためのパッケージです。独自の DOT 言語で書かれたテキストファイルから様々なフォーマットの画像ファイルを生成することが出来ます。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
[[公式リポジトリ]]から {{Pkg|graphviz}} パッケージをインストールしてください。&lt;br /&gt;
&lt;br /&gt;
== フォント ==&lt;br /&gt;
&lt;br /&gt;
グラフに文字列を含めるためにはフォントをインストールしておく必要があります。フォントのインストール方法については[[フォント]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
日本語を表示するには例えば IPA フォントが使えます:&lt;br /&gt;
&lt;br /&gt;
 pacman -S otf-ipafont&lt;br /&gt;
&lt;br /&gt;
利用可能なフォントの一覧を表示するには:&lt;br /&gt;
&lt;br /&gt;
 $ fc-list&lt;br /&gt;
&lt;br /&gt;
dot コマンドがどのフォントを使用しているかを確認するには:&lt;br /&gt;
&lt;br /&gt;
 $ dot foo.gv -Tpng -o foo.png -v 2&amp;gt;&amp;amp;1 | grep font&lt;br /&gt;
&lt;br /&gt;
== 例 ==&lt;br /&gt;
&lt;br /&gt;
dot ファイルの例です。&lt;br /&gt;
&lt;br /&gt;
{{hc|1=example.png|2=&lt;br /&gt;
digraph graph_name {&lt;br /&gt;
  graph [&lt;br /&gt;
    charset = &amp;quot;UTF-8&amp;quot;;&lt;br /&gt;
    label = &amp;quot;sample graph&amp;quot;,&lt;br /&gt;
    labelloc = &amp;quot;t&amp;quot;,&lt;br /&gt;
    labeljust = &amp;quot;c&amp;quot;,&lt;br /&gt;
    bgcolor = &amp;quot;#343434&amp;quot;,&lt;br /&gt;
    fontcolor = white,&lt;br /&gt;
    fontsize = 18,&lt;br /&gt;
    style = &amp;quot;filled&amp;quot;,&lt;br /&gt;
    rankdir = TB,&lt;br /&gt;
    margin = 0.2,&lt;br /&gt;
    splines = spline,&lt;br /&gt;
    ranksep = 1.0,&lt;br /&gt;
    nodesep = 0.9&lt;br /&gt;
  ];&lt;br /&gt;
&lt;br /&gt;
  node [&lt;br /&gt;
    colorscheme = &amp;quot;rdylgn11&amp;quot;&lt;br /&gt;
    style = &amp;quot;solid,filled&amp;quot;,&lt;br /&gt;
    fontsize = 16,&lt;br /&gt;
    fontcolor = 6,&lt;br /&gt;
    fontname = &amp;quot;Migu 1M&amp;quot;,&lt;br /&gt;
    color = 7,&lt;br /&gt;
    fillcolor = 11,&lt;br /&gt;
    fixedsize = true,&lt;br /&gt;
    height = 0.6,&lt;br /&gt;
    width = 1.2&lt;br /&gt;
  ];&lt;br /&gt;
&lt;br /&gt;
  edge [&lt;br /&gt;
    style = solid,&lt;br /&gt;
    fontsize = 14,&lt;br /&gt;
    fontcolor = white,&lt;br /&gt;
    fontname = &amp;quot;Migu 1M&amp;quot;,&lt;br /&gt;
    color = white,&lt;br /&gt;
    labelfloat = true,&lt;br /&gt;
    labeldistance = 2.5,&lt;br /&gt;
    labelangle = 70&lt;br /&gt;
  ];&lt;br /&gt;
&lt;br /&gt;
  // node define&lt;br /&gt;
  alpha [shape = box];&lt;br /&gt;
  beta [shape = box];&lt;br /&gt;
  gamma [shape = Msquare];&lt;br /&gt;
  delta [shape = box];&lt;br /&gt;
  epsilon [shape = trapezium];&lt;br /&gt;
  zeta [shape = Msquare];&lt;br /&gt;
  eta;&lt;br /&gt;
  theta [shape = doublecircle];&lt;br /&gt;
&lt;br /&gt;
  // edge define&lt;br /&gt;
  alpha -&amp;gt; beta [label = &amp;quot;a-b&amp;quot;, arrowhead = normal];&lt;br /&gt;
  alpha -&amp;gt; gamma [label = &amp;quot;a-g&amp;quot;];&lt;br /&gt;
  beta -&amp;gt; delta [label = &amp;quot;b-d&amp;quot;];&lt;br /&gt;
  beta -&amp;gt; epsilon [label = &amp;quot;b-e&amp;quot;, arrowhead = tee];&lt;br /&gt;
  gamma -&amp;gt; zeta [label = &amp;quot;g-z&amp;quot;];&lt;br /&gt;
  gamma -&amp;gt; eta [label = &amp;quot;g-e&amp;quot;, style = dotted];&lt;br /&gt;
  delta -&amp;gt; theta [arrowhead = crow];&lt;br /&gt;
  zeta -&amp;gt; theta [arrowhead = crow];&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
このファイルから png 画像を生成するには:&lt;br /&gt;
&lt;br /&gt;
 $ dot -Tpng example.dot -o example.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 参考 ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.graphviz.org/ The official Graphviz website]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E5%AD%A6%E7%BF%92%E8%B3%87%E6%96%99&amp;diff=4792</id>
		<title>学習資料</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E5%AD%A6%E7%BF%92%E8%B3%87%E6%96%99&amp;diff=4792"/>
		<updated>2016-01-15T14:20:03Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: 英語版より翻訳&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:開発]]&lt;br /&gt;
[[en:Learning Resources]]&lt;br /&gt;
==プログラミング/スクリプティング==&lt;br /&gt;
&lt;br /&gt;
===一般的な教材===&lt;br /&gt;
*[http://www.aosabook.org/ The Architecture of Open Source Applications]&lt;br /&gt;
*[http://open-advice.org/ Open Advice] FOSS: 初心者のときに知りたかったこと&lt;br /&gt;
&lt;br /&gt;
====動画====&lt;br /&gt;
*[http://see.stanford.edu/ Stanford Engineering Everywhere (SEE)]&lt;br /&gt;
*[http://webcast.berkeley.edu/ UC Berkeley&#039;s webcasts]&lt;br /&gt;
*[http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/ MIT Course]&lt;br /&gt;
*[http://cs50.tv/2010/fall/ Introduction to Computer Science] ハーバードカレッジの入門コース動画&lt;br /&gt;
*[http://academicearth.org/subjects/computer-science Academic Earth]&lt;br /&gt;
&lt;br /&gt;
===言語===&lt;br /&gt;
&lt;br /&gt;
====[[Wikipedia:Bash (Unix shell)|Bash/Shell]]====&lt;br /&gt;
*[http://mywiki.wooledge.org/BashFAQ Bash FAQ]&lt;br /&gt;
*[http://mywiki.wooledge.org/BashGuide Bash Guide]&lt;br /&gt;
*[http://wiki.bash-hackers.org/start Bash Hacker&#039;s Wiki]&lt;br /&gt;
*[http://steve-parker.org/sh/sh.shtml Shell Scripting: Expert Recipes for Linux, Bash and More]&lt;br /&gt;
*[http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html BASH Programming - Introduction HOW-TO]&lt;br /&gt;
&lt;br /&gt;
====[[Wikipedia:C (programming language)|C]]====&lt;br /&gt;
*[http://cm.bell-labs.com/cm/cs/cbook/ The C Programming Language, Second Edition]&lt;br /&gt;
*[http://c.learncodethehardway.org/ Learn C The Hard Way]&lt;br /&gt;
&lt;br /&gt;
====[[Wikipedia:C++|C++]]====&lt;br /&gt;
&lt;br /&gt;
====[http://www.erlang.org/ Erlang]====&lt;br /&gt;
*[http://learnyousomeerlang.com/ Learn you Some Erlang for Great Good!]&lt;br /&gt;
&lt;br /&gt;
====[http://haskell.org/ Haskell]====&lt;br /&gt;
*[http://learnyouahaskell.com/ Learn You a Haskell for Great Good!]&lt;br /&gt;
*[http://book.realworldhaskell.org/ Real World Haskell]&lt;br /&gt;
&lt;br /&gt;
====[http://www.oracle.com/technetwork/java/ Java]====&lt;br /&gt;
*[http://math.hws.edu/javanotes/ Introduction to Programming Using Java]&lt;br /&gt;
&lt;br /&gt;
====[[Wikipedia:JavaScript|JavaScript]]====&lt;br /&gt;
*[http://shop.oreilly.com/product/9780596517748.do JavaScript: The Good Parts]&lt;br /&gt;
*[http://eloquentjavascript.net/ Eloquent JavaScript: A Modern Introduction to Programming]&lt;br /&gt;
&lt;br /&gt;
====[http://www.lua.org/ Lua]====&lt;br /&gt;
&lt;br /&gt;
====[http://www.perl.org/ Perl]====&lt;br /&gt;
*[http://hop.perl.plover.com/ Higher-Order Perl]&lt;br /&gt;
*[http://onyxneon.com/books/modern_perl/ Modern Perl]&lt;br /&gt;
&lt;br /&gt;
====[http://php.org/ PHP]====&lt;br /&gt;
&lt;br /&gt;
====[http://python.org/ Python]====&lt;br /&gt;
*[http://learnpythonthehardway.org/ Learn Python The Hard Way]&lt;br /&gt;
*[http://diveintopython3.ep.io/ Dive Into Python 3]&lt;br /&gt;
*[http://www.greenteapress.com/thinkpython/thinkpython.html Think Python: How to Think Like a Computer Scientist]&lt;br /&gt;
&lt;br /&gt;
====[http://www.ruby-lang.org/ Ruby]====&lt;br /&gt;
*[https://en.wikipedia.org/wiki/Why&#039;s_(poignant)_Guide_to_Ruby why&#039;s (poignant) Guide to Ruby]&lt;br /&gt;
*[http://ruby.learncodethehardway.org/ Learn Ruby The Hard Way]&lt;br /&gt;
&lt;br /&gt;
==[[Wikipedia:組版|組版]]/[[Wikipedia:マークアップ言語|マークアップ言語]]==&lt;br /&gt;
&lt;br /&gt;
===([[Wikipedia:XHTML|X]])[[Wikipedia:HTML|HTML]]===&lt;br /&gt;
*[http://diveintohtml5.info/ Dive into HTML5]&lt;br /&gt;
&lt;br /&gt;
===[http://www.latex-project.org/ LaTeX]===&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=SystemTap&amp;diff=4790</id>
		<title>SystemTap</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=SystemTap&amp;diff=4790"/>
		<updated>2016-01-15T06:50:51Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: 一旦翻訳完了&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:カーネル]]&lt;br /&gt;
[[en:SystemTap]]&lt;br /&gt;
[[zh-cn:SystemTap]]&lt;br /&gt;
[http://sourceware.org/systemtap/ SystemTap] は動作中の Linux システムについての情報収集を簡略化するためのフリーソフトウェア (GPL) インフラストラクチャを提供します。&lt;br /&gt;
&lt;br /&gt;
==SystemTap==&lt;br /&gt;
&lt;br /&gt;
[[AUR]] から SystemTap をインストールするだけです: {{AUR|systemtap}}。上流での最新のリリースと比較してみてください [https://sourceware.org/systemtap/wiki/SystemTapReleases]。また [https://sourceware.org/git/?p=systemtap.git;a=summary] にあるソースからビルドすることも検討してください。新しいカーネルやディストロのサポートは最初にここに現れます。&lt;br /&gt;
&lt;br /&gt;
==標準的なカーネル==&lt;br /&gt;
&lt;br /&gt;
すくなくとも {{Pkg|linux-headers}} がインストールされている必要があります。&lt;br /&gt;
&lt;br /&gt;
Arch は配布バイナリ（カーネルを含む）からデバッグ情報を取り除いている（strip している）ので、systemtap の機能の多くは利用できません。なので &#039;&#039;/usr/share/doc/systemtap/examples&#039;&#039; にある例の多くは動作しません。しかし [https://sourceware.org/systemtap/man/stapprobes.3stap.html stapprobes man page] で動作する NON-DWARF および AUTO-DWARF のプローブタイプを見ることができます。例えば:&lt;br /&gt;
&lt;br /&gt;
* カーネルトレースポイント: kernel.trace(&amp;quot;*&amp;quot;)&lt;br /&gt;
* ユーザースペースプローブ: process(&amp;quot;...&amp;quot;).function(&amp;quot;...&amp;quot;)  (-g をつけて自分でビルドしたプログラムに限る)&lt;br /&gt;
* ユーザースペースマーカー: process(&amp;quot;...&amp;quot;).mark(&amp;quot;...&amp;quot;)   (&#039;&#039;&amp;lt;sys/sdt.h&amp;gt;&#039;&#039; のマーカーをつけて configure されていれば)&lt;br /&gt;
* perfctrベースのプローブ: perf.*&lt;br /&gt;
* NON-DWARF カーネルプローブ: kprobe.function(&amp;quot;...&amp;quot;) と nd_syscall.* tapset  (/boot/System.map* ファイルがあれば。下記参照)&lt;br /&gt;
&lt;br /&gt;
==カーネルのリビルド==&lt;br /&gt;
&lt;br /&gt;
SystemTap を実行するために &#039;&#039;linux-custom&#039;&#039; パッケージをビルドすることを考えているかもしれません。しかしオリジナルの {{Pkg|linux}} パッケージをリビルドすることは簡単で効率的です。[https://wiki.archlinux.org/index.php/Kernels/Compilation/Traditional] も参照してください。&lt;br /&gt;
&lt;br /&gt;
===準備===&lt;br /&gt;
最初に {{ic|&amp;lt;nowiki&amp;gt;ABSROOT=. abs core/linux; cd core/linux&amp;lt;/nowiki&amp;gt;}} を実行してオリジナルのカーネルビルドファイルを取得します。&lt;br /&gt;
そして {{ic|makepkg --verifysource}} を実行して追加のファイルを取得します。この検証をしておけば「チェックサムの更新」のステップを飛ばしても安全です。&lt;br /&gt;
&lt;br /&gt;
===config の修正===&lt;br /&gt;
&#039;&#039;&#039;config&#039;&#039;&#039; (32-bit システム向け) または &#039;&#039;&#039;config.x86_64&#039;&#039;&#039; (64-bit システム向け) を編集して以下のオプションを有効にします:&lt;br /&gt;
* CONFIG_KPROBES=y&lt;br /&gt;
* CONFIG_KPROBES_SANITY_TEST=n&lt;br /&gt;
* CONFIG_KPROBE_EVENT=y&lt;br /&gt;
* CONFIG_NET_DCCPPROBE=m&lt;br /&gt;
* CONFIG_NET_SCTPPROBE=m&lt;br /&gt;
* CONFIG_NET_TCPPROBE=y&lt;br /&gt;
* CONFIG_DEBUG_INFO=y&lt;br /&gt;
* CONFIG_DEBUG_INFO_REDUCED=n&lt;br /&gt;
* CONFIG_X86_DECODER_SELFTEST=n&lt;br /&gt;
デフォルトでは &#039;&#039;CONFIG_DEBUG_INFO&#039;&#039; と &#039;&#039;CONFIG_DEBUG_INFO_REDUCED&#039;&#039; だけが設定されていません。&lt;br /&gt;
&lt;br /&gt;
現在の core/linux (3.15.2 でテスト済み) では、以下の行を config.[x86_64] に追加するだけです:&lt;br /&gt;
{{hc|x86_64|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
echo &#039;&lt;br /&gt;
CONFIG_DEBUG_INFO=y&lt;br /&gt;
CONFIG_DEBUG_INFO_REDUCED=n&lt;br /&gt;
&#039; &amp;gt;&amp;gt; config.x86_64&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;これらの行を自己メンテナンスされているスクリプトに追加するときは CONFIG_* の行の前にスペースを入れないでください。.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===チェックサムを更新する===&lt;br /&gt;
&#039;&#039;ソースファイルが正しいと確信できるときはこのステップを飛ばしても安全です&#039;&#039;。&lt;br /&gt;
&lt;br /&gt;
{{ic|md5sum config[.x86_64]}} を実行して新しい md5sum を計算します。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PKGBUILD&#039;&#039;&#039; ファイル中で {{ic|&amp;lt;nowiki&amp;gt;md5sums=(&#039;sum-of-first&#039; ... &#039;sum-of-last&#039;)&amp;lt;/nowiki&amp;gt;}} は&lt;br /&gt;
{{ic|&amp;lt;nowiki&amp;gt;source=(&#039;first-source&#039; ... &#039;last-source&#039;)&amp;lt;/nowiki&amp;gt;}} と同じ順序で並んでいます。新しい md5sum を正しい位置に入れてください。&lt;br /&gt;
&lt;br /&gt;
===ビルドとインストール===&lt;br /&gt;
任意: コンパイル速度向上のために {{ic|/etc/makepkg.conf}} で {{ic|&amp;lt;nowiki&amp;gt;MAKEFLAGS=&amp;quot;-j16&amp;quot;&amp;lt;/nowiki&amp;gt;}} とセットしておくことを推奨します。&lt;br /&gt;
&lt;br /&gt;
ビルドするには約 12 GB のディスク領域が必要です。大容量の DRAM を持っている場合はインメモリの tmpfs を使うことを検討してください。&lt;br /&gt;
{{ic|makepkg}} または {{ic|makepkg --skipchecksums}} を実行してコンパイルします。そして {{ic|sudo pacman -U *.pkg.tar.gz}} とするだけでパッケージをインストールできます。&lt;br /&gt;
&#039;&#039;&#039;pacman&#039;&#039;&#039; が &#039;&#039;&#039;reinstall&#039;&#039;&#039; かどうか尋ねてきますので y と答えます。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|linux}} と {{Pkg|linux-headers}} を再インストールすべきです。{{Pkg|linux-docs}} はどちらでも構いません。&lt;br /&gt;
&lt;br /&gt;
この方法に従う場合、外部モジュール（{{Pkg|nvidia}} や {{Pkg|virtualbox}} など）を再ビルドする必要はありません。&lt;br /&gt;
&lt;br /&gt;
==カスタムカーネルをビルドする==&lt;br /&gt;
[http://sourceware.org/git/?p=systemtap.git;a=blob_plain;f=README;hb=HEAD README] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==トラブルシューティング==&lt;br /&gt;
&lt;br /&gt;
=== 起動時にパス 4 が失敗する ===&lt;br /&gt;
&lt;br /&gt;
以下のメッセージが表示されるときは&lt;br /&gt;
&lt;br /&gt;
 /usr/share/systemtap/runtime/stat.c:214:2: error: &#039;cpu_possible_map&#039; undeclared (first use in this function)&lt;br /&gt;
&lt;br /&gt;
systemtap-git パッケージをインストールしてみてください。&lt;br /&gt;
&lt;br /&gt;
=== System.map がない ===&lt;br /&gt;
&lt;br /&gt;
DEBUG_INFO を有効にしてカーネルをビルドした場所から復元できます&lt;br /&gt;
    &lt;br /&gt;
 # cp src/linux-3.6/System.map /boot/System.map-3.6.7-1-ARCH&lt;br /&gt;
&lt;br /&gt;
または&lt;br /&gt;
&lt;br /&gt;
 # cp /proc/kallsyms /boot/System.map-`uname -r`&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=SystemTap&amp;diff=4780</id>
		<title>SystemTap</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=SystemTap&amp;diff=4780"/>
		<updated>2016-01-14T21:09:20Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: 翻訳継続&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Kernel]]&lt;br /&gt;
[[en:SystemTap]]&lt;br /&gt;
[[zh-cn:SystemTap]]&lt;br /&gt;
[http://sourceware.org/systemtap/ SystemTap] は動作中の Linux システムについての情報収集を簡略化するためのフリーソフトウェア (GPL) インフラストラクチャを提供します。&lt;br /&gt;
&lt;br /&gt;
==SystemTap==&lt;br /&gt;
&lt;br /&gt;
[[AUR]] から SystemTap をインストールするだけです: {{AUR|systemtap}}。上流での最新のリリースと比較してみてください [https://sourceware.org/systemtap/wiki/SystemTapReleases]。また [https://sourceware.org/git/?p=systemtap.git;a=summary] にあるソースからビルドすることも考慮してください。新しいカーネルやディストロのサポートは最初にここに現れます。&lt;br /&gt;
&lt;br /&gt;
==標準的なカーネル==&lt;br /&gt;
&lt;br /&gt;
すくなくとも {{Pkg|linux-headers}} がインストールされている必要があります。&lt;br /&gt;
&lt;br /&gt;
Arch は配布バイナリ（カーネルを含む）からデバッグ情報を取り除いている（strip している）ので、systemtap の機能の多くは利用できません。なので &#039;&#039;/usr/share/doc/systemtap/examples&#039;&#039; にある例の多くは動作しません。しかし [https://sourceware.org/systemtap/man/stapprobes.3stap.html stapprobes man page] で動作する NON-DWARF および AUTO-DWARF のプローブタイプを見ることができます。例えば:&lt;br /&gt;
&lt;br /&gt;
* カーネルトレースポイント: kernel.trace(&amp;quot;*&amp;quot;)&lt;br /&gt;
* ユーザースペースプローブ: process(&amp;quot;...&amp;quot;).function(&amp;quot;...&amp;quot;)  (-g をつけて自分でビルドしたプログラムに限る)&lt;br /&gt;
* ユーザースペースマーカー: process(&amp;quot;...&amp;quot;).mark(&amp;quot;...&amp;quot;)   (&#039;&#039;&amp;lt;sys/sdt.h&amp;gt;&#039;&#039; のマーカーをつけて configure されていれば)&lt;br /&gt;
* perfctrベースのプローブ: perf.*&lt;br /&gt;
* NON-DWARF カーネルプローブ: kprobe.function(&amp;quot;...&amp;quot;) と nd_syscall.* tapset  (/boot/System.map* ファイルがあれば。下記参照)&lt;br /&gt;
&lt;br /&gt;
==カーネルのリビルド==&lt;br /&gt;
&lt;br /&gt;
SystemTap を実行するために &#039;&#039;linux-custom&#039;&#039; パッケージをビルドすることを考えているかもしれません。しかしオリジナルの {{Pkg|linux}} パッケージをリビルドすることは簡単で効率的です。[https://wiki.archlinux.org/index.php/Kernels/Compilation/Traditional] も参照してください。&lt;br /&gt;
&lt;br /&gt;
===準備===&lt;br /&gt;
最初に {{ic|&amp;lt;nowiki&amp;gt;ABSROOT=. abs core/linux; cd core/linux&amp;lt;/nowiki&amp;gt;}} を実行してオリジナルのカーネルビルドファイルを取得します。&lt;br /&gt;
そして {{ic|makepkg --verifysource}} を実行して追加のファイルを取得します。この検証をしておけば「チェックサムの更新」のステップを飛ばしても安全です。&lt;br /&gt;
&lt;br /&gt;
===config の修正===&lt;br /&gt;
&#039;&#039;&#039;config&#039;&#039;&#039; (32-bit システム向け) または &#039;&#039;&#039;config.x86_64&#039;&#039;&#039; (64-bit システム向け) を編集して以下のオプションを有効にします:&lt;br /&gt;
* CONFIG_KPROBES=y&lt;br /&gt;
* CONFIG_KPROBES_SANITY_TEST=n&lt;br /&gt;
* CONFIG_KPROBE_EVENT=y&lt;br /&gt;
* CONFIG_NET_DCCPPROBE=m&lt;br /&gt;
* CONFIG_NET_SCTPPROBE=m&lt;br /&gt;
* CONFIG_NET_TCPPROBE=y&lt;br /&gt;
* CONFIG_DEBUG_INFO=y&lt;br /&gt;
* CONFIG_DEBUG_INFO_REDUCED=n&lt;br /&gt;
* CONFIG_X86_DECODER_SELFTEST=n&lt;br /&gt;
デフォルトでは &#039;&#039;CONFIG_DEBUG_INFO&#039;&#039; と &#039;&#039;CONFIG_DEBUG_INFO_REDUCED&#039;&#039; だけが設定されていません。&lt;br /&gt;
&lt;br /&gt;
現在の core/linux (3.15.2 でテスト済み) では、以下の行を config.[x86_64] に追加するだけです:&lt;br /&gt;
{{hc|x86_64|&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
echo &#039;&lt;br /&gt;
CONFIG_DEBUG_INFO=y&lt;br /&gt;
CONFIG_DEBUG_INFO_REDUCED=n&lt;br /&gt;
&#039; &amp;gt;&amp;gt; config.x86_64&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;これらの行を自己メンテナンスされているスクリプトに追加するときは CONFIG_* の行の前にスペースを入れないでください。.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===チェックサムを更新する===&lt;br /&gt;
&#039;&#039;ソースファイルが正しいと確信できるときはこのステップを飛ばしても安全です&#039;&#039;。&lt;br /&gt;
&lt;br /&gt;
{{ic|md5sum config[.x86_64]}} を実行して新しい md5sum を計算します。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PKGBUILD&#039;&#039;&#039; ファイル中で {{ic|&amp;lt;nowiki&amp;gt;md5sums=(&#039;sum-of-first&#039; ... &#039;sum-of-last&#039;)&amp;lt;/nowiki&amp;gt;}} は&lt;br /&gt;
{{ic|&amp;lt;nowiki&amp;gt;source=(&#039;first-source&#039; ... &#039;last-source&#039;)&amp;lt;/nowiki&amp;gt;}} と同じ順序で並んでいます。新しい md5sum を正しい位置に入れてください。&lt;br /&gt;
&lt;br /&gt;
===ビルドとインストール===&lt;br /&gt;
Optional: It is recommended to set {{ic|&amp;lt;nowiki&amp;gt;MAKEFLAGS=&amp;quot;-j16&amp;quot;&amp;lt;/nowiki&amp;gt;}} in {{ic|/etc/makepkg.conf}} to speed up the compilation.&lt;br /&gt;
&lt;br /&gt;
You will need about 12 GB disk space for this build. Consider using an in-memory tmpfs if you have large DRAM.&lt;br /&gt;
Run {{ic|makepkg}} or {{ic|makepkg --skipchecksums}} to compile, then simply {{ic|sudo pacman -U *.pkg.tar.gz}} to install the packages.&lt;br /&gt;
&#039;&#039;&#039;pacman&#039;&#039;&#039; will tell you &#039;&#039;&#039;reinstall&#039;&#039;&#039;, and you should say y.&lt;br /&gt;
&lt;br /&gt;
{{Pkg|linux}} and {{Pkg|linux-headers}} should be reinstalled, {{Pkg|linux-docs}} does not matter.&lt;br /&gt;
&lt;br /&gt;
Via this method, external modules (e.g. {{Pkg|nvidia}} and {{Pkg|virtualbox}}) do not need to be rebuilt.&lt;br /&gt;
&lt;br /&gt;
==カスタムカーネルをビルドする==&lt;br /&gt;
[http://sourceware.org/git/?p=systemtap.git;a=blob_plain;f=README;hb=HEAD README] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==トラブルシューティング==&lt;br /&gt;
&lt;br /&gt;
=== 起動時にパス 4 が失敗する ===&lt;br /&gt;
&lt;br /&gt;
以下のメッセージが表示されるときは&lt;br /&gt;
&lt;br /&gt;
    /usr/share/systemtap/runtime/stat.c:214:2: error: &#039;cpu_possible_map&#039; undeclared (first use in this function)&lt;br /&gt;
&lt;br /&gt;
systemtap-git パッケージをインストールしてみてください。&lt;br /&gt;
&lt;br /&gt;
=== System.map がない ===&lt;br /&gt;
&lt;br /&gt;
DEBUG_INFO を有効にしてカーネルをビルドした場所から復元できます&lt;br /&gt;
    &lt;br /&gt;
    cp src/linux-3.6/System.map /boot/System.map-3.6.7-1-ARCH&lt;br /&gt;
&lt;br /&gt;
または&lt;br /&gt;
&lt;br /&gt;
    sudo cp /proc/kallsyms /boot/System.map-`uname -r`&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=SystemTap&amp;diff=4779</id>
		<title>SystemTap</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=SystemTap&amp;diff=4779"/>
		<updated>2016-01-14T20:37:44Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: 英語版よりコピー&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Kernel]]&lt;br /&gt;
[[en:SystemTap]]&lt;br /&gt;
[[zh-cn:SystemTap]]&lt;br /&gt;
[http://sourceware.org/systemtap/ SystemTap] は動作中の Linux システムからの情報収集を簡略化するためのフリーソフトウェア(GPL)インフラストラクチャを提供します。&lt;br /&gt;
&lt;br /&gt;
==SystemTap==&lt;br /&gt;
&lt;br /&gt;
[[AUR]] から SystemTap をインストールします: {{AUR|systemtap}}。&lt;br /&gt;
&lt;br /&gt;
上流での最新のリリースと比較します [https://sourceware.org/systemtap/wiki/SystemTapReleases]。&lt;br /&gt;
&lt;br /&gt;
[https://sourceware.org/git/?p=systemtap.git;a=summary] にあるソースからビルドすることも考慮してください。新しいカーネルやディストロのサポートは最初にここに現れます。&lt;br /&gt;
&lt;br /&gt;
==標準的なカーネル==&lt;br /&gt;
&lt;br /&gt;
すくなくとも {{Pkg|linux-headers}} がインストールされている必要があります。&lt;br /&gt;
&lt;br /&gt;
Because Arch permanently strips debugging data from its distributed binaries (including the kernel),&lt;br /&gt;
many normal/fancier systemtap capabilities are simply not available, so many examples at &#039;&#039;/usr/share/doc/systemtap/examples&#039;&#039; will not work.  However, see the [https://sourceware.org/systemtap/man/stapprobes.3stap.html stapprobes man page] for the NON-DWARF and AUTO-DWARF probe types for what should still work, for example:&lt;br /&gt;
&lt;br /&gt;
* kernel tracepoints: kernel.trace(&amp;quot;*&amp;quot;)&lt;br /&gt;
* user-space probes: process(&amp;quot;...&amp;quot;).function(&amp;quot;...&amp;quot;)  (for programs you build yourself with -g)&lt;br /&gt;
* user-space markers: process(&amp;quot;...&amp;quot;).mark(&amp;quot;...&amp;quot;)   (if they were configured with the &#039;&#039;&amp;lt;sys/sdt.h&amp;gt;&#039;&#039; markers)&lt;br /&gt;
* perfctr-based probes: perf.*&lt;br /&gt;
* non-dwarf kernel probes: kprobe.function(&amp;quot;...&amp;quot;) and nd_syscall.* tapset  (if a /boot/System.map* file is available, see below).&lt;br /&gt;
&lt;br /&gt;
==Kernel rebuild==&lt;br /&gt;
&lt;br /&gt;
You may consider to build a &#039;&#039;linux-custom&#039;&#039; package to run SystemTap, but rebuilding the original {{Pkg|linux}} package is easy and efficient.  See also [https://wiki.archlinux.org/index.php/Kernels/Compilation/Traditional].&lt;br /&gt;
&lt;br /&gt;
===Prepare===&lt;br /&gt;
First, run {{ic|&amp;lt;nowiki&amp;gt;ABSROOT=. abs core/linux; cd core/linux&amp;lt;/nowiki&amp;gt;}} to get the original kernel build files.&lt;br /&gt;
Then use {{ic|makepkg --verifysource}} to get the additional files. By performing the verification, you can safely &#039;&#039;&#039;skip&#039;&#039;&#039; the steps on &amp;quot;Update checksum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===modify config===&lt;br /&gt;
Edit &#039;&#039;&#039;config&#039;&#039;&#039; (for 32-bit systems) or &#039;&#039;&#039;config.x86_64&#039;&#039;&#039; (for 64-bit systems), turn on these options:&lt;br /&gt;
* CONFIG_KPROBES=y&lt;br /&gt;
* CONFIG_KPROBES_SANITY_TEST=n&lt;br /&gt;
* CONFIG_KPROBE_EVENT=y&lt;br /&gt;
* CONFIG_NET_DCCPPROBE=m&lt;br /&gt;
* CONFIG_NET_SCTPPROBE=m&lt;br /&gt;
* CONFIG_NET_TCPPROBE=y&lt;br /&gt;
* CONFIG_DEBUG_INFO=y&lt;br /&gt;
* CONFIG_DEBUG_INFO_REDUCED=n&lt;br /&gt;
* CONFIG_X86_DECODER_SELFTEST=n&lt;br /&gt;
By default only &#039;&#039;CONFIG_DEBUG_INFO&#039;&#039; and &#039;&#039;CONFIG_DEBUG_INFO_REDUCED&#039;&#039; are not set.&lt;br /&gt;
&lt;br /&gt;
With current core/linux (tested with 3.15.2) you can simply append these lines into config.[x86_64]:&lt;br /&gt;
{{hc|x86_64|&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
echo &#039;&lt;br /&gt;
CONFIG_DEBUG_INFO=y&lt;br /&gt;
CONFIG_DEBUG_INFO_REDUCED=n&lt;br /&gt;
&#039; &amp;gt;&amp;gt; config.x86_64&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note that if you want to put these lines into a self-maintained script, do not insert any space before CONFIG_* lines.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Update checksum===&lt;br /&gt;
&#039;&#039;You can safely skip this step if you believe the source files are correct&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Run {{ic|md5sum config[.x86_64]}} to get a new md5sum.&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;PKGBUILD&#039;&#039;&#039; file, the {{ic|&amp;lt;nowiki&amp;gt;md5sums=(&#039;sum-of-first&#039; ... &#039;sum-of-last&#039;)&amp;lt;/nowiki&amp;gt;}} has the same order with&lt;br /&gt;
{{ic|&amp;lt;nowiki&amp;gt;source=(&#039;first-source&#039; ... &#039;last-source&#039;)&amp;lt;/nowiki&amp;gt;}}, put your new md5sum in the right place.&lt;br /&gt;
&lt;br /&gt;
===Build and Install===&lt;br /&gt;
Optional: It is recommended to set {{ic|&amp;lt;nowiki&amp;gt;MAKEFLAGS=&amp;quot;-j16&amp;quot;&amp;lt;/nowiki&amp;gt;}} in {{ic|/etc/makepkg.conf}} to speed up the compilation.&lt;br /&gt;
&lt;br /&gt;
You will need about 12 GB disk space for this build. Consider using an in-memory tmpfs if you have large DRAM.&lt;br /&gt;
Run {{ic|makepkg}} or {{ic|makepkg --skipchecksums}} to compile, then simply {{ic|sudo pacman -U *.pkg.tar.gz}} to install the packages.&lt;br /&gt;
&#039;&#039;&#039;pacman&#039;&#039;&#039; will tell you &#039;&#039;&#039;reinstall&#039;&#039;&#039;, and you should say y.&lt;br /&gt;
&lt;br /&gt;
{{Pkg|linux}} and {{Pkg|linux-headers}} should be reinstalled, {{Pkg|linux-docs}} does not matter.&lt;br /&gt;
&lt;br /&gt;
Via this method, external modules (e.g. {{Pkg|nvidia}} and {{Pkg|virtualbox}}) do not need to be rebuilt.&lt;br /&gt;
&lt;br /&gt;
==Build custom kernel==&lt;br /&gt;
Please reference this [http://sourceware.org/git/?p=systemtap.git;a=blob_plain;f=README;hb=HEAD README]&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
=== Pass 4 fails when launching ===&lt;br /&gt;
&lt;br /&gt;
If you have:&lt;br /&gt;
&lt;br /&gt;
    /usr/share/systemtap/runtime/stat.c:214:2: error: &#039;cpu_possible_map&#039; undeclared (first use in this function)&lt;br /&gt;
&lt;br /&gt;
Try to install systemtap-git package&lt;br /&gt;
&lt;br /&gt;
=== System.map is missing ===&lt;br /&gt;
&lt;br /&gt;
You can recover it where you build your linux kernel with DEBUG_INFO enabled&lt;br /&gt;
    &lt;br /&gt;
    cp src/linux-3.6/System.map /boot/System.map-3.6.7-1-ARCH&lt;br /&gt;
&lt;br /&gt;
Alternately,&lt;br /&gt;
&lt;br /&gt;
    sudo cp /proc/kallsyms /boot/System.map-`uname -r`&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E6%8C%87%E5%AE%9A%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%8C%E3%81%A9%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E5%B1%9E%E3%81%99%E3%82%8B%E3%81%8B%E8%AA%BF%E3%81%B9%E3%82%8B&amp;diff=4777</id>
		<title>指定ブロックがどのファイルに属するか調べる</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E6%8C%87%E5%AE%9A%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%8C%E3%81%A9%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E5%B1%9E%E3%81%99%E3%82%8B%E3%81%8B%E8%AA%BF%E3%81%B9%E3%82%8B&amp;diff=4777"/>
		<updated>2016-01-14T11:54:29Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: 翻訳完了&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ファイルシステム]]&lt;br /&gt;
[[en:Find File that Owns a Given Block]]&lt;br /&gt;
この記事では、ディスク上の指定のブロックがどのファイルに属するか調べる方法を説明します。主な目的は、ストレージに破損ブロックが生じたときに、どのファイルが破損したかを調べることです（そして重要なデータが失われたかどうかを確認できます）。&lt;br /&gt;
&lt;br /&gt;
この記事の中のほとんどのコマンドを実行するには、root か、ディスクに直接読み込みアクセスができるユーザーになる必要があります（disk グループのメンバーであれば十分です）。いつもの通り、現在のバックアップを取っておくとよいでしょう。もうすぐディスクが壊れそうな場合は特にそうです。壊れそうかどうかを調べるには [[S.M.A.R.T.]] が役に立ちます。&lt;br /&gt;
&lt;br /&gt;
今のところ、この記事は JFS と EXT ファイルシステムだけに向けて書かれています。&lt;br /&gt;
&lt;br /&gt;
==破損ブロックを見つける==&lt;br /&gt;
[[en2:badblocks|badblocks]] コマンドを使います。このコマンドにはいくつかのスキャンモードがあります。リードオンリーモード（デフォルト）は正確さが一番低くなります。破壊的書き込みモード（-w オプション）は最も正確ですが、より時間がかかり、（当然ながら）ディスク上の全データを破壊します。ですのでこれはブロックが属するファイルを見つけるのには使えません。そして最後に非破壊的読み書きモードがあります。これはおそらく破壊的モードと同じくらい正確で、唯一のデメリットはおそらく一番遅いことです。しかし、ディスクが壊れつつあるとわかっているときは、リードオンリーモードが一番安全でしょう。&lt;br /&gt;
&lt;br /&gt;
次のどちらかのコマンドを実行し、-v オプション（冗長表示）つきでリードオンリースキャンを実行します（x はディスクを表す文字で、y はパーティション番号です）。&lt;br /&gt;
&lt;br /&gt;
ディスク全体をスキャンする:&lt;br /&gt;
 badblocks -v /dev/sdx&lt;br /&gt;
&lt;br /&gt;
1個のパーティションをスキャンする:&lt;br /&gt;
 badblocks -v /dev/sdxy&lt;br /&gt;
&lt;br /&gt;
ディスク全体をスキャンすると計算が少し面倒になります。各ファイルシステムはパーティションの先頭からブロック番号を数えるため、例えば 2 番目のパーティション上に破損ブロックがあり、そのパーティションがブロック 1000 から始まっていた場合、求めるブロック番号を得るには badblocks が表示するブロック番号から 1000 を引かなければなりません。つまりディスク全体のスキャンでブロック 1005 が破損していると表示された場合、2 番目のパーティションのブロック 5 が求める破損ブロックの番号になります。&lt;br /&gt;
&lt;br /&gt;
あるいは、ディスク全体をスキャンして破損ブロックが見つかった場合、それがどのパーティションにあるかを計算して、そのパーティションに対して再度スキャンすることでもブロック番号が得られます。&lt;br /&gt;
&lt;br /&gt;
もう一つ覚えておくべきなのは、badblocks はデフォルトでは 1024 バイトを 1 ブロックとすることです。そのため、-b オプションでブロックサイズを指定してファイルシステムのブロックサイズに一致させるか、後の手順において手計算でブロック番号を変換する必要があります。&lt;br /&gt;
&lt;br /&gt;
パーティションの開始・終了位置を調べるには fdisk を使います（古いバージョンではデフォルトでシリンダー単位になるかもしれません。その場合は -u オプションでセクタ単位に変更できます）。fdisk で表示されるブロックサイズをメモしておいて、後でブロック数を変換できるようしておいてください。&lt;br /&gt;
&lt;br /&gt;
 fdisk -l /dev/sdx&lt;br /&gt;
&lt;br /&gt;
 255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors&lt;br /&gt;
 &#039;&#039;&#039;Units = sectors of 1 * 512 = 512 bytes&#039;&#039;&#039;&lt;br /&gt;
 Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
 I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
 Disk identifier: 0x00000000&lt;br /&gt;
&lt;br /&gt;
ここまでで、破損ブロックのブロック番号（そのパーティションの開始位置からの相対位置）が分かりました。&lt;br /&gt;
&lt;br /&gt;
==ファイルシステムをデバッグする (JFS)==&lt;br /&gt;
jfs_debugfs を使うと、JFS ファイルシステム内の全ての低レベル構造にアクセスできます。EXT など他のファイルシステムでも同じようなツールがあります。これを行う前に全てのファイルシステムをアンマウントしておくとよいでしょう。次を実行します:&lt;br /&gt;
&lt;br /&gt;
 jfs_debugfs /dev/sdxy&lt;br /&gt;
&lt;br /&gt;
このコマンドを実行するとコマンドコンソールに入ります。最初にすべきことは aggregate block size を確認することです。これは（おそらく）ファイルシステムのブロックサイズと同じです。JFSのデフォルトは 4096 バイトのようです。&lt;br /&gt;
&lt;br /&gt;
badblocks を実行したときのブロックサイズがこのファイルシステムのブロックサイズと一致していなかった場合は、ブロック番号を変換する必要があります（パーティションの開始位置からの相対ブロック番号を使うことに注意してください）。&lt;br /&gt;
&lt;br /&gt;
つまり、ブロックサイズが 1024 バイトの場合のブロック番号 100 は、ブロックサイズが 4096 バイトの場合のブロック番号 25 になります。変換公式は:&lt;br /&gt;
&lt;br /&gt;
 (original block number) / ((filesystem block size) / (badblocks block size))&lt;br /&gt;
&lt;br /&gt;
さて、本来の目的は inode 番号を取得することです。このコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
 d &#039;&#039;ブロック番号&#039;&#039; 0 i&lt;br /&gt;
&lt;br /&gt;
この構文の意味は、d コマンドはディスプレイ、ブロック番号、オフセット（ここでは 0 にしている）、表示フォーマット i は inode となっています。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;注意&#039;&#039;: ブロックが使用中でないと表示される場合は、そのブロックが割り当てられておらず、空きスペースになっていることを意味します。これは、何も重要なデータが失われていないということなので良いことです。&lt;br /&gt;
&lt;br /&gt;
di_number にセットされている 10 進数が私達の求めるものです。ここで x とタイプしてディスプレイモードから抜けます。全ての破損ブロックに対してこのディスプレイコマンドを繰り返し、それらの inode 番号を記録しておきます。inode に関するパーミッションやファイルタイプなど他の情報を得るには、次のようにタイプします:&lt;br /&gt;
&lt;br /&gt;
 i &#039;&#039;inode番号&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
inode 番号が分かったら q とタイプして終了します。&lt;br /&gt;
&lt;br /&gt;
==破損ファイルを見つける (JFS/Universal)==&lt;br /&gt;
&lt;br /&gt;
これでようやく破損ファイルを見つけられます。GNU find ユーティリティを使います。ファイルシステムをマウントして次を実行します:&lt;br /&gt;
&lt;br /&gt;
 find / -inum &#039;&#039;inode番号&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;/&amp;quot; はその inode が属するファイルシステムのマウントポイントで置き換えてください。&lt;br /&gt;
/ を検索して 2 個以上のファイルシステムがマウントされていたら（普通はそうなっているでしょう）、異なるファイルシステム上で同じ inode 番号のファイルが複数見つかるでしょう。そしてその場合は明らかに時間が長くかかります。inode はファイルシステムの中でだけユニークなことに注意してください。&lt;br /&gt;
&lt;br /&gt;
==ファイルシステムをデバッグする (EXT(2/3/4))==&lt;br /&gt;
tune2fs を使うと、各種 EXT ファイルシステム内の全ての低レベル構造にアクセスできます。これを行う前に全てのファイルシステムをアンマウントしておくとよいでしょう。&lt;br /&gt;
&lt;br /&gt;
最初にやることは、ファイルシステムのブロックサイズを取得することです。これを実行します:&lt;br /&gt;
&lt;br /&gt;
 tune2fs -l /dev/sdxy | grep Block&lt;br /&gt;
 Block count:              29119820&lt;br /&gt;
 &#039;&#039;&#039;Block size:               4096&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
この場合は 4096 がブロックサイズです（これがデフォルトのようです）。&lt;br /&gt;
&lt;br /&gt;
badblocks を実行したときのブロックサイズがこのファイルシステムのブロックサイズと一致していなかった場合は、ブロック番号を変換する必要があります（パーティションの開始位置からの相対ブロック番号を使うことに注意してください）。&lt;br /&gt;
&lt;br /&gt;
つまり、ブロックサイズが 1024 バイトの場合のブロック番号 100 は、ブロックサイズが 4096 バイトの場合のブロック番号 25 になります。変換公式は:&lt;br /&gt;
&lt;br /&gt;
 (original block number) / ((filesystem block size) / (badblocks block size))&lt;br /&gt;
&lt;br /&gt;
さて、本来の目的は inode 番号を取得することです。このコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
 debugfs&lt;br /&gt;
&lt;br /&gt;
そして debugfs のコンソールにおいて、破損セクタを含んでいる EXT のパーティションを引数に open コマンドを実行します:&lt;br /&gt;
&lt;br /&gt;
 debugfs:  open /dev/sdxy&lt;br /&gt;
&lt;br /&gt;
最後に testb コマンドを実行してそのブロックに関する情報を取得します（この例ではブロック 1000 番）:&lt;br /&gt;
&lt;br /&gt;
 debugfs:  testb &#039;&#039;ブロック番号&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;注意&#039;&#039;: ブロックが使用中でないと表示される場合は、そのブロックが割り当てられておらず、空きスペースになっていることを意味します。これは、何も重要なデータが失われていないということなので良いことです。&lt;br /&gt;
&lt;br /&gt;
ブロックが使用中なら、このコマンドで inode 番号を取得できます:&lt;br /&gt;
&lt;br /&gt;
 icheck &#039;&#039;ブロック番号&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
これは 2 個の数字を表示します。ブロック番号と inode 番号です。&lt;br /&gt;
&lt;br /&gt;
==破損ファイルを見つける (EXT(2/3/4))==&lt;br /&gt;
inode 番号（icheck コマンドで表示される 2 番目の番号）を引数に ncheck コマンドを実行します:&lt;br /&gt;
&lt;br /&gt;
 ncheck &#039;&#039;inode番号&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
この破損ブロックを使っているファイルのフルパスが表示されます。これで実際に何が破損したのかがわかります。&lt;br /&gt;
&lt;br /&gt;
もし inode 番号が非常に小さくて ncheck がパス表示に失敗する場合は、おそらくジャーナル自体が壊れています。ジャーナルを削除するには、このコマンドをパーティションに対して実行します:&lt;br /&gt;
&lt;br /&gt;
 tune2fs -O ^has_journal /dev/sdxy&lt;br /&gt;
&lt;br /&gt;
もう一度 debugfs コンソールでtestb コマンドを使ってそのブロックを調べると、もし本当にジャーナルに使われていたのであれば、今度は使われていると表示されないはずです。&lt;br /&gt;
次のコマンドで新しいジャーナルを構築します:&lt;br /&gt;
&lt;br /&gt;
 tune2fs -j /dev/sdxy&lt;br /&gt;
&lt;br /&gt;
==強制的に破損ブロックを代替処理させる==&lt;br /&gt;
まず、smartctl コマンドでハードディスク上にいくつの破損ブロックが認識されているかを調べられます:&lt;br /&gt;
&lt;br /&gt;
 smartctl -t long /dev/sdx  [テストが完了するまで待ってから]&lt;br /&gt;
 smartctl -l selftest /dev/sdx&lt;br /&gt;
&lt;br /&gt;
  ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE&lt;br /&gt;
 &#039;&#039;&#039;5 Reallocated_Sector_Ct     0x0033   100   100   005    Pre-fail  Always       -       0&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0&#039;&#039;&#039;&lt;br /&gt;
 197 Current_Pending_Sector  0x0022   100   100   000    Old_age   Always       -       0&lt;br /&gt;
 &#039;&#039;&#039;198 Offline_Uncorrectable   0x0008   100   100   000    Old_age   Offline      -       0&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
透過的に破損ブロックをスペアの予備セクタへ代替させるには、単に root で dd コマンドを使って破損ブロックにゼロを書き込むだけです。注意すべきなのは、このコマンドを実行するとき、ファイルシステムと同じブロックサイズを使うことと、ブロックの位置をディスク全体でなくファイルシステムがあるパーティションからの相対位置で指定することです:&lt;br /&gt;
&lt;br /&gt;
 dd if=/dev/zero of=/dev/sdxy bs=4096 count=1 seek=2269012&lt;br /&gt;
 sync&lt;br /&gt;
&lt;br /&gt;
本当に破損セクタが代替処理されたかどうかを確認するには、smartctl コマンドを使って Reallocated_Sector_Ct か Reallocated_Event_Count の値が増えているかを確認します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 smartctl -A /dev/sdx&lt;br /&gt;
 ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE&lt;br /&gt;
 &#039;&#039;&#039;5 Reallocated_Sector_Ct     0x0033   100   100   005    Pre-fail  Always       -       1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       1&#039;&#039;&#039;&lt;br /&gt;
 197 Current_Pending_Sector  0x0022   100   100   000    Old_age   Always       -       0&lt;br /&gt;
 &#039;&#039;&#039;198 Offline_Uncorrectable   0x0008   100   100   000    Old_age   Offline      -       1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Offline_Uncorrectable を 0 に戻すには、SMART のロングテストとセルフテストを実行する必要があります:&lt;br /&gt;
&lt;br /&gt;
 smartctl -t long /dev/sdx  [テストが完了するまで待ってから]&lt;br /&gt;
 smartctl -l selftest /dev/sdx&lt;br /&gt;
&lt;br /&gt;
==参考==&lt;br /&gt;
&lt;br /&gt;
[http://smartmontools.sourceforge.net/badblockhowto.html EXT2/3 badblocks howto]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E6%8C%87%E5%AE%9A%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%8C%E3%81%A9%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E5%B1%9E%E3%81%99%E3%82%8B%E3%81%8B%E8%AA%BF%E3%81%B9%E3%82%8B&amp;diff=4776</id>
		<title>指定ブロックがどのファイルに属するか調べる</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E6%8C%87%E5%AE%9A%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%8C%E3%81%A9%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E5%B1%9E%E3%81%99%E3%82%8B%E3%81%8B%E8%AA%BF%E3%81%B9%E3%82%8B&amp;diff=4776"/>
		<updated>2016-01-14T11:27:25Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: 翻訳を継続&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ファイルシステム]]&lt;br /&gt;
[[en:Find File that Owns a Given Block]]&lt;br /&gt;
この記事では、ディスク上の指定のブロックがどのファイルに属するか調べる方法を説明します。主な目的は、ストレージに破損ブロックが生じたときに、どのファイルが破損したかを調べることです（そして重要なデータが失われたかどうかを確認できます）。&lt;br /&gt;
&lt;br /&gt;
この記事の中のほとんどのコマンドを実行するには、root か、ディスクに直接読み込みアクセスができるユーザーになる必要があります（disk グループのメンバーであれば十分です）。いつもの通り、現在のバックアップを取っておくとよいでしょう。もうすぐディスクが壊れそうな場合は特にそうです。壊れそうかどうかを調べるには [[S.M.A.R.T.]] が役に立ちます。&lt;br /&gt;
&lt;br /&gt;
今のところ、この記事は JFS と EXT ファイルシステムだけに向けて書かれています。&lt;br /&gt;
&lt;br /&gt;
==破損ブロックを見つける==&lt;br /&gt;
[[en2:badblocks|badblocks]] コマンドを使います。このコマンドにはいくつかのスキャンモードがあります。リードオンリーモード（デフォルト）は正確さが一番低くなります。破壊的書き込みモード（-w オプション）は最も正確ですが、より時間がかかり、（当然ながら）ディスク上の全データを破壊します。ですのでこれはブロックが属するファイルを見つけるのには使えません。そして最後に非破壊的読み書きモードがあります。これはおそらく破壊的モードと同じくらい正確で、唯一のデメリットはおそらく一番遅いことです。しかし、ディスクが壊れつつあるとわかっているときは、リードオンリーモードが一番安全でしょう。&lt;br /&gt;
&lt;br /&gt;
次のいずれかのコマンドを実行し、-v オプション（冗長表示）つきでリードオンリースキャンを実行します（x はディスクを表す文字で、y はパーティション番号です）。&lt;br /&gt;
&lt;br /&gt;
ディスク全体をスキャンする:&lt;br /&gt;
 badblocks -v /dev/sdx&lt;br /&gt;
&lt;br /&gt;
1個のパーティションをスキャンする:&lt;br /&gt;
 badblocks -v /dev/sdxy&lt;br /&gt;
&lt;br /&gt;
ディスク全体をスキャンすると計算が少し面倒になります。各ファイルシステムはパーティションの先頭からブロック番号を数え始めるため、例えば 2 番目のパーティション上に破損ブロックがあり、そのパーティションがブロック 1000 から始まっていた場合、求めるブロック番号を得るには badblocks が表示するブロック番号から 1000 を引かなければなりません。つまりディスク全体のスキャンでブロック 1005 が破損していると表示された場合、2 番目のパーティションのブロック 5 が求める破損ブロックになります。&lt;br /&gt;
&lt;br /&gt;
あるいは、ディスク全体をスキャンして破損ブロックが見つかった場合、それがどのパーティションにあるかを計算して、そのパーティションに対して再度スキャンすることでもブロック番号が得られます。&lt;br /&gt;
&lt;br /&gt;
もう一つ覚えておくべきなのは、badblocks はデフォルトでは 1024 バイトを 1 ブロックとすることです。そのため、-b オプションでブロックサイズを変更してファイルシステムのブロックサイズに一致させるか、後の手順において手計算でブロック番号を変換する必要があります。&lt;br /&gt;
&lt;br /&gt;
パーティションの開始・終了位置を調べるには fdisk を使います（古いバージョンではデフォルトでシリンダー単位になるかもしれません。その場合は -u オプションでセクタ単位に変更できます）。fdisk で表示されるブロックサイズをメモしておいて、後でブロック数を変換できるようしておいてください。&lt;br /&gt;
&lt;br /&gt;
 fdisk -l /dev/sdx&lt;br /&gt;
&lt;br /&gt;
 255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors&lt;br /&gt;
 &#039;&#039;&#039;Units = sectors of 1 * 512 = 512 bytes&#039;&#039;&#039;&lt;br /&gt;
 Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
 I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
 Disk identifier: 0x00000000&lt;br /&gt;
&lt;br /&gt;
ここまでで、破損ブロックのブロック番号（そのパーティションの開始位置からの相対位置）が分かりました。&lt;br /&gt;
&lt;br /&gt;
==ファイルシステムをデバッグする (JFS)==&lt;br /&gt;
jfs_debugfs will give you access to all the low level structures within any JFS filesystem. Other filesystems such as the EXT filesystems have similar tools. It is probably a good idea to umount any filesystem before you run this on them. To use it just run:&lt;br /&gt;
&lt;br /&gt;
 jfs_debugfs /dev/sdxy&lt;br /&gt;
&lt;br /&gt;
This puts you into a command console. The first thing you should note is your aggregate block size. This is (presumably) the block size the filesystem is using. JFS seems to default to 4096 bytes.&lt;br /&gt;
&lt;br /&gt;
badblocks を実行したときのブロックサイズがこのファイルシステムのブロックサイズと一致していなかった場合は、ブロック番号を変換する必要があります（パーティションの開始位置からの相対ブロック番号を使うことに注意してください）。&lt;br /&gt;
&lt;br /&gt;
つまり、ブロックサイズが 1024 バイトの場合のブロック番号 100 は、ブロックサイズが 4096 バイトの場合のブロック番号 25 になります。変換公式は:&lt;br /&gt;
&lt;br /&gt;
 (original block number) / ((filesystem block size) / (badblocks block size))&lt;br /&gt;
&lt;br /&gt;
さて、本来の目的は inode 番号を取得することです。このコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
 d &#039;&#039;blocknumber&#039;&#039; 0 i&lt;br /&gt;
&lt;br /&gt;
この構文の意味は、d コマンドはディスプレイ、ブロック番号、オフセット（ここでは 0 にしている）、表示フォーマット i は inode となっています。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;注意&#039;&#039;: ブロックが使用中でないと表示される場合は、そのブロックが割り当てられておらず、空きスペースになっていることを意味します。これは、何も重要なデータが失われていないということなので良いことです。&lt;br /&gt;
&lt;br /&gt;
The decimal number that di_number is set to is the one we want. From here you type x to exit out of the display mode. Repeat the display command for each bad block that you have and note all of their inode numbers. For more info on the inode such as permissions and filetype type:&lt;br /&gt;
&lt;br /&gt;
 i &#039;&#039;inodenumber&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When you have all the inode numbers type q to quit.&lt;br /&gt;
&lt;br /&gt;
==破損ファイルを見つける (JFS/Universal)==&lt;br /&gt;
&lt;br /&gt;
これでようやく破損ファイルを見つけられます。GNU find ユーティリティを使います。ファイルシステムをマウントして次を実行します:&lt;br /&gt;
&lt;br /&gt;
 find / -inum &#039;&#039;inodenumber&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;/&amp;quot; はその inode が属するファイルシステムのマウントポイントで置き換えてください。&lt;br /&gt;
/ を検索して 2 個以上のファイルシステムがマウントされていたら（普通はそうなっているでしょう）、異なるファイルシステム上で同じ inode 番号のファイルが複数見つかるでしょう。そしてその場合は明らかに時間が長くかかります。inode はファイルシステムの中でだけユニークなことに注意してください。&lt;br /&gt;
&lt;br /&gt;
==ファイルシステムをデバッグする (EXT(2/3/4))==&lt;br /&gt;
tune2fs を使うと、各種 EXT ファイルシステム内の全ての低レベル構造にアクセスできます。これを行う前に全てのファイルシステムをアンマウントしておくとよいでしょう。&lt;br /&gt;
&lt;br /&gt;
最初にやることは、ファイルシステムのブロックサイズを取得することです。これを実行します:&lt;br /&gt;
&lt;br /&gt;
 tune2fs -l /dev/sdxy | grep Block&lt;br /&gt;
 Block count:              29119820&lt;br /&gt;
 &#039;&#039;&#039;Block size:               4096&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
この場合は 4096 がブロックサイズです（これがデフォルトのようです）。&lt;br /&gt;
&lt;br /&gt;
badblocks を実行したときのブロックサイズがこのファイルシステムのブロックサイズと一致していなかった場合は、ブロック番号を変換する必要があります（パーティションの開始位置からの相対ブロック番号を使うことに注意してください）。&lt;br /&gt;
&lt;br /&gt;
つまり、ブロックサイズが 1024 バイトの場合のブロック番号 100 は、ブロックサイズが 4096 バイトの場合のブロック番号 25 になります。変換公式は:&lt;br /&gt;
&lt;br /&gt;
 (original block number) / ((filesystem block size) / (badblocks block size))&lt;br /&gt;
&lt;br /&gt;
さて、本来の目的は inode 番号を取得することです。このコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
 debugfs&lt;br /&gt;
&lt;br /&gt;
そして debugfs のコンソールにおいて、破損セクタを含んでいる EXT のパーティションを引数に open コマンドを実行します:&lt;br /&gt;
&lt;br /&gt;
 debugfs:  open /dev/sdxy&lt;br /&gt;
&lt;br /&gt;
最後に testb コマンドを実行してそのブロックに関する情報を取得します（この例ではブロック 1000 番）:&lt;br /&gt;
&lt;br /&gt;
 debugfs:  testb &#039;&#039;ブロック番号&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;注意&#039;&#039;: ブロックが使用中でないと表示される場合は、そのブロックが割り当てられておらず、空きスペースになっていることを意味します。これは、何も重要なデータが失われていないということなので良いことです。&lt;br /&gt;
&lt;br /&gt;
ブロックが使用中なら、このコマンドで inode 番号を取得できます:&lt;br /&gt;
&lt;br /&gt;
 icheck &#039;&#039;ブロック番号&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
これは 2 個の数字を表示します。ブロック番号と inode 番号です。&lt;br /&gt;
&lt;br /&gt;
==破損ファイルを見つける (EXT(2/3/4))==&lt;br /&gt;
inode 番号（icheck コマンドで表示される 2 番目の番号）を引数に ncheck コマンドを実行します:&lt;br /&gt;
&lt;br /&gt;
 ncheck &#039;&#039;inodenumber&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
この破損ブロックを使っているファイルのフルパスが表示されます。これで実際に何が破損したのかがわかります。&lt;br /&gt;
&lt;br /&gt;
もし inode 番号が非常に小さくて ncheck がパス表示に失敗する場合は、おそらくジャーナル自体が壊れています。ジャーナルを削除するには、このコマンドをパーティションに対して実行します:&lt;br /&gt;
&lt;br /&gt;
 tune2fs -O ^has_journal /dev/sdxy&lt;br /&gt;
&lt;br /&gt;
もう一度 debugfs コンソールでtestb コマンドを使ってそのブロックを調べると、もし本当にジャーナルに使われていたのであれば、今度は使われていると表示されないはずです。&lt;br /&gt;
次のコマンドで新しいジャーナルを構築します:&lt;br /&gt;
&lt;br /&gt;
 tune2fs -j /dev/sdxy&lt;br /&gt;
&lt;br /&gt;
==強制的に破損ブロックを代替処理させる==&lt;br /&gt;
まず、smartctl コマンドでハードディスク上にいくつの破損ブロックが認識されているかを調べられます:&lt;br /&gt;
&lt;br /&gt;
 smartctl -t long /dev/sdx  [テストが完了するまで待ってから]&lt;br /&gt;
 smartctl -l selftest /dev/sdx&lt;br /&gt;
&lt;br /&gt;
  ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE&lt;br /&gt;
 &#039;&#039;&#039;5 Reallocated_Sector_Ct     0x0033   100   100   005    Pre-fail  Always       -       0&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0&#039;&#039;&#039;&lt;br /&gt;
 197 Current_Pending_Sector  0x0022   100   100   000    Old_age   Always       -       0&lt;br /&gt;
 &#039;&#039;&#039;198 Offline_Uncorrectable   0x0008   100   100   000    Old_age   Offline      -       0&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
透過的に破損ブロックをスペアの予備セクタへ代替させるには、単に root で dd コマンドを使って破損ブロックにゼロを書き込むだけです。注意すべきなのは、このコマンドを実行するとき、ファイルシステムと同じブロックサイズを使うことと、ブロックの位置をディスク全体でなくファイルシステムがあるパーティションからの相対位置で指定することです:&lt;br /&gt;
&lt;br /&gt;
 dd if=/dev/zero of=/dev/sdxy bs=4096 count=1 seek=2269012&lt;br /&gt;
 sync&lt;br /&gt;
&lt;br /&gt;
本当に破損セクタが代替処理されたかどうかを確認するには、smartctl コマンドを使って Reallocated_Sector_Ct か Reallocated_Event_Count の値が増えているかを確認します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 smartctl -A /dev/sdx&lt;br /&gt;
 ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE&lt;br /&gt;
 &#039;&#039;&#039;5 Reallocated_Sector_Ct     0x0033   100   100   005    Pre-fail  Always       -       1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       1&#039;&#039;&#039;&lt;br /&gt;
 197 Current_Pending_Sector  0x0022   100   100   000    Old_age   Always       -       0&lt;br /&gt;
 &#039;&#039;&#039;198 Offline_Uncorrectable   0x0008   100   100   000    Old_age   Offline      -       1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Offline_Uncorrectable を 0 に戻すには、SMART のロングテストとセルフテストを実行する必要があります:&lt;br /&gt;
&lt;br /&gt;
 smartctl -t long /dev/sdx  [テストが完了するまで待ってから]&lt;br /&gt;
 smartctl -l selftest /dev/sdx&lt;br /&gt;
&lt;br /&gt;
==参考==&lt;br /&gt;
&lt;br /&gt;
[http://smartmontools.sourceforge.net/badblockhowto.html EXT2/3 badblocks howto]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E6%8C%87%E5%AE%9A%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%8C%E3%81%A9%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E5%B1%9E%E3%81%99%E3%82%8B%E3%81%8B%E8%AA%BF%E3%81%B9%E3%82%8B&amp;diff=4771</id>
		<title>指定ブロックがどのファイルに属するか調べる</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E6%8C%87%E5%AE%9A%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%8C%E3%81%A9%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E5%B1%9E%E3%81%99%E3%82%8B%E3%81%8B%E8%AA%BF%E3%81%B9%E3%82%8B&amp;diff=4771"/>
		<updated>2016-01-13T14:46:23Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: 一部翻訳&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Find File that Owns a Given Block]]&lt;br /&gt;
[[Category:ファイルシステム]]&lt;br /&gt;
&lt;br /&gt;
この記事では、ディスク上の指定のブロックがどのファイルに属するか調べる方法を説明します。主な目的は、ストレージに破損ブロックが生じたときに、どのファイルが破損したかを調べることです（そして重要なデータが失われたかどうかを確認できます）。&lt;br /&gt;
&lt;br /&gt;
この記事の中のほとんどのコマンドを実行するには、root か、ディスクに直接読み込みアクセスができるユーザーになる必要があります（disk グループのメンバーであれば十分です）。いつもの通り、現在のバックアップを取っておくとよいでしょう。もうすぐディスクが壊れそうな場合は特にそうです。壊れそうかどうかを調べるには [[S.M.A.R.T.]] が役に立ちます。&lt;br /&gt;
&lt;br /&gt;
今のところ、この記事は JFS と EXT ファイルシステムだけに向けて書かれています。&lt;br /&gt;
&lt;br /&gt;
==破損ブロックを見つける==&lt;br /&gt;
[[badblocks]] コマンドを使います。このコマンドにはいくつかのスキャンモードがあります。リードオンリーモード（デフォルト）は正確さが一番低くなります。破壊的書き込みモード（-w オプション）は最も正確ですが、より時間がかかり、（当然ながら）ディスク上の全データを破壊します。ですのでこれはブロックが属するファイルを見つけるのには使えません。そして最後に非破壊的読み書きモードがあります。これはおそらく破壊的モードと同じくらい正確で、唯一のデメリットはおそらく一番遅いことです。しかし、ディスクが壊れつつあるとわかっているときは、リードオンリーモードが一番安全でしょう。&lt;br /&gt;
&lt;br /&gt;
次のいずれかのコマンドを実行し、-v オプション（冗長表示）つきでリードオンリースキャンを実行します（x はディスクを表す文字で、y はパーティション番号です）。&lt;br /&gt;
&lt;br /&gt;
ディスク全体をスキャンする:&lt;br /&gt;
 badblocks -v /dev/sdx&lt;br /&gt;
&lt;br /&gt;
1個のパーティションをスキャンする:&lt;br /&gt;
 badblocks -v /dev/sdxy&lt;br /&gt;
&lt;br /&gt;
The downside to scanning the drive as a whole is that each filesystem is going to start its block count relative to the partition it&#039;s on. This means that if you have a bad block that happens to be on, let&#039;s say, the second partition, and that partition starts on block 1000, then you will have to subtract 1000 from your block number in order to get the number you want. So if a scan from the beginning of the disk results in block number 1005 being bad, then block 5 of the second partition is what you&#039;ll actually be using.&lt;br /&gt;
&lt;br /&gt;
Otherwise, if you&#039;ve found bad blocks after doing a full scan, you can simply figure out which partitions they&#039;re on, and rescan those in order to get the block number, rather than do any block math.&lt;br /&gt;
&lt;br /&gt;
もう一つ覚えておきべきなのは、badblocks はデフォルトでは 1024 バイトを 1 ブロックとすることです。そのため、-b オプションでブロックサイズを変更してファイルシステムのブロックサイズに一致させるか、後の手順において手計算でブロック番号する必要があります。&lt;br /&gt;
&lt;br /&gt;
パーティションの開始・終了位置を調べるには fdisk を使います（古いバージョンではデフォルトでシリンダー単位になるかもしれません。その場合は -u オプションでセクタ単位に変更できます）。fdisk で表示されるブロックサイズをメモしておいて、後でブロック数を変換できるようしておいてください。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 fdisk -l /dev/sdx&lt;br /&gt;
&lt;br /&gt;
 255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors&lt;br /&gt;
 &#039;&#039;&#039;Units = sectors of 1 * 512 = 512 bytes&#039;&#039;&#039;&lt;br /&gt;
 Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
 I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
 Disk identifier: 0x00000000&lt;br /&gt;
&lt;br /&gt;
これによって、破損ブロックのブロック番号（そのパーティションの開始位置からの相対位置）が分かりました。&lt;br /&gt;
&lt;br /&gt;
==ファイルシステムをデバッグする (JFS)==&lt;br /&gt;
jfs_debugfs will give you access to all the low level structures within any JFS filesystem. Other filesystems such as the EXT filesystems have similar tools. It is probably a good idea to umount any filesystem before you run this on them. To use it just run:&lt;br /&gt;
&lt;br /&gt;
 jfs_debugfs /dev/sdxy&lt;br /&gt;
&lt;br /&gt;
This puts you into a command console. The first thing you should note is your aggregate block size. This is (presumably) the block size the filesystem is using. JFS seems to default to 4096 bytes.&lt;br /&gt;
&lt;br /&gt;
badblocks を実行したときのブロックサイズがこのファイルシステムのブロックサイズと一致していなかった場合は、ブロック番号を変換する必要があります（パーティションの開始位置からの相対ブロック番号を使うことに注意してください）。&lt;br /&gt;
&lt;br /&gt;
つまり、ブロックサイズが 1024 バイトの場合のブロック番号 100 は、ブロックサイズが 4096 バイトの場合のブロック番号 25 になります。変換公式は:&lt;br /&gt;
&lt;br /&gt;
 (original block number) / ((filesystem block size) / (badblocks block size))&lt;br /&gt;
&lt;br /&gt;
さて、本来の目的は inode 番号を取得することです。このコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
 d &#039;&#039;blocknumber&#039;&#039; 0 i&lt;br /&gt;
&lt;br /&gt;
この構文の意味は、d コマンドはディスプレイ、ブロック番号、オフセット（ここでは 0 にしている）、表示フォーマット i は inode となっています。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;注意&#039;&#039;: ブロックが使用中でないと表示される場合は、そのブロックが割り当てられておらず、空きスペースになっていることを意味します。これは、何も重要なデータが失われていないということなので良いことです。&lt;br /&gt;
&lt;br /&gt;
The decimal number that di_number is set to is the one we want. From here you type x to exit out of the display mode. Repeat the display command for each bad block that you have and note all of their inode numbers. For more info on the inode such as permissions and filetype type:&lt;br /&gt;
&lt;br /&gt;
 i &#039;&#039;inodenumber&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When you have all the inode numbers type q to quit.&lt;br /&gt;
&lt;br /&gt;
==破損ファイルを見つける (JFS/Universal)==&lt;br /&gt;
&lt;br /&gt;
これでようやく破損ファイルを見つけられます。GNU find ユーティリティを使います。ファイルシステムをマウントして次を実行します:&lt;br /&gt;
&lt;br /&gt;
 find / -inum &#039;&#039;inodenumber&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;/&amp;quot; はその inode が属するファイルシステムのマウントポイントで置き換えてください。&lt;br /&gt;
/ を検索して 2 個以上のファイルシステムがマウントされていたら（普通はそうなっているでしょう）、異なるファイルシステム上で同じ inode 番号のファイルが複数見つかるでしょう。そしてその場合は明らかに時間が長くかかります。inode はファイルシステムの中でだけユニークなことに注意してください。&lt;br /&gt;
&lt;br /&gt;
==ファイルシステムをデバッグする (EXT(2/3/4))==&lt;br /&gt;
tune2fs を使うと、各種 EXT ファイルシステム内の全ての低レベル構造にアクセスできます。これを行う前に全てのファイルシステムをアンマウントしておくとよいでしょう。&lt;br /&gt;
&lt;br /&gt;
最初にやることは、ファイルシステムのブロックサイズを取得することです。これを実行します:&lt;br /&gt;
&lt;br /&gt;
 tune2fs -l /dev/sdxy | grep Block&lt;br /&gt;
 Block count:              29119820&lt;br /&gt;
 &#039;&#039;&#039;Block size:               4096&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
この場合は 4096 がブロックサイズです（これがデフォルトのようです）。&lt;br /&gt;
&lt;br /&gt;
badblocks を実行したときのブロックサイズがこのファイルシステムのブロックサイズと一致していなかった場合は、ブロック番号を変換する必要があります（パーティションの開始位置からの相対ブロック番号を使うことに注意してください）。&lt;br /&gt;
&lt;br /&gt;
つまり、ブロックサイズが 1024 バイトの場合のブロック番号 100 は、ブロックサイズが 4096 バイトの場合のブロック番号 25 になります。変換公式は:&lt;br /&gt;
&lt;br /&gt;
 (original block number) / ((filesystem block size) / (badblocks block size))&lt;br /&gt;
&lt;br /&gt;
さて、本来の目的は inode 番号を取得することです。このコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
 debugfs&lt;br /&gt;
&lt;br /&gt;
そして debugfs のコンソールにおいて、破損セクタを含んでいる EXT のパーティションを引数に open コマンドを実行します:&lt;br /&gt;
&lt;br /&gt;
 debugfs:  open /dev/sdxy&lt;br /&gt;
&lt;br /&gt;
最後に testb コマンドを実行してそのブロックに関する情報を取得します（この例ではブロック 1000 番）:&lt;br /&gt;
&lt;br /&gt;
 debugfs:  testb &#039;&#039;ブロック番号&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;注意&#039;&#039;: ブロックが使用中でないと表示される場合は、そのブロックが割り当てられておらず、空きスペースになっていることを意味します。これは、何も重要なデータが失われていないということなので良いことです。&lt;br /&gt;
&lt;br /&gt;
ブロックが使用中なら、このコマンドで inode 番号を取得できます:&lt;br /&gt;
&lt;br /&gt;
 icheck &#039;&#039;ブロック番号&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
これは 2 個の数字を表示します。ブロック番号と inode 番号です。&lt;br /&gt;
&lt;br /&gt;
==破損ファイルを見つける (EXT(2/3/4))==&lt;br /&gt;
inode 番号（icheck コマンドで表示される 2 番目の番号）を引数に ncheck コマンドを実行します:&lt;br /&gt;
&lt;br /&gt;
 ncheck &#039;&#039;inodenumber&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
この破損ブロックを使っているファイルのフルパスが表示されます。これで実際に何が破損したのかがわかります。&lt;br /&gt;
&lt;br /&gt;
もし inode 番号が非常に小さくて ncheck がパス表示に失敗する場合は、おそらくジャーナル自体が壊れています。ジャーナルを削除するには、このコマンドをパーティションに対して実行します:&lt;br /&gt;
&lt;br /&gt;
 tune2fs -O ^has_journal /dev/sdxy&lt;br /&gt;
&lt;br /&gt;
もう一度 debugfs コンソールでtestb コマンドを使ってそのブロックを調べると、もし本当にジャーナルに使われていたのであれば、今度は使われていると表示されないはずです。&lt;br /&gt;
次のコマンドで新しいジャーナルを構築します:&lt;br /&gt;
&lt;br /&gt;
 tune2fs -j /dev/sdxy&lt;br /&gt;
&lt;br /&gt;
==強制的に破損ブロックを再配置させる==&lt;br /&gt;
First you&#039;ll want to see how many badblocks the harddrive is aware of through the smartctl command:&lt;br /&gt;
&lt;br /&gt;
 smartctl -t long /dev/sdx  [wait until test completes, then]&lt;br /&gt;
 smartctl -l selftest /dev/sdx&lt;br /&gt;
&lt;br /&gt;
  ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE&lt;br /&gt;
 &#039;&#039;&#039;5 Reallocated_Sector_Ct     0x0033   100   100   005    Pre-fail  Always       -       0&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0&#039;&#039;&#039;&lt;br /&gt;
 197 Current_Pending_Sector  0x0022   100   100   000    Old_age   Always       -       0&lt;br /&gt;
 &#039;&#039;&#039;198 Offline_Uncorrectable   0x0008   100   100   000    Old_age   Offline      -       0&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To make the harddrive transparently map out the badblock with a spare good sector you will have to simply write zeros to the bad block using the dd command as root. Remember that with this command you have to work with the same block size as your filesystem and the block as to be relative to the partition the filesystem is on and NOT the harddrive as a whole:&lt;br /&gt;
&lt;br /&gt;
 dd if=/dev/zero of=/dev/sdxy bs=4096 count=1 seek=2269012&lt;br /&gt;
 sync&lt;br /&gt;
&lt;br /&gt;
You can see if the harddrive did indeed map out an additional bad sector by checking with the smartctl command and seeing if the reallocated sector or event count went up:&lt;br /&gt;
&lt;br /&gt;
 smartctl -A /dev/sdx&lt;br /&gt;
 ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE&lt;br /&gt;
 &#039;&#039;&#039;5 Reallocated_Sector_Ct     0x0033   100   100   005    Pre-fail  Always       -       1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       1&#039;&#039;&#039;&lt;br /&gt;
 197 Current_Pending_Sector  0x0022   100   100   000    Old_age   Always       -       0&lt;br /&gt;
 &#039;&#039;&#039;198 Offline_Uncorrectable   0x0008   100   100   000    Old_age   Offline      -       1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To get Offline_Uncorrectable to go back to 0 you need to run a SMART long test and a selftest:&lt;br /&gt;
&lt;br /&gt;
 smartctl -t long /dev/sdx  [wait until test completes, then]&lt;br /&gt;
 smartctl -l selftest /dev/sdx&lt;br /&gt;
&lt;br /&gt;
==参考==&lt;br /&gt;
&lt;br /&gt;
[http://smartmontools.sourceforge.net/badblockhowto.html EXT2/3 badblocks howto]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E6%8C%87%E5%AE%9A%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%8C%E3%81%A9%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E5%B1%9E%E3%81%99%E3%82%8B%E3%81%8B%E8%AA%BF%E3%81%B9%E3%82%8B&amp;diff=4770</id>
		<title>指定ブロックがどのファイルに属するか調べる</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E6%8C%87%E5%AE%9A%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%8C%E3%81%A9%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E5%B1%9E%E3%81%99%E3%82%8B%E3%81%8B%E8%AA%BF%E3%81%B9%E3%82%8B&amp;diff=4770"/>
		<updated>2016-01-13T14:32:55Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: 英語版よりコピペ。一部翻訳&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Find File that Owns a Given Block]]&lt;br /&gt;
[[Category:ファイルシステム]]&lt;br /&gt;
&lt;br /&gt;
この記事では、ディスク上の指定のブロックがどのファイルに属するか調べる方法を説明します。主な目的は、ストレージに破損ブロックが生じたときに、どのファイルが破損したかを調べることです（そして重要なデータが失われたかどうかを確認できます）。&lt;br /&gt;
&lt;br /&gt;
この記事の中のほとんどのコマンドを実行するには、root か、ディスクに直接読み込みアクセスができるユーザーになる必要があります（disk グループのメンバーであれば十分です）。いつもの通り、現在のバックアップを取っておくとよいでしょう。もうすぐディスクが壊れそうな場合は特にそうです。壊れそうかどうかを調べるには [[S.M.A.R.T.]] が役に立ちます。&lt;br /&gt;
&lt;br /&gt;
今のところ、この記事は JFS と EXT ファイルシステムだけに向けて書かれています。&lt;br /&gt;
&lt;br /&gt;
==破損ブロックを見つける==&lt;br /&gt;
[[badblocks]] コマンドを使います。このコマンドにはいくつかのスキャンモードがあります。リードオンリーモード（デフォルト）は正確さが一番低くなります。破壊的書き込みモード（-w オプション）は最も正確ですが、より時間がかかり、（当然ながら）ディスク上の全データを破壊します。ですのでこれはブロックが属するファイルを見つけるのには使えません。そして最後に非破壊的読み書きモードがあります。これはおそらく破壊的モードと同じくらい正確で、唯一のデメリットはおそらく一番遅いことです。しかし、ディスクが壊れつつあるとわかっているときは、リードオンリーモードが一番安全でしょう。&lt;br /&gt;
&lt;br /&gt;
To do a verbose (-v option), read-only scan, run one of these commands (with x being the drive letter and y being partition number you want to scan):&lt;br /&gt;
&lt;br /&gt;
ディスク全体をスキャンする:&lt;br /&gt;
 badblocks -v /dev/sdx&lt;br /&gt;
&lt;br /&gt;
1個のパーティションをスキャンする:&lt;br /&gt;
 badblocks -v /dev/sdxy&lt;br /&gt;
&lt;br /&gt;
The downside to scanning the drive as a whole is that each filesystem is going to start its block count relative to the partition it&#039;s on. This means that if you have a bad block that happens to be on, let&#039;s say, the second partition, and that partition starts on block 1000, then you will have to subtract 1000 from your block number in order to get the number you want. So if a scan from the beginning of the disk results in block number 1005 being bad, then block 5 of the second partition is what you&#039;ll actually be using.&lt;br /&gt;
&lt;br /&gt;
Otherwise, if you&#039;ve found bad blocks after doing a full scan, you can simply figure out which partitions they&#039;re on, and rescan those in order to get the block number, rather than do any block math.&lt;br /&gt;
&lt;br /&gt;
もう一つ覚えておきべきなのは、badblocks はデフォルトでは 1024 バイトを 1 ブロックとすることです。そのため、-b オプションでブロックサイズを変更してファイルシステムのブロックサイズに一致させるか、後の手順において手計算でブロック番号する必要があります。&lt;br /&gt;
&lt;br /&gt;
パーティションの開始・終了位置を調べるには fdisk を使います（古いバージョンではデフォルトでシリンダー単位になるかもしれません。その場合は -u オプションでセクタ単位に変更できます）。fdisk で表示されるブロックサイズをメモしておいて、後でブロック数を変換できるようしておいてください。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 fdisk -l /dev/sdx&lt;br /&gt;
&lt;br /&gt;
 255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors&lt;br /&gt;
 &#039;&#039;&#039;Units = sectors of 1 * 512 = 512 bytes&#039;&#039;&#039;&lt;br /&gt;
 Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
 I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
 Disk identifier: 0x00000000&lt;br /&gt;
&lt;br /&gt;
これによって、破損ブロックのブロック番号（そのパーティションの開始位置からの相対位置）が分かりました。&lt;br /&gt;
&lt;br /&gt;
==ファイルシステムをデバッグする (JFS)==&lt;br /&gt;
jfs_debugfs will give you access to all the low level structures within any JFS filesystem. Other filesystems such as the EXT filesystems have similar tools. It is probably a good idea to umount any filesystem before you run this on them. To use it just run:&lt;br /&gt;
&lt;br /&gt;
 jfs_debugfs /dev/sdxy&lt;br /&gt;
&lt;br /&gt;
This puts you into a command console. The first thing you should note is your aggregate block size. This is (presumably) the block size the filesystem is using. JFS seems to default to 4096 bytes.&lt;br /&gt;
&lt;br /&gt;
If you did not run badblocks using the block size that your filesystem is using then you will need to convert your block number(s) to match it (remember to use the block number(s) relative to the partition they&#039;re on).&lt;br /&gt;
&lt;br /&gt;
i.e. block number 100 with a block size of 1024 bytes becomes block number 25 at 4096 bytes. The formula is:&lt;br /&gt;
&lt;br /&gt;
 (original block number) / ((filesystem block size) / (badblocks block size))&lt;br /&gt;
&lt;br /&gt;
Now the entire point of running this program (for the purpose of this article) is to get the inode number. To do this run the command:&lt;br /&gt;
&lt;br /&gt;
 d &#039;&#039;blocknumber&#039;&#039; 0 i&lt;br /&gt;
&lt;br /&gt;
The syntax is the d command for display, the block number, the offset (just set it to 0), and the display format i for inode.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note&#039;&#039;: If you get an error then that means the block is not allocated and is being used as free space. In that case this is a good thing as it means nothing important was damaged.&lt;br /&gt;
&lt;br /&gt;
The decimal number that di_number is set to is the one we want. From here you type x to exit out of the display mode. Repeat the display command for each bad block that you have and note all of their inode numbers. For more info on the inode such as permissions and filetype type:&lt;br /&gt;
&lt;br /&gt;
 i &#039;&#039;inodenumber&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When you have all the inode numbers type q to quit.&lt;br /&gt;
&lt;br /&gt;
==破損ファイルを見つける (JFS/Universal)==&lt;br /&gt;
&lt;br /&gt;
これでようやく破損ファイルを見つけられます。GNU find ユーティリティを使います。ファイルシステムをマウントして次を実行します:&lt;br /&gt;
&lt;br /&gt;
 find / -inum &#039;&#039;inodenumber&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;/&amp;quot; はその inode が属するファイルシステムのマウントポイントで置き換えてください。&lt;br /&gt;
/ を検索して 2 個以上のファイルシステムがマウントされていたら（普通はそうなっているでしょう）、異なるファイルシステム上で同じ inode 番号のファイルが複数見つかるでしょう。そしてその場合は明らかに時間が長くかかります。inode はファイルシステムの中でだけユニークなことに注意してください。&lt;br /&gt;
&lt;br /&gt;
==ファイルシステムをデバッグする (EXT(2/3/4))==&lt;br /&gt;
tune2fs will give you access to all the low level structures within any EXT filesystem. It is probably a good idea to umount any filesystem before you run this on them.&lt;br /&gt;
&lt;br /&gt;
最初にやることは、ファイルシステムのブロックサイズを取得することです。これを実行します:&lt;br /&gt;
&lt;br /&gt;
 tune2fs -l /dev/sdxy | grep Block&lt;br /&gt;
 Block count:              29119820&lt;br /&gt;
 &#039;&#039;&#039;Block size:               4096&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
この場合は 4096 がブロックサイズです（これがデフォルトのようです）。&lt;br /&gt;
&lt;br /&gt;
badblocks を実行したときのブロックサイズがこのファイルシステムのブロックサイズと一致していなかった場合は、ブロック番号を変換する必要があります（パーティションの開始位置からの相対ブロック番号を使うことに注意してください）。&lt;br /&gt;
&lt;br /&gt;
つまり、ブロックサイズが 1024 バイトの場合のブロック番号 100 は、ブロックサイズが 4096 バイトの場合のブロック番号 25 になります。変換公式は:&lt;br /&gt;
&lt;br /&gt;
 (original block number) / ((filesystem block size) / (badblocks block size))&lt;br /&gt;
&lt;br /&gt;
さて、本来の目的は inode 番号を取得することです。このコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
 debugfs&lt;br /&gt;
&lt;br /&gt;
そして debugfs のコンソールにおいて、破損セクタを含んでいる EXT のパーティションを引数に open コマンドを実行します:&lt;br /&gt;
&lt;br /&gt;
 debugfs:  open /dev/sdxy&lt;br /&gt;
&lt;br /&gt;
最後に testb コマンドを実行してそのブロックに関する情報を取得します（この例ではブロック 1000 番）:&lt;br /&gt;
&lt;br /&gt;
 debugfs:  testb &#039;&#039;ブロック番号&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note&#039;&#039;: ブロックが使用中でないと表示される場合は、そのブロックが割り当てられておらず、空きスペースになっていることを意味します。これは、何も重要なデータが失われていないということなので良いことです。&lt;br /&gt;
&lt;br /&gt;
ブロックが使用中なら、このコマンドで inode 番号を取得できます:&lt;br /&gt;
&lt;br /&gt;
 icheck &#039;&#039;ブロック番号&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
これは 2 個の数字を表示します。ブロック番号と inode 番号です。&lt;br /&gt;
&lt;br /&gt;
==破損ファイルを見つける (EXT(2/3/4))==&lt;br /&gt;
inode 番号（icheck コマンドで表示される 2 番目の番号）を引数に ncheck コマンドを実行します:&lt;br /&gt;
&lt;br /&gt;
 ncheck &#039;&#039;inodenumber&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
この破損ブロックを使っているファイルのフルパスが表示されます。これで実際に何が破損したのかがわかります。&lt;br /&gt;
&lt;br /&gt;
もし inode 番号が非常に小さくて ncheck がパス表示に失敗する場合は、おそらくジャーナル自体が壊れています。ジャーナルを削除するには、このコマンドをパーティションに対して実行します:&lt;br /&gt;
&lt;br /&gt;
 tune2fs -O ^has_journal /dev/sdxy&lt;br /&gt;
&lt;br /&gt;
Run the testb command again from the debugfs console on the bad block and it should be no longer marked as used if it was indeed used by the journal. To build a new journal run:&lt;br /&gt;
&lt;br /&gt;
 tune2fs -j /dev/sdxy&lt;br /&gt;
&lt;br /&gt;
==強制的に破損ブロックを再配置させる==&lt;br /&gt;
First you&#039;ll want to see how many badblocks the harddrive is aware of through the smartctl command:&lt;br /&gt;
&lt;br /&gt;
 smartctl -t long /dev/sdx  [wait until test completes, then]&lt;br /&gt;
 smartctl -l selftest /dev/sdx&lt;br /&gt;
&lt;br /&gt;
  ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE&lt;br /&gt;
 &#039;&#039;&#039;5 Reallocated_Sector_Ct     0x0033   100   100   005    Pre-fail  Always       -       0&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0&#039;&#039;&#039;&lt;br /&gt;
 197 Current_Pending_Sector  0x0022   100   100   000    Old_age   Always       -       0&lt;br /&gt;
 &#039;&#039;&#039;198 Offline_Uncorrectable   0x0008   100   100   000    Old_age   Offline      -       0&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To make the harddrive transparently map out the badblock with a spare good sector you will have to simply write zeros to the bad block using the dd command as root. Remember that with this command you have to work with the same block size as your filesystem and the block as to be relative to the partition the filesystem is on and NOT the harddrive as a whole:&lt;br /&gt;
&lt;br /&gt;
 dd if=/dev/zero of=/dev/sdxy bs=4096 count=1 seek=2269012&lt;br /&gt;
 sync&lt;br /&gt;
&lt;br /&gt;
You can see if the harddrive did indeed map out an additional bad sector by checking with the smartctl command and seeing if the reallocated sector or event count went up:&lt;br /&gt;
&lt;br /&gt;
 smartctl -A /dev/sdx&lt;br /&gt;
 ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE&lt;br /&gt;
 &#039;&#039;&#039;5 Reallocated_Sector_Ct     0x0033   100   100   005    Pre-fail  Always       -       1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       1&#039;&#039;&#039;&lt;br /&gt;
 197 Current_Pending_Sector  0x0022   100   100   000    Old_age   Always       -       0&lt;br /&gt;
 &#039;&#039;&#039;198 Offline_Uncorrectable   0x0008   100   100   000    Old_age   Offline      -       1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To get Offline_Uncorrectable to go back to 0 you need to run a SMART long test and a selftest:&lt;br /&gt;
&lt;br /&gt;
 smartctl -t long /dev/sdx  [wait until test completes, then]&lt;br /&gt;
 smartctl -l selftest /dev/sdx&lt;br /&gt;
&lt;br /&gt;
==参考==&lt;br /&gt;
&lt;br /&gt;
[http://smartmontools.sourceforge.net/badblockhowto.html EXT2/3 badblocks howto]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%83%88%E3%83%BC%E3%82%AF:%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E5%90%8D%E5%89%8D%E8%A7%A3%E6%B1%BA&amp;diff=4624</id>
		<title>トーク:ドメイン名前解決</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%83%88%E3%83%BC%E3%82%AF:%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E5%90%8D%E5%89%8D%E8%A7%A3%E6%B1%BA&amp;diff=4624"/>
		<updated>2016-01-03T11:56:44Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: ページの作成:「/etc/resolv.conf.tailに記述という部分ですが、実際にやったら効いていないようでした。 英語版では/etc/resolv.confと書かれているの...」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/etc/resolv.conf.tailに記述という部分ですが、実際にやったら効いていないようでした。&lt;br /&gt;
英語版では/etc/resolv.confと書かれているので、間違いではないでしょうか？&lt;br /&gt;
--[[利用者:Aosho235|Aosho235]] ([[利用者・トーク:Aosho235|トーク]]) 2016年1月3日 (日) 20:56 (JST)&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=SSH_%E9%8D%B5&amp;diff=4621</id>
		<title>SSH 鍵</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=SSH_%E9%8D%B5&amp;diff=4621"/>
		<updated>2016-01-02T12:02:18Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: エドワーズ曲線→楕円曲線&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Secure Shell]]&lt;br /&gt;
[[en:SSH keys]]&lt;br /&gt;
[[es:SSH keys]]&lt;br /&gt;
[[it:SSH keys]]&lt;br /&gt;
[[ru:SSH keys]]&lt;br /&gt;
[[sr:SSH keys]]&lt;br /&gt;
[[tr:SSH_Anahtarları]]&lt;br /&gt;
[[zh-CN:SSH keys]]&lt;br /&gt;
SSH 鍵は[[Wikipedia:ja:公開鍵暗号|公開鍵暗号]]と[[Wikipedia:Challenge-response authentication|チャレンジ/レスポンス認証]]を使って SSH サーバーに自身を確認させる手段として用います。伝統的なパスワード認証と比べてこの方法を使用する利点として、ネットワークを介してパスワードを送信しなくてもサーバーから認証を受けられるということが挙げられます。パスワードを転送しているわけではないので、たとえ接続を盗聴されてもパスワードを盗まれたりクラックされる恐れがありません。さらに、SSH 鍵を使って認証をすることによって、ブルートフォース攻撃を受けるリスクを事実上なくすことができます。攻撃者が正しい証明書を得られる確率は劇的に減るからです。&lt;br /&gt;
&lt;br /&gt;
セキュリティの向上につながるという他に、SSH 鍵認証は伝統的なパスワード認証よりも便利だという点もあります。SSH エージェントというプログラムを使うことで、システムごとのパスワードを記録して入力する必要はなくなり、SSH 鍵でサーバーに接続することが可能になります。&lt;br /&gt;
&lt;br /&gt;
SSH 鍵に全く欠点がないというわけではなく、環境によっては相応しくないという場合もありますが、大抵の場合は SSH 鍵を使用することには強力なメリットが望めます。SSH 鍵の動作方法を理解することは、いつ、どのように鍵を使えば要求を満たせるのか考える手がかりになるでしょう。この記事では [[Secure Shell]] プロトコルについての基本的な知識を持っていて、[[公式リポジトリ]]の {{Pkg|openssh}} パッケージを既にインストールしていることを前提としています。&lt;br /&gt;
&lt;br /&gt;
==予備知識==&lt;br /&gt;
SSH 鍵は常にペアで存在します。公開鍵と秘密鍵です。秘密鍵はあなたしか知らない鍵で、安全に保管する必要があります。逆に、公開鍵は接続したい SSH サーバーと自由に共有できます。&lt;br /&gt;
&lt;br /&gt;
ファイル形式の公開鍵が SSH サーバーに存在し、あなたが接続をリクエストしたことを確認したら、SSH サーバーは公開鍵を使ってチャレンジをあなたに作成・送信します。このチャレンジは暗号文のようなもので、適切なレスポンスを返すことによって、アクセス権がサーバーから与えられます。暗号文を解読できるのは秘密鍵を持っている人だけということが、暗号文を特に安全なものにしています。公開鍵を使ってメッセージを暗号化することはできる一方で、公開鍵を使ってメッセージを復号化することはできません。秘密鍵を持っている、あなただけが、チャレンジを解読して適切なレスポンスを作成することができるわけです。&lt;br /&gt;
&lt;br /&gt;
このチャレンジ/レスポンス認証は水面下で行われ、ユーザーが関知するところではありません。秘密鍵を持ってさえいれば (通常は {{ic|~/.ssh/}} ディレクトリに鍵が保存されます)、SSH クライアントはサーバーに適切なレスポンスを返すことが可能です。&lt;br /&gt;
&lt;br /&gt;
秘密鍵は機密情報として考えてよく、暗号化されてディスクに保存されることもよくあります。この場合、秘密鍵が必要になったとき、最初にパスフレーズを入力して秘密鍵を復号化する必要があります。表面的には、SSH サーバーにログインパスワードを入力するのと変わりないように見えますが、実際にはローカルシステム上の秘密鍵を復号化するためのパスフレーズです。このパスフレーズはネットワークを介して送信されることはありませんし、送信するなんて言語道断です。&lt;br /&gt;
&lt;br /&gt;
==SSH 鍵のペアを生成==&lt;br /&gt;
SSH 鍵のペアは {{ic|ssh-keygen}} コマンドを実行することで生成できます:&lt;br /&gt;
&lt;br /&gt;
{{hc&lt;br /&gt;
|$ ssh-keygen -t rsa -b 4096 -C &amp;quot;$(whoami)@$(hostname)-$(date -I)&amp;quot;&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;Generating public/private rsa key pair.&lt;br /&gt;
Enter file in which to save the key (/home/username/.ssh/id_rsa):&lt;br /&gt;
Enter passphrase (empty for no passphrase):&lt;br /&gt;
Enter same passphrase again:&lt;br /&gt;
Your identification has been saved in /home/username/.ssh/id_rsa.&lt;br /&gt;
Your public key has been saved in /home/username/.ssh/id_rsa.pub.&lt;br /&gt;
The key fingerprint is:&lt;br /&gt;
dd:15:ee:24:20:14:11:01:b8:72:a2:0f:99:4c:79:7f username@localhost-2014-11-22&lt;br /&gt;
The key&#039;s randomart image is:&lt;br /&gt;
+--[RSA  4096]---+&lt;br /&gt;
|     ..oB=.   .  |&lt;br /&gt;
|    .    . . . . |&lt;br /&gt;
|  .  .      . +  |&lt;br /&gt;
| oo.o    . . =   |&lt;br /&gt;
|o+.+.   S . . .  |&lt;br /&gt;
|=.   . E         |&lt;br /&gt;
| o    .          |&lt;br /&gt;
|  .              |&lt;br /&gt;
|                 |&lt;br /&gt;
+-----------------+&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
上記の例では、{{ic|ssh-keygen}} は4096ビット長 ({{ic|-b 4096}}) の公開/秘密 RSA ({{ic|-t rsa}}) 鍵のペアを作成しています。拡張コメントにデータが含まれています ({{ic|-C &amp;quot;$(whoami)@$(hostname)-$(date -I)&amp;quot;}})。OpenSSH 5.1 から [http://www.cs.berkeley.edu/~dawnsong/papers/randomart.pdf ランダムな画像イメージ] が表示されるようになっており、鍵の指紋を視覚的に表しています。&lt;br /&gt;
&lt;br /&gt;
===暗号化のタイプを選択===&lt;br /&gt;
楕円曲線デジタル署名アルゴリズム (ECDSA) は小さな鍵長で高速な操作を実現します、セキュリティについては昔の方法と変わりありません。ECDSA は OpenSSH 5.7 で導入され、認証用の推奨アルゴリズムとされています。[http://www.openssh.com/txt/release-5.7 OpenSSH 5.7 のリリースノート] を参照。&#039;&#039;&#039;ECDSA 鍵は旧バージョンの OpenSSH を使っているシステムと互換性がない場合があります。&#039;&#039;&#039;また、特許の問題を考慮して、メーカーによっては必要な実装が無効化されていることがあります。&lt;br /&gt;
{{Warning|There is [http://safecurves.cr.yp.to/rigid.html reason to be suspicious] of the NIST curves used to generate ECDSA keys. Depending on the threat model, it might be advisable to use Ed25519 or RSA.}}&lt;br /&gt;
{{Note|2013年12月28日現在、Windows の SSH クライアントである PuTTY は ECDSA をサポートしておらず、ECDSA 鍵を使用しているサーバーに接続することができません。}}&lt;br /&gt;
{{Note|1=2014年6月10日現在、ECDSA 鍵は GNOME Keyring で使用できません。[https://bugzilla.gnome.org/show_bug.cgi?id=641082 GNOME の既知のバグ] のためです。}}&lt;br /&gt;
&lt;br /&gt;
OpenSSH 6.5 から Ed25519 鍵がサポートされています: &amp;quot;Ed25519 は楕円曲線による署名方式で、ECDSA や DSA よりも安全なセキュリティ、高いパフォーマンスを実現します&amp;quot; [http://www.openssh.com/txt/release-6.5]。Ed25519 鍵は {{ic|ssh-keygen -t ed25519}} で生成できます。鍵長を設定する必要はありません。全ての Ed25519 鍵は256ビットです。&lt;br /&gt;
&lt;br /&gt;
RSA (2048-16384ビット) または DSA (2048ビット) の鍵対を作成する場合、{{ic|ssh-keygen}} コマンドで {{ic|-t rsa}} または {{ic|-t dsa}} スイッチを使用して、忘れずに鍵長を増やして下さい。{{ic|-b}} スイッチを書かずに {{ic|ssh-keygen}} を実行することで作成されるデフォルトの鍵長で問題ありません。&lt;br /&gt;
&lt;br /&gt;
{{Note|鍵が使用されるのは認証を行うときだけです。強固な鍵にすることで、SSH によってデータを送信する際の CPU の負担が増えることはありません。}}&lt;br /&gt;
&lt;br /&gt;
===鍵の場所とパスフレーズを選択===&lt;br /&gt;
{{ic|ssh-keygen}} コマンドの実行時に、秘密鍵の名前と保存場所について尋ねられます。デフォルトでは、鍵は {{ic|~/.ssh/}} ディレクトリに保存され、名前は使用する暗号化のタイプに合わせて付けられます。この記事に出てくるサンプルコードをそのまま使用できるようにするため、デフォルトの名前と場所を使うことを推奨します。&lt;br /&gt;
&lt;br /&gt;
パスフレーズを求められたときは、推測されにくいパスフレーズを入力してください。一般的に、長くてランダムなパスワードの方が強固でクラックされにくいパスワードであり、破れれることは少なくなります。&lt;br /&gt;
&lt;br /&gt;
パスフレーズを設定しないで秘密鍵を作成することも可能です。パスフレーズが不要なことは便利である一方、リスクも伴うということを理解してください。パスフレーズを設定しなかった場合、秘密鍵はディスク上に平文で保存されることになります。秘密鍵ファイルにアクセスすることさえできれば、誰でも (鍵を使って認証を行っている) SSH サーバーの認証を掻い潜ることができてしまいます。さらに、パスフレーズを設定しないということは、root ユーザーを無条件で信頼することになります。root ユーザーはファイルのパーミッションを回避していつでも秘密鍵ファイルにアクセスすることができます。&lt;br /&gt;
&lt;br /&gt;
====鍵を変更せずに秘密鍵のパスフレーズを変更する====&lt;br /&gt;
最初に作成した SSH 鍵のパスフレーズがあまりよろしくなくて変更しなくてはならない場合、{{ic|ssh-keygen}} コマンドを使うことで、実際の鍵を変更することなくパスフレーズだけ変更することができます。&lt;br /&gt;
&lt;br /&gt;
RSA 秘密鍵のパスフレーズを変更するには、次を実行:&lt;br /&gt;
 $ ssh-keygen -f ~/.ssh/id_rsa -p&lt;br /&gt;
&lt;br /&gt;
====複数の鍵の管理====&lt;br /&gt;
{{ic|~/.ssh/config}} ファイルを作成してホスト毎に認証に必要な鍵を指定することでホストごとに鍵を管理することができます。これは必須ではありません、ホスト全てに同じ鍵を使うこともできるからです。クライアント全てに同一の鍵を使いたくない場合は、以下のようにファイルを作成してください:&lt;br /&gt;
 Host SERVERNAME1&lt;br /&gt;
   IdentitiesOnly yes&lt;br /&gt;
   IdentityFile ~/.ssh/id_rsa_SERVER1&lt;br /&gt;
   # CheckHostIP yes&lt;br /&gt;
   # Port 22&lt;br /&gt;
 Host SERVERNAME2&lt;br /&gt;
   IdentitiesOnly yes&lt;br /&gt;
   IdentityFile ~/.ssh/id_rsa_SERVER2&lt;br /&gt;
   # CheckHostIP no&lt;br /&gt;
   # Port 2177&lt;br /&gt;
 ControlMaster auto&lt;br /&gt;
 ControlPath /tmp/%r@%h:%p&lt;br /&gt;
他のオプションについては次のコマンドで調べられます:&lt;br /&gt;
 $ man ssh_config 5&lt;br /&gt;
&lt;br /&gt;
==リモートサーバーに公開鍵をコピー==&lt;br /&gt;
鍵対を生成したら、公開鍵をリモートサーバーにコピーして、SSH 鍵認証が使えるようにする必要があります。公開鍵のファイル名は秘密鍵のファイル名に {{ic|.pub}} 拡張子を付けたものになります。秘密鍵は共有せず、ローカルマシンに残しておくようにしてください。&lt;br /&gt;
&lt;br /&gt;
===シンプルな方法===&lt;br /&gt;
&lt;br /&gt;
{{Note|1=この方法はリモートサーバーが {{ic|sh}} 以外のシェル ({{ic|tcsh}} など) をデフォルトで使っている場合、失敗します。[https://bugzilla.redhat.com/show_bug.cgi?id=1045191 このバグレポート] を参照。}}&lt;br /&gt;
&lt;br /&gt;
鍵のファイルが {{ic|~/.ssh/id_rsa.pub}} の場合、次のコマンドを実行します。&lt;br /&gt;
 $ ssh-copy-id remote-server.org&lt;br /&gt;
&lt;br /&gt;
リモートマシンでユーザー名が異なる場合、サーバーの名前の前に {{ic|@}} とユーザー名を書きます。&lt;br /&gt;
 $ ssh-copy-id username@remote-server.org&lt;br /&gt;
&lt;br /&gt;
公開鍵のファイル名がデフォルトの {{ic|~/.ssh/id_rsa.pub}} ではない場合、{{ic|/usr/bin/ssh-copy-id: ERROR: No identities found}} というエラーが表示されます。その場合、公開鍵の場所を明示してください。&lt;br /&gt;
 $ ssh-copy-id -i ~/.ssh/id_ecdsa.pub username@remote-server.org&lt;br /&gt;
&lt;br /&gt;
ssh サーバーがデフォルトの22番ポート以外を使っている場合、ポート番号を付して下さい。&lt;br /&gt;
 $ ssh-copy-id -i ~/.ssh/id_ecdsa.pub -p 221 username@remote-server.org&lt;br /&gt;
&lt;br /&gt;
===伝統的な方法===&lt;br /&gt;
デフォルトで、OpenSSH では、公開鍵は {{ic|~/.ssh/authorized_keys}} と連結する必要があります。まず公開鍵をリモートサーバーにコピーしてください。&lt;br /&gt;
&lt;br /&gt;
 $ scp ~/.ssh/id_ecdsa.pub username@remote-server.org:&lt;br /&gt;
&lt;br /&gt;
上記の例では {{ic|scp}} によって公開鍵 ({{ic|id_ecdsa.pub}}) をリモートサーバーのホームディレクトリにコピーしています。サーバーアドレスの最後にはかならず {{ic|:}} を付けるのを忘れないで下さい。また、必要に応じて上記の例にある公開鍵の名前は置き換えるようにしてください。&lt;br /&gt;
&lt;br /&gt;
リモートサーバー側では、(ディレクトリが存在しない場合) {{ic|~/.ssh}} ディレクトリを作成して {{ic|authorized_keys}} ファイルに公開鍵を追記する必要があります。&lt;br /&gt;
&lt;br /&gt;
 $ ssh username@remote-server.org&lt;br /&gt;
 username@remote-server.org&#039;s password:&lt;br /&gt;
 $ mkdir ~/.ssh&lt;br /&gt;
 $ chmod 700 ~/.ssh&lt;br /&gt;
 $ cat ~/id_ecdsa.pub &amp;gt;&amp;gt; ~/.ssh/authorized_keys&lt;br /&gt;
 $ rm ~/id_ecdsa.pub&lt;br /&gt;
 $ chmod 600 ~/.ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
最後の2つのコマンドではサーバーから公開鍵ファイルを削除して、{{ic|authorized_keys}} ファイルにパーミッションを設定して、所有者である貴方以外のユーザーが読み書きできないようにしています。&lt;br /&gt;
&lt;br /&gt;
==セキュリティ==&lt;br /&gt;
&lt;br /&gt;
===authorized_keys ファイルの保全===&lt;br /&gt;
&lt;br /&gt;
さらなる保護のため、ユーザーが新しい公開鍵を追加して接続することを禁止させることができます。&lt;br /&gt;
&lt;br /&gt;
{{ic|authorized_keys}} ファイルをユーザーからの読み取り専用にして他のパーミッションを全て拒否してください:&lt;br /&gt;
 $ chmod 400 ~/.ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
ユーザーがパーミッションを戻せないように、{{ic|authorized_keys}} ファイルに [[ファイルのパーミッションと属性#chattr と lsattr|immutable ビットを設定]]してください。これだけだとユーザーが {{ic|~/.ssh}} ディレクトリの名前を変更して新しい {{ic|~/.ssh}} ディレクトリと {{ic|authorized_keys}} ファイルを作成してしまう可能性があります。{{ic|~/.ssh}} ディレクトリにも immutable ビットを設定するようにしてください。&lt;br /&gt;
&lt;br /&gt;
{{Note|新しい鍵を追加する必要が出たら、一度 {{ic|authorized_keys}} の immutable ビットを削除して書き込み可能にする必要があります。鍵を追加したらまたビットを設定してください。}}&lt;br /&gt;
&lt;br /&gt;
===パスワードログインの無効化===&lt;br /&gt;
公開鍵をリモートの SSH サーバーにコピーすることで、ネットワークを介してパスワードを入力する必要はなくなりましたが、これだけではパスワードの総当り攻撃に対しては防御になっていません。秘密鍵が使用されなかった場合、SSH サーバーはデフォルトでパスワード認証を行うようになっています。パスワードを推測することによって攻撃者がアクセスを取得しようとする恐れがあります。パスワードログインを無効化するには、リモートサーバーの {{ic|/etc/ssh/sshd_config}} ファイル内の以下の行を編集してください。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ssh/sshd_config|&lt;br /&gt;
PasswordAuthentication no&lt;br /&gt;
ChallengeResponseAuthentication no}}&lt;br /&gt;
&lt;br /&gt;
=== 2段階認証と公開鍵 ===&lt;br /&gt;
&lt;br /&gt;
OpenSSH 6.2 から、{{ic|AuthenticationMethods}} オプションを使って自分でチェインを追加して認証することができるようになりました。これによって公開鍵だけでなく2段階認証が使うことができます。&lt;br /&gt;
&lt;br /&gt;
Google Authenticator のセットアップについては [[Google Authenticator]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
OpenSSH で PAM を使うには、以下のファイルを編集します:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ssh/sshd_config|&lt;br /&gt;
ChallengeResponseAuthentication yes&lt;br /&gt;
AuthenticationMethods publickey keyboard-interactive:pam&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
これで公開鍵かユーザー認証のどちらかでログインできます。&lt;br /&gt;
&lt;br /&gt;
公開鍵とユーザー認証の両方を使って認証したい場合、AuthenticationMethods でスペースの代わりにカンマを使って下さい:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ssh/sshd_config|&lt;br /&gt;
ChallengeResponseAuthentication yes&lt;br /&gt;
AuthenticationMethods publickey,keyboard-interactive:pam&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==SSH エージェント==&lt;br /&gt;
秘密鍵をパスフレーズで暗号化した場合、公開鍵認証を使って SSH サーバーに接続するたびに設定したパスフレーズを入力する必要があります。認証を進める前に秘密鍵を復号化するために {{ic|ssh}} や {{ic|scp}} が呼ばれるたびにパスフレーズが求められるのです。&lt;br /&gt;
&lt;br /&gt;
SSH エージェントは復号化された秘密鍵をキャッシュして、あなたに代わって SSH クライアントプログラムに鍵を提出します。この場合、パスフレーズを入力するのは一度だけでよく、その時に秘密鍵がエージェントのキャッシュに追加されます。これは頻繁に SSH 接続を行う場合にとても便利です。&lt;br /&gt;
&lt;br /&gt;
大抵、エージェントはログイン時に自動的に実行されるように設定され、ログインセッションの間はずっと実行し続けます。この効果を得るのに様々なエージェント、フロントエンド、設定が存在します。このセクションでは様々なソリューションを並べているので、必要に応じて選びとるようにしてください。&lt;br /&gt;
&lt;br /&gt;
===ssh-agent===&lt;br /&gt;
ssh-agent は OpenSSH に含まれているデフォルトのエージェントです。直接使用することもできますし、後のセクションで触れている、フロントエンドのためのバックエンドとして使うこともできます。{{ic|ssh-agent}} が実行されると、ssh-agent は自分をバックグラウンドにフォークして、使用する環境変数を出力します。&lt;br /&gt;
&lt;br /&gt;
{{hc|$ ssh-agent|2=&lt;br /&gt;
SSH_AUTH_SOCK=/tmp/ssh-vEGjCM2147/agent.2147; export SSH_AUTH_SOCK;&lt;br /&gt;
SSH_AGENT_PID=2148; export SSH_AGENT_PID;&lt;br /&gt;
echo Agent pid 2148;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
これらの変数を利用するには、{{ic|eval}} コマンドを通してコマンドを実行してください。&lt;br /&gt;
&lt;br /&gt;
{{hc|$ eval $(ssh-agent)|&lt;br /&gt;
Agent pid 2157&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|上記のコマンドを {{ic|~/.bash_profile}} スクリプトに追加すればログインシェルが起動した時に自動で実行されます。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|ssh-agent}} を実行したら、秘密鍵をキャッシュに追加する必要があります:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ ssh-add ~/.ssh/id_ecdsa|&lt;br /&gt;
Enter passphrase for /home/user/.ssh/id_ecdsa:&lt;br /&gt;
Identity added: /home/user/.ssh/id_ecdsa (/home/user/.ssh/id_ecdsa)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
秘密鍵が暗号化されている場合、{{ic|ssh-add}} はパスフレーズを入力するように要求します。秘密鍵がエージェントに追加されたら、パスフレーズを入力することなく SSH 接続を行うことができるようになります。&lt;br /&gt;
&lt;br /&gt;
鍵が必要になるまでパスフレーズの入力をしないようにするには、以下を {{ic|~/.bashrc}} に追加します:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;if ! pgrep -u $USER ssh-agent &amp;gt; /dev/null; then&lt;br /&gt;
    ssh-agent &amp;gt; ~/.ssh-agent-thing&lt;br /&gt;
fi&lt;br /&gt;
if [[ &amp;quot;$SSH_AGENT_PID&amp;quot; == &amp;quot;&amp;quot; ]]; then&lt;br /&gt;
    eval $(&amp;lt;~/.ssh-agent-thing)&lt;br /&gt;
fi&lt;br /&gt;
ssh-add -l &amp;gt;/dev/null || alias ssh=&#039;ssh-add -l &amp;gt;/dev/null || ssh-add &amp;amp;&amp;amp; unalias ssh; ssh&#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ic|ssh-agent}} プロセスが存在しない場合にプロセスが実行され、出力が保存されます。プロセスが既に存在する場合、キャッシュされた {{ic|ssh-agent}} の出力を取得して必要な環境変数を設定します。また、必要なときは、{{ic|ssh}} にエイリアスを作成してエージェントに鍵を追加し、それからエイリアスを削除します。この方法の欠点は {{ic|git}} など、{{ic|ssh}} 以外の秘密鍵を使用するコマンドでは鍵は追加されないということです。&lt;br /&gt;
&lt;br /&gt;
後で述べるように、この問題を回避できる {{ic|ssh-agent}} のフロントエンドや代替エージェントも多数存在します。&lt;br /&gt;
&lt;br /&gt;
====systemd ユーザーで ssh-agent を起動====&lt;br /&gt;
&lt;br /&gt;
[[systemd/ユーザー]]機能を使ってエージェントを起動することができます。{{ic|~/.config/systemd/user}} フォルダに以下のユニットファイルを配置してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/systemd/user/ssh-agent.service|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=SSH key agent&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=forking&lt;br /&gt;
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket&lt;br /&gt;
ExecStart=/usr/bin/ssh-agent -a $SSH_AUTH_SOCK&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=&amp;lt;/nowiki&amp;gt;&#039;&#039;default&#039;&#039;.target&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|1=export SSH_AUTH_SOCK=&amp;quot;$XDG_RUNTIME_DIR/ssh-agent.socket&amp;quot;}} をシェルのスタートアップファイルに追加してください。例えば [[Bash]] の場合 {{ic|.bash_profile}} です。その後、サービスを有効化・起動してください。&lt;br /&gt;
&lt;br /&gt;
====ssh-agent をラッパープログラムとして使う====&lt;br /&gt;
ssh-agent を (X セッションごとに) 起動する別の方法は [http://upc.lbl.gov/docs/user/sshagent.shtml UC Berkeley Labs による ssh-agent チュートリアル] に載っています。{{ic|startx}} コマンドで X を起動する場合に、以下のように {{ic|ssh-agent}} を {{ic|startx}} の前に付けることができます:&lt;br /&gt;
&lt;br /&gt;
 $ ssh-agent startx&lt;br /&gt;
&lt;br /&gt;
And so you don&#039;t even need to think about it you can put an alias in your {{ic|.bash_aliases}} file or equivalent:&lt;br /&gt;
&lt;br /&gt;
 alias startx=&#039;ssh-agent startx&#039;&lt;br /&gt;
&lt;br /&gt;
Doing it this way avoids the problem of having extraneous {{ic|ssh-agent}} instances floating around between login sessions. Exactly one instance will live and die with the entire X session.&lt;br /&gt;
&lt;br /&gt;
{{note|You can also add {{ic|eval $(ssh-agent)}} to {{ic|~/.xinitrc}}.}}&lt;br /&gt;
&lt;br /&gt;
See [[#ssh-add で x11-ssh-askpass を呼び出す|the below notes on using x11-ssh-askpass with ssh-add]] for an idea on how to immediately add your key to the agent.&lt;br /&gt;
&lt;br /&gt;
===GnuPG エージェント===&lt;br /&gt;
&lt;br /&gt;
[[公式リポジトリ]] の {{Pkg|gnupg}} パッケージに入っている [[GnuPG]] エージェントには OpenSSH エージェントのエミュレーションがあります。GnuPG スイートを既に使っている場合は、GnuPG エージェントを使って SSH 鍵をキャッシュすることが可能です。さらに、場合によっては GnuPG エージェントがパスフレーズ管理の一部として提供している PIN エントリダイアログを使うのも良いでしょう。&lt;br /&gt;
&lt;br /&gt;
{{Note|KDE を使っていて {{Pkg|kde-agent}} をインストールしている場合、{{ic|enable-ssh-support}} を {{ic|~/.gnupg/gpg-agent.conf}} に設定するだけで設定は完了です。KDE を使っていない場合は、さらに先まで読んで下さい。}}&lt;br /&gt;
&lt;br /&gt;
SSH 鍵を GnuPG エージェントで使うには、{{ic|~/.gnupg/gpg-agent.conf}} ファイルで {{ic|enable-ssh-support}} を有効にする必要があります。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.gnupg/gpg-agent.conf|&lt;br /&gt;
  # Enable SSH support&lt;br /&gt;
  enable-ssh-support&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
次に、{{ic|gpg-connect-agent}} を使っている場合は &#039;&#039;gpg-agent&#039;&#039; を起動して、{{ic|SSH_AUTH_SOCK}} を設定することで SSH が &#039;&#039;ssh-agent&#039;&#039; ではなく &#039;&#039;gpg-agent&#039;&#039; を使うようにします。そして GPG TTY を設定して X セッションにユーザーが切り替わった場合は TTY を更新します。例:&lt;br /&gt;
{{hc|~/.bashrc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
&lt;br /&gt;
  # Start the gpg-agent if not already running&lt;br /&gt;
  if ! pgrep -x -u &amp;quot;${USER}&amp;quot; gpg-agent &amp;gt;/dev/null 2&amp;gt;&amp;amp;1; then&lt;br /&gt;
    gpg-connect-agent /bye &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
  fi&lt;br /&gt;
&lt;br /&gt;
  # Set SSH to use gpg-agent&lt;br /&gt;
  unset SSH_AGENT_PID&lt;br /&gt;
  if [ &amp;quot;${gnupg_SSH_AUTH_SOCK_by:-0}&amp;quot; -ne $$ ]; then&lt;br /&gt;
    export SSH_AUTH_SOCK=&amp;quot;${HOME}/.gnupg/S.gpg-agent.ssh&amp;quot;&lt;br /&gt;
  fi&lt;br /&gt;
&lt;br /&gt;
  # Set GPG TTY&lt;br /&gt;
  GPG_TTY=$(tty)&lt;br /&gt;
  export GPG_TTY&lt;br /&gt;
&lt;br /&gt;
  # Refresh gpg-agent tty in case user switches into an X session&lt;br /&gt;
  gpg-connect-agent updatestartuptty /bye &amp;gt;/dev/null&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Once &#039;&#039;gpg-agent&#039;&#039; is running you can use &#039;&#039;ssh-add&#039;&#039; to approve keys, just like you did with plain &#039;&#039;ssh-agent&#039;&#039;. The list of approved keys is stored in the {{ic|~/.gnupg/sshcontrol}} file. Once your key is approved, you will get a PIN entry dialog every time your passphrase is needed. You can control passphrase caching in the {{ic|~/.gnupg/gpg-agent.conf}} file. The following example would have &#039;&#039;gpg-agent&#039;&#039; cache your keys for 3 hours: &lt;br /&gt;
{{hc|~/.gnupg/gpg-agent.conf|&lt;br /&gt;
  # Cache settings&lt;br /&gt;
  default-cache-ttl 10800&lt;br /&gt;
  default-cache-ttl-ssh 10800&lt;br /&gt;
}}&lt;br /&gt;
Other useful settings for this file include the PIN entry program (GTK, QT, or ncurses version), keyboard grabbing, and so on...&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.gnupg/gpg-agent.conf|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
  # Keyboard control&lt;br /&gt;
  #no-grab&lt;br /&gt;
    &lt;br /&gt;
  # PIN entry program&lt;br /&gt;
  #pinentry-program /usr/bin/pinentry-curses&lt;br /&gt;
  #pinentry-program /usr/bin/pinentry-qt4&lt;br /&gt;
  #pinentry-program /usr/bin/pinentry-kwallet&lt;br /&gt;
  #pinentry-program /usr/bin/pinentry-gtk-2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
===Keychain===&lt;br /&gt;
[http://www.funtoo.org/Keychain Keychain] は出来る限りユーザーの手を煩わせることなく SSH 鍵の管理を楽にするために作られたプログラムです。&#039;&#039;ssh-agent&#039;&#039; と &#039;&#039;ssh-add&#039;&#039; の両方を動かすシェルスクリプトとして実装されています。Keychain の特徴として、複数のログインセッションで単一の &#039;&#039;ssh-agent&#039;&#039; プロセスを維持することができます。したがって、パスフレーズを入力するのはマシンを起動したときだけで済みます。&lt;br /&gt;
&lt;br /&gt;
[[公式リポジトリ]]から {{Pkg|keychain}} パッケージを[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
以下の行を {{ic|~/.bash_profile}} に追記:&lt;br /&gt;
{{hc|~/.bash_profile|&lt;br /&gt;
eval $(keychain --eval --agents ssh -Q --quiet id_ecdsa)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
In the above example, the {{ic|--eval}} switch outputs lines to be evaluated by the opening {{ic|eval}} command. This sets the necessary environments variables for SSH client to be able to find your agent. The {{ic|--agents}} switch is not strictly necessary because Keychain will build the list automatically based on the existence of &#039;&#039;ssh-agent&#039;&#039; or &#039;&#039;gpg-agent&#039;&#039; on the system. Adding the {{ic|--quiet}} switch will limit output to warnings, errors, and user prompts. If you want greater security, replace {{ic|-Q}} with {{ic|--clear}} but will be less convenient.&lt;br /&gt;
&lt;br /&gt;
If necessary, replace {{ic|~/.ssh/id_ecdsa}} with the path to your private key. For those using a non-Bash compatible shell, see {{ic|keychain --help}} or {{ic|man keychain}} for details on other shells.&lt;br /&gt;
&lt;br /&gt;
To test Keychain, log out from your session and log back in. If this is your first time running Keychain, it will prompt you for the passphrase of the specified private key. Because Keychain reuses the same &#039;&#039;ssh-agent&#039;&#039; process on successive logins, you should not have to enter your passphrase the next time you log in. You will only be prompted for your passphrase once each time the machine is rebooted.&lt;br /&gt;
&lt;br /&gt;
===envoy===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/vodik/envoy envoy] は Keychain の代替プログラムです。Envoy は[[公式リポジトリ]]の {{Pkg|envoy}} でインストールできます。また、Git バージョンは [[AUR]] の {{AUR|envoy-git}} でインストールできます。&lt;br /&gt;
&lt;br /&gt;
インストールしたら、{{ic|envoy@ssh-agent.socket}} を[[有効化]]して envoy ソケットをセットアップしてください。&lt;br /&gt;
&lt;br /&gt;
And add to your shell&#039;s rc file:&lt;br /&gt;
&lt;br /&gt;
  envoy -t ssh-agent -a &#039;&#039;ssh_key&#039;&#039;&lt;br /&gt;
  source &amp;lt;(envoy -p)&lt;br /&gt;
&lt;br /&gt;
If the key is {{ic|~/.ssh/id_rsa}}, {{ic|~/.ssh/id_dsa}}, {{ic|~/.ssh/id_ecdsa}}, or {{ic|~/.ssh/identity}}, the {{ic|-a &#039;&#039;ssh_key&#039;&#039;}} parameter is not needed.&lt;br /&gt;
&lt;br /&gt;
====envoy で kwallet に キーパスフレーズを保存====&lt;br /&gt;
&lt;br /&gt;
SSH 鍵に長いパスワードを設定している場合、思い出すのが一苦労かもしれません。そんなときは kwallet にパスワードを保存しましょう。{{Pkg|envoy}} だけでなく、[[公式リポジトリ]]から {{Pkg|ksshaskpass}} と {{Pkg|ksshaskpass}} をインストールしてください。そして、systemd で envoy ソケットを有効化してください (上を参照)。&lt;br /&gt;
&lt;br /&gt;
{{Note|As of April 30, 2015, if after installation {{Pkg|ksshaskpass}} keeps asking for access to your wallet even after having submitted the password, you might have [[https://bbs.archlinux.org/viewtopic.php?id=192862 this]] problem. The proposed solution is to install {{Aur|ksshaskpass4}}, though this might break your login.}}&lt;br /&gt;
&lt;br /&gt;
まず、以下のスクリプトを {{ic|~/.kde4/Autostart/ssh-agent.sh}} に追加:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 envoy -t ssh-agent -a &#039;&#039;ssh_key&#039;&#039;&lt;br /&gt;
それから、次のコマンドを実行してスクリプトに実行可能属性を付与: {{ic|chmod +x ~/.kde4/Autostart/ssh-agent.sh}}&lt;br /&gt;
&lt;br /&gt;
そして以下を {{ic|~/.kde4/env/ssh-agent.sh}} に追加:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 eval $(envoy -p)&lt;br /&gt;
&lt;br /&gt;
KDE にログインしたときに、{{ic|ssh-agent.sh}}　スクリプトが実行されるようになります。このスクリプトは &#039;&#039;ksshaskpass&#039;&#039; を呼び出して、envoy が &#039;&#039;ssh-agent&#039;&#039; を呼び出したときに kwallet パスワードの入力を求めます。&lt;br /&gt;
&lt;br /&gt;
===x11-ssh-askpass===&lt;br /&gt;
The {{pkg|x11-ssh-askpass}} package provides a graphical dialog for entering your passhrase when running an X session. &#039;&#039;x11-ssh-askpass&#039;&#039; depends only on the {{Pkg|libx11}} and {{Pkg|libxt}} libraries, and the appearance of &#039;&#039;x11-ssh-askpass&#039;&#039; is customizable. While it can be invoked by the &#039;&#039;ssh-add&#039;&#039; program, which will then load your decrypted keys into [[#ssh-agent|ssh-agent]], the following instructions will, instead, configure &#039;&#039;x11-ssh-askpass&#039;&#039; to be invoked by the aforementioned [[#Keychain|Keychain]] script.&lt;br /&gt;
&lt;br /&gt;
{{Pkg|keychain}} と {{Pkg|x11-ssh-askpass}} をインストールしてください。どちらも[[公式リポジトリ]]に入っています。&lt;br /&gt;
&lt;br /&gt;
Edit your {{ic|~/.xinitrc}} file to include the following lines, replacing the name and location of your private key if necessary. Be sure to place these commands &#039;&#039;&#039;before&#039;&#039;&#039; the line which invokes your window manager.&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.xinitrc|&lt;br /&gt;
keychain ~/.ssh/id_ecdsa&lt;br /&gt;
[ -f ~/.keychain/$HOSTNAME-sh ] &amp;amp;&amp;amp; . ~/.keychain/$HOSTNAME-sh 2&amp;gt;/dev/null&lt;br /&gt;
[ -f ~/.keychain/$HOSTNAME-sh-gpg ] &amp;amp;&amp;amp; . ~/.keychain/$HOSTNAME-sh-gpg 2&amp;gt;/dev/null&lt;br /&gt;
...&lt;br /&gt;
exec openbox-session}}&lt;br /&gt;
&lt;br /&gt;
In the above example, the first line invokes &#039;&#039;keychain&#039;&#039; and passes the name and location of your private key. If this is not the first time &#039;&#039;keychain&#039;&#039; was invoked, the following two lines load the contents of {{ic|$HOSTNAME-sh}} and {{ic|$HOSTNAME-sh-gpg}}, if they exist. These files store the environment variables of the previous instance of &#039;&#039;keychain&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====ssh-add で x11-ssh-askpass を呼び出す====&lt;br /&gt;
The &#039;&#039;ssh-add&#039;&#039; manual page specifies that, in addition to needing the {{ic|DISPLAY}} variable defined, you also need {{ic|SSH_ASKPASS}} set to the name of your askpass program (in this case &#039;&#039;x11-ssh-askpass&#039;&#039;). It bears keeping in mind that the default Arch Linux installation places the &#039;&#039;x11-ssh-askpass&#039;&#039; binary in {{ic|/usr/lib/ssh/}}, which will not be in most people&#039;s {{ic|PATH}}. This is a little annoying, not only when declaring the {{ic|SSH_ASKPASS}} variable, but also when theming. You have to specify the full path everywhere. Both inconveniences can be solved simultaneously by symlinking:&lt;br /&gt;
&lt;br /&gt;
 $ ln -sv /usr/lib/ssh/x11-ssh-askpass ~/bin/ssh-askpass&lt;br /&gt;
&lt;br /&gt;
This is assuming that {{ic|~/bin}} is in your {{ic|PATH}}. So now in your {{ic|.xinitrc}}, before calling your window manager, one just needs to export the {{ic|SSH_ASKPASS}} environment variable:&lt;br /&gt;
&lt;br /&gt;
 $ export SSH_ASKPASS=ssh-askpass&lt;br /&gt;
&lt;br /&gt;
and your [[X resources]] will contain something like:&lt;br /&gt;
&lt;br /&gt;
 ssh-askpass*background: #000000&lt;br /&gt;
&lt;br /&gt;
Doing it this way works well with [[#ssh-agent をラッパープログラムとして使う|the above method on using &#039;&#039;ssh-agent&#039;&#039; as a wrapper program]]. You start X with {{ic|ssh-agent startx}} and then add &#039;&#039;ssh-add&#039;&#039; to your window manager&#039;s list of start-up programs.&lt;br /&gt;
&lt;br /&gt;
====テーマ====&lt;br /&gt;
&#039;&#039;x11-ssh-askpass&#039;&#039; ダイアログの外観は [[X resources]] を設定することでカスタマイズできます。&#039;&#039;x11-ssh-askpass&#039;&#039; の [http://www.jmknoble.net/software/x11-ssh-askpass/ ホームページ] にはいくつか [http://www.jmknoble.net/software/x11-ssh-askpass/screenshots.html サンプルテーマ] が挙げられています。詳しくは &#039;&#039;x11-ssh-askpass&#039;&#039; のマニュアルページを見て下さい。&lt;br /&gt;
&lt;br /&gt;
====他のパスフレーズダイアログ====&lt;br /&gt;
&#039;&#039;x11-ssh-askpass&#039;&#039; の代わりに他のパスフレーズダイアログプログラムを使うこともできます:&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|ksshaskpass}} は公式リポジトリからインストールできます。{{Pkg|kdelibs}} に依存しており [[KDE]] デスクトップ環境にうってつけです。&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|openssh-askpass}} は {{Pkg|qt4}} ライブラリに依存しており公式リポジトリからインストールできます。&lt;br /&gt;
&lt;br /&gt;
===pam_ssh===&lt;br /&gt;
[http://pam-ssh.sourceforge.net/ pam_ssh] プロジェクトは SSH 秘密鍵の [[Wikipedia:Pluggable authentication module|Pluggable Authentication Module]] (PAM) を提供しています。このモジュールを使うことで SSH 接続のシングルサインオンができます。ログイン時に、伝統的なシステムパスワードの代わりに、もしくはそれに加えて、SSH 秘密鍵のパスフレーズを入力することができます。認証が完了したら、pam_ssh モジュールは ssh-agent を生成して復号化された秘密鍵をセッションの間だけ保存します。&lt;br /&gt;
&lt;br /&gt;
tty ログインプロンプトでシングルサインオンを有効にしたいときは、[[Arch User Repository]] から非公式の {{AUR|pam_ssh}} パッケージをインストールしてください。&lt;br /&gt;
&lt;br /&gt;
{{Note|pam_ssh 2.0 では認証プロセスに使用する秘密鍵を {{ic|~/.ssh/login-keys.d/}} 下に配置する必要があります。}}&lt;br /&gt;
&lt;br /&gt;
秘密鍵ファイルのシンボリックリンクを作成して {{ic|~/.ssh/login-keys.d/}} に配置します。以下の例の {{ic|id_rsa}} をあなたの秘密鍵ファイルの名前に置き換えて下さい:&lt;br /&gt;
&lt;br /&gt;
 $ mkdir ~/.ssh/login-keys.d/&lt;br /&gt;
 $ cd ~/.ssh/login-keys.d/&lt;br /&gt;
 $ ln -s ../id_rsa&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/pam.d/login}} ファイルを編集して以下の例で太字でハイライトされているテキストを記述してください。これらの行の順番は重要で、ログインに影響します。&lt;br /&gt;
&lt;br /&gt;
{{Warning|Misconfiguring PAM can leave the system in a state where all users become locked out.  Before making any changes, you should have an understanding of how PAM configuration works as well as a backup means of accessing the PAM configuration files, such as an Arch Live CD, in case you become locked out and need to revert any changes.  An IBM developerWorks [http://www.ibm.com/developerworks/linux/library/l-pam/index.html article] is available which explains PAM configuration in further detail.}}&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/pam.d/login|2=&lt;br /&gt;
#%PAM-1.0&lt;br /&gt;
&lt;br /&gt;
auth       required     pam_securetty.so&lt;br /&gt;
auth       requisite    pam_nologin.so&lt;br /&gt;
auth       include      system-local-login&lt;br /&gt;
&#039;&#039;&#039;auth       optional     pam_ssh.so        try_first_pass&#039;&#039;&#039;&lt;br /&gt;
account    include      system-local-login&lt;br /&gt;
session    include      system-local-login&lt;br /&gt;
&#039;&#039;&#039;session    optional     pam_ssh.so&#039;&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
In the above example, login authentication initially proceeds as it normally would, with the user being prompted to enter his user password.  The additional {{ic|auth}} authentication rule added to the end of the authentication stack then instructs the pam_ssh module to try to decrypt any private keys found in the {{ic|~/.ssh/login-keys.d}} directory.  The {{ic|try_first_pass}} option is passed to the pam_ssh module, instructing it to first try to decrypt any SSH private keys using the previously entered user password.  If the user&#039;s private key passphrase and user password are the same, this should succeed and the user will not be prompted to enter the same password twice.  In the case where the user&#039;s private key passphrase user password differ, the pam_ssh module will prompt the user to enter the SSH passphrase after the user password has been entered.  The {{ic|optional}} control value ensures that users without an SSH private key are still able to log in.  In this way, the use of pam_ssh will be transparent to users without an SSH private key.&lt;br /&gt;
&lt;br /&gt;
If you use another means of logging in, such as an X11 display manager like [[SLiM]] or [[XDM]] and you would like it to provide similar functionality, you must edit its associated PAM configuration file in a similar fashion.  Packages providing support for PAM typically place a default configuration file in the {{ic|/etc/pam.d/}} directory.&lt;br /&gt;
&lt;br /&gt;
Further details on how to use pam_ssh and a list of its options can be found in the pam_ssh man page.&lt;br /&gt;
&lt;br /&gt;
====pam_ssh の既知の問題====&lt;br /&gt;
Work on the pam_ssh project is infrequent and the documentation provided is sparse.  You should be aware of some of its limitations which are not mentioned in the package itself.&lt;br /&gt;
&lt;br /&gt;
* Versions of pam_ssh prior to version 2.0 do not support SSH keys employing the newer option of ECDSA (elliptic curve) cryptography.  If you are using earlier versions of pam_ssh you must use either RSA or DSA keys.&lt;br /&gt;
&lt;br /&gt;
* The {{ic|ssh-agent}} process spawned by pam_ssh does not persist between user logins.  If you like to keep a [[GNU Screen]] session active between logins you may notice when reattaching to your screen session that it can no longer communicate with ssh-agent.  This is because the GNU Screen environment and those of its children will still reference the instance of ssh-agent which existed when GNU Screen was invoked but was subsequently killed in a previous logout.  The [[#Keychain|Keychain]] front-end avoids this problem by keeping the ssh-agent process alive between logins.&lt;br /&gt;
&lt;br /&gt;
===GNOME Keyring===&lt;br /&gt;
[[GNOME]] デスクトップを使用する場合、[[GNOME Keyring]] ツールを SSH エージェントとして使うことができます。詳しくは [[GNOME Keyring]] の記事を見て下さい。&lt;br /&gt;
&lt;br /&gt;
===Kwallet を使って SSH 鍵を保存===&lt;br /&gt;
kwallet を使って SSH 鍵を保存する方法は、[[KDE Wallet#KDE ウォレットを使って ssh 鍵を保存]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
===KeePass2 と KeeAgent プラグイン===&lt;br /&gt;
&lt;br /&gt;
[http://lechnology.com/software/keeagent/ KeeAgent] は [[KeePass]] のプラグインで、SSH 鍵を KeePass データベースに保存することができ、他のプログラムから SSH 認証に使用されます。&lt;br /&gt;
&lt;br /&gt;
* PuTTY と OpenSSH の秘密鍵フォーマットをサポート。&lt;br /&gt;
* Linux/Mac のネイティブの SSH エージェントと Windows の PuTTY で動作。&lt;br /&gt;
&lt;br /&gt;
[[KeePass#プラグインのインストール]]を見て、{{AUR|keepass-plugin-keeagent}} パッケージを[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
==トラブルシューティング==&lt;br /&gt;
If it appears that the SSH server is ignoring your keys, ensure that you have the proper permissions set on all relevant files.&amp;lt;br /&amp;gt;&lt;br /&gt;
For the local machine:&lt;br /&gt;
&lt;br /&gt;
 $ chmod 700 ~/&lt;br /&gt;
 $ chmod 700 ~/.ssh&lt;br /&gt;
 $ chmod 600 ~/.ssh/id_ecdsa&lt;br /&gt;
&lt;br /&gt;
For the remote machine:&lt;br /&gt;
&lt;br /&gt;
 $ chmod 700 ~/&lt;br /&gt;
 $ chmod 700 ~/.ssh&lt;br /&gt;
 $ chmod 600 ~/.ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
If that does not solve the problem you may try temporarily setting {{ic|StrictModes}} to {{ic|no}} in {{ic|sshd_config}}. If authentication with StrictModes off is successful, it is likely an issue with file permissions persists.&lt;br /&gt;
{{Tip|Do not forget to set {{ic|StrictModes}} to {{ic|yes}} for added security.}}&lt;br /&gt;
Make sure the remote machine supports the type of keys you are using. Try using RSA or DSA keys instead [[#Generating an SSH key pair]]&lt;br /&gt;
 Some servers do not support ECDSA keys. &lt;br /&gt;
&lt;br /&gt;
Failing this, run the sshd in debug mode and monitor the output while connecting:&lt;br /&gt;
&lt;br /&gt;
 # /usr/bin/sshd -d&lt;br /&gt;
&lt;br /&gt;
=== kdm を使う ===&lt;br /&gt;
KDM doesn&#039;t launch the ssh-agent process directly, {{Pkg|kde-agent}} used to start ssh-agent on login, but since version 20140102-1 it got [https://projects.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/kde-agent&amp;amp;id=1070467b0f74b2339ceca2b9471d1c4e2b9c9c8f removed].&lt;br /&gt;
&lt;br /&gt;
In order to start ssh-agent on KDE startup for a user, create scripts to start ssh-agent on startup and one to kill it on logoff:&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
echo -e &#039;#!/bin/sh\n[ -n &amp;quot;$SSH_AGENT_PID&amp;quot; ] || eval &amp;quot;$(ssh-agent -s)&amp;quot;&#039; &amp;gt; ~/.kde4/env/ssh-agent-startup.sh&lt;br /&gt;
echo -e &#039;#!/bin/sh\n[ -z &amp;quot;$SSH_AGENT_PID&amp;quot; ] || eval &amp;quot;$(ssh-agent -k)&amp;quot;&#039; &amp;gt; ~/.kde4/shutdown/ssh-agent-shutdown.sh&lt;br /&gt;
chmod 755 ~/.kde4/env/ssh-agent-startup.sh ~/.kde4/shutdown/ssh-agent-shutdown.sh&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
[[KDE#Plasma_5|Plasma 5]] を使用している場合、{{ic|~/.kde4}} ではなく {{ic|~/.config/plasma-workspace/}} ディレクトリにスクリプトを作成してください:&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
echo -e &#039;#!/bin/sh\n[ -n &amp;quot;$SSH_AGENT_PID&amp;quot; ] || eval &amp;quot;$(ssh-agent -s)&amp;quot;&#039; &amp;gt; ~/.config/plasma-workspace/env/ssh-agent-startup.sh&lt;br /&gt;
echo -e &#039;#!/bin/sh\n[ -z &amp;quot;$SSH_AGENT_PID&amp;quot; ] || eval &amp;quot;$(ssh-agent -k)&amp;quot;&#039; &amp;gt; ~/.config/plasma-workspace/shutdown/ssh-agent-shutdown.sh&lt;br /&gt;
chmod 755 ~/.config/plasma-workspace/env/ssh-agent-startup.sh ~/.config/plasma-workspace/shutdown/ssh-agent-shutdown.sh&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==参照==&lt;br /&gt;
* [http://www.ibm.com/developerworks/linux/library/l-keyc.html OpenSSH key management, Part 1]&lt;br /&gt;
* [http://www.ibm.com/developerworks/linux/library/l-keyc2/ OpenSSH key management, Part 2]&lt;br /&gt;
* [http://www.ibm.com/developerworks/library/l-keyc3/ OpenSSH key management, Part 3]&lt;br /&gt;
* [http://kimmo.suominen.com/docs/ssh/ Getting started with SSH]&lt;br /&gt;
* [http://www.openssh.com/txt/release-5.7 OpenSSH 5.7 Release Notes]&lt;br /&gt;
* [https://stribika.github.io/2015/01/04/secure-secure-shell.html Secure Secure Shell]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF&amp;diff=4603</id>
		<title>カーネルパラメータ</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF&amp;diff=4603"/>
		<updated>2015-12-31T23:03:05Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: /* 設定 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:カーネル]]&lt;br /&gt;
[[en:Kernel parameters]]&lt;br /&gt;
[[es:Kernel parameters]]&lt;br /&gt;
[[zh-CN:Kernel parameters]]&lt;br /&gt;
カーネルの挙動を操作するために、カーネルにオプションを通すタイミングは3回あります:&lt;br /&gt;
&lt;br /&gt;
# カーネルをビルドするとき。&lt;br /&gt;
# カーネルを起動するとき（普通、ブートローダから読み込まれた時）。&lt;br /&gt;
# 起動中（{{ic|/proc}} と {{ic|/sys}} にあるファイルを使う）。&lt;br /&gt;
&lt;br /&gt;
このページでは2番目の場合について詳しく記述し、Arch Linux でよく使われるカーネルパラメータの一覧を示します。&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* {{ic|$ cat /proc/cmdline}} を実行することで起動時のパラメータとあなたによって変更がされたかを確認できます。&lt;br /&gt;
* Arch Linux の [https://www.archlinuxjp.org/download/ インストールメディア] は [[Wikipedia:BIOS|BIOS]] 環境なら [[Syslinux]] を、[[UEFI]] 環境なら [[systemd-boot]] を使います。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
カーネルパラメータを設定するには、ブートメニューが出た時にそのメニューを編集して一時的にセットするのと、ブートローダの設定ファイルを修正する方法があります。&lt;br /&gt;
&lt;br /&gt;
ここでは [[Syslinux]], [[systemd-boot]], [[GRUB]], [[GRUB Legacy]], [[LILO]] のそれぞれの場合に {{ic|quiet}} と {{ic|splash}} パラメータを加える方法を説明します。&lt;br /&gt;
&lt;br /&gt;
=== Syslinux ===&lt;br /&gt;
&lt;br /&gt;
* メニューが表示されたら {{ic|Tab}} を押してパラメータを文字列の最後に加える:&lt;br /&gt;
&lt;br /&gt;
: {{bc|1=linux /boot/vmlinuz-linux root=/dev/sda3 initrd=/boot/initramfs-linux.img &#039;&#039;quiet splash&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
: {{ic|Enter}} を押して加えたパラメータを使って起動します。&lt;br /&gt;
&lt;br /&gt;
* 再起動後も変更を持続させるには、{{ic|/boot/syslinux/syslinux.cfg}} を開き、パラメータを {{ic|APPEND}} 行に加えます:&lt;br /&gt;
&lt;br /&gt;
: {{bc|1=APPEND root=/dev/sda3 &#039;&#039;quiet splash&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
Syslinux の設定について、詳しくは [[Syslinux]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== systemd-boot ===&lt;br /&gt;
&lt;br /&gt;
* メニューが表示されたら {{ic|e}} を押して一番末尾にパラメータを追加してください:&lt;br /&gt;
&lt;br /&gt;
: {{bc|1=initrd=\initramfs-linux.img root=/dev/sda2 &#039;&#039;quiet splash&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
: {{ic|Enter}} を押すと編集したパラメータで起動が開始されます。&lt;br /&gt;
&lt;br /&gt;
{{Note|メニューのタイムアウト値を設定していない場合、起動時 systemd-boot のメニューが表示されるまで {{ic|Space}} を押し続ける必要があります。}}&lt;br /&gt;
&lt;br /&gt;
* 再起動後も変更を永続的に適用するには、{{ic|/boot/loader/entries/arch.conf}} ([[ビギナーズガイド#UEFI マザーボードの場合|ビギナーズガイド]]の指示通りに [[Unified Extensible Firmware Interface#EFI System Partition|EFI System Partition]] と設定ファイルを設定した場合) を編集して {{ic|options}} 行に以下を追加してください:&lt;br /&gt;
&lt;br /&gt;
: {{bc|1=options root=/dev/sda2 &#039;&#039;quiet splash&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
systemd-boot に関する詳細は [[systemd-boot]] の記事を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== GRUB ===&lt;br /&gt;
&lt;br /&gt;
* メニューが表示されたら {{ic|e}} を押しパラメータを {{ic|linux}} 行の後ろに加えます:&lt;br /&gt;
&lt;br /&gt;
: {{bc|1=linux /boot/vmlinuz-linux root=UUID=978e3e81-8048-4ae1-8a06-aa727458e8ff &#039;&#039;quiet splash&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
: {{ic|b}} を押して加えたパラメータを使って起動します。&lt;br /&gt;
&lt;br /&gt;
* 再起動後も変更を持続させるには、{{ic|/boot/grub/grub.cfg}}　を開いて上と同じ行を編集することも&#039;&#039;できますが&#039;&#039;、初心者におすすめの方法は:&lt;br /&gt;
&lt;br /&gt;
:{{ic|/etc/default/grub}} を開きカーネルオプションを {{ic|GRUB_CMDLINE_LINUX_DEFAULT}} 行に追加:&lt;br /&gt;
&lt;br /&gt;
:: {{bc|1=GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;&#039;&#039;quiet splash&#039;&#039;&amp;quot;}}&lt;br /&gt;
&lt;br /&gt;
:そして {{ic|grub.cfg}} ファイルを自動生成します:&lt;br /&gt;
&lt;br /&gt;
:: {{bc|# grub-mkconfig -o /boot/grub/grub.cfg}}&lt;br /&gt;
&lt;br /&gt;
GRUB の設定について、詳しくは [[GRUB]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== GRUB Legacy ===&lt;br /&gt;
&lt;br /&gt;
* メニューが表示されたら {{ic|e}} を押しパラメータを {{ic|linux}} 行の後ろに加えます:&lt;br /&gt;
&lt;br /&gt;
: {{bc|1=kernel /boot/vmlinuz-linux root=/dev/sda3 &#039;&#039;quiet splash&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
: {{ic|b}} を押して加えたパラメータを使って起動します。&lt;br /&gt;
&lt;br /&gt;
* 再起動後も変更を持続させるには、{{ic|/boot/grub/menu.lst}} を開いて上と同じように {{ic|kernel}} 行にパラメータを追加します。&lt;br /&gt;
&lt;br /&gt;
GRUB Legacy の設定について詳しくは [[GRUB Legacy]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== LILO ===&lt;br /&gt;
&lt;br /&gt;
* パラメータを {{ic|/etc/lilo.conf}} に追加します:&lt;br /&gt;
&lt;br /&gt;
: {{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
image=/boot/vmlinuz-linux&lt;br /&gt;
        ...&lt;br /&gt;
        &amp;lt;/nowiki&amp;gt;&#039;&#039;quiet splash&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
LILO の設定については [[LILO]] により多くの情報があります。&lt;br /&gt;
&lt;br /&gt;
=== rEFInd ===&lt;br /&gt;
&lt;br /&gt;
* 再起動後も変更を適用するには、{{ic|/boot/EFI/arch/refind_linux.conf}} を編集して、パラメータを全ての（もしくは必要な）行に追加してください、例えば:&lt;br /&gt;
: {{bc|1=&amp;quot;Boot to X&amp;quot;   &amp;quot;root=PARTUUID=978e3e81-8048-4ae1-8a06-aa727458e8ff ro rootfstype=ext4 quiet splash}}&lt;br /&gt;
&lt;br /&gt;
* rEFInd で OS の自動検知を無効にしていて、代わりに {{ic|/boot/EFI/refind/refind.conf}} で OS を定義して OS をロードしている場合、以下のように編集することができます:&lt;br /&gt;
: {{bc|&amp;lt;nowiki&amp;gt;menuentry &amp;quot;Arch&amp;quot; {&lt;br /&gt;
	loader /EFI/arch/vmlinuz-arch.efi&lt;br /&gt;
	options &amp;quot;quiet splash ro root=PARTUUID=978e3e81-8048-4ae1-8a06-aa727458e8ff&amp;quot;&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
rEFInd でカーネルパラメータを設定する方法についての詳しい情報は以下を見て下さい&lt;br /&gt;
# [http://www.rodsbooks.com/refind/linux.html Configuring the rEFInd Bootmanager]&lt;br /&gt;
# [http://www.rodsbooks.com/refind/linux.html Methods of Booting Linux]&lt;br /&gt;
&lt;br /&gt;
=== EFISTUB/efibootmgr ===&lt;br /&gt;
&lt;br /&gt;
[[EFISTUB#ブートマネージャを使わずに直接起動する]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
== パラメータ一覧 ==&lt;br /&gt;
&lt;br /&gt;
パラメータは {{ic|parameter}} か {{ic|1=parameter=value}} という形式です。全てのパラメータは大文字・小文字を区別します。&lt;br /&gt;
&lt;br /&gt;
{{Note|リストの全てのオプションが使えるとは限りません。ほとんどのパラメータはサブシステムと連携していて、カーネルをサブシステムと一緒に動作するよう設定した時にだけ働きます。また、特定のハードウェアに依存しているパラメータもあります。}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!パラメータ!!説明&lt;br /&gt;
|-&lt;br /&gt;
|{{ic|1=root=}}|| Root ファイルシステム。&lt;br /&gt;
|-&lt;br /&gt;
|{{ic|1=ro}}|| 起動時に root デバイスを読み込み専用でマウント (デフォルト&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;)。&lt;br /&gt;
|-&lt;br /&gt;
|{{ic|1=rw}}|| 起動時に root デバイスを読み書き可能でマウント。&lt;br /&gt;
|-&lt;br /&gt;
|{{ic|1=initrd=}}|| initial ramdisk の場所を指定。&lt;br /&gt;
|-&lt;br /&gt;
|{{ic|1=init=}}|| init プロセスで {{ic|/sbin/init}} (Arch では [[systemd]] にリンクされています) の代わりに指定したバイナリを実行する。&lt;br /&gt;
|-&lt;br /&gt;
|{{ic|1=init=/bin/sh}}|| シェルで起動。&lt;br /&gt;
|-&lt;br /&gt;
|{{ic|1=systemd.unit=}}||&lt;br /&gt;
|-&lt;br /&gt;
|{{ic|1=systemd.unit=multi-user}}|| 指定したランレベルで起動。&lt;br /&gt;
|-&lt;br /&gt;
|{{ic|1=systemd.unit=rescue}}|| シングルユーザーモード (root) で起動&lt;br /&gt;
|-&lt;br /&gt;
|{{ic|nomodeset}}|| [[Kernel Mode Setting]] を無効にする&lt;br /&gt;
|-&lt;br /&gt;
| zswap.enabled || [[Zswap]] を有効化。&lt;br /&gt;
|-&lt;br /&gt;
| video=&amp;lt;videosetting&amp;gt; || フレームバッファのデフォルトビデオを上書き。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; [[ブートローダー]]によって {{ic|rw}} と {{ic|ro}} のどちらも設定されていないときは [[mkinitcpio]] はデフォルトの値として {{ic|ro}} を使用します。ブートローダは使用する値を設定することがあります。例えば GRUB はデフォルトで {{ic|rw}} を使用します ({{Bug|36275}} を参照)。&lt;br /&gt;
&lt;br /&gt;
全てのオプションの一覧は、[https://www.kernel.org/doc/Documentation/kernel-parameters.txt カーネルのドキュメント]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
== 関連項目 ==&lt;br /&gt;
&lt;br /&gt;
* [[sysctl]]&lt;br /&gt;
* [[省電力設定#カーネルパラメータ]]&lt;br /&gt;
* [http://files.kroah.com/lkn/lkn_pdf/ch09.pdf List of kernel parameters with further explanation and grouped by similar options]&lt;br /&gt;
* [https://www.kernel.org/doc/Documentation/kernel-parameters.txt Linux &amp;quot;Kernel Parameters&amp;quot; ドキュメント]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Cloud-init&amp;diff=4598</id>
		<title>Cloud-init</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Cloud-init&amp;diff=4598"/>
		<updated>2015-12-31T09:55:05Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: 英語版より翻訳&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Virtualization]]&lt;br /&gt;
[[Category:Networking]]&lt;br /&gt;
[[en:Cloud-init]]&lt;br /&gt;
Cloud-init はクラウドのインスタンスを最初に初期化するためのユーティリティからなるパッケージです。&lt;br /&gt;
[[OpenStack]] や [[AWS]] などのクラウドで起動するための Arch Linux イメージに入れる必要があります。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
[[公式リポジトリ]] から {{Pkg|cloud-init}} をインストールします。&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
クラウド用の Arch のイメージを準備するためには、いくつかのステップが必要になります:&lt;br /&gt;
&lt;br /&gt;
* デフォルトユーザーを作成する。このユーザーでインスタンスにログインすることになります。ここでは {{ic|arch}} というユーザーを作成します。&lt;br /&gt;
* sudo をインストールし、デフォルトユーザーを sudo グループに追加します。これでスーパーユーザーとしてコマンドを実行できるようになります。&lt;br /&gt;
* デフォルトユーザーがパスワードなしで sudo できるようにします。&lt;br /&gt;
* インスタンスのメタ情報を引き出せるように cloud-init を設定します。以下のことが含まれますが、これだけに限られるわけではありません:&lt;br /&gt;
** {{ic|hostname}} をセットする&lt;br /&gt;
** {{ic|resolv.conf}} をセットする&lt;br /&gt;
** デフォルトユーザーの {{ic|~/.ssh/authorized_keys}} をセットする&lt;br /&gt;
&lt;br /&gt;
cloud-init のメイン設定ファイルは {{ic|/etc/cloud/cloud.cfg}} です。{{ic|/etc/cloud/cloud.cfg.d}} に {{ic|*.cfg}} ファイルを 置くと、これらも読み込まれます。&lt;br /&gt;
&lt;br /&gt;
=== デフォルトユーザーの設定 ===&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/cloud/cloud.cfg}} を編集して以下のようにします:&lt;br /&gt;
&lt;br /&gt;
 users:&lt;br /&gt;
   - default&lt;br /&gt;
&lt;br /&gt;
これによって {{ic|system_info}} &amp;gt; {{ic|default_user}} のユーザーがデフォルトユーザーになります。&lt;br /&gt;
&lt;br /&gt;
 system_info:&lt;br /&gt;
    distro: arch&lt;br /&gt;
    default_user:&lt;br /&gt;
      name: arch &lt;br /&gt;
      lock_passwd: True&lt;br /&gt;
      gecos: Arch&lt;br /&gt;
      groups: [adm, audio, cdrom, dialout, dip, floppy, netdev, plugdev, sudo, video]&lt;br /&gt;
      sudo: [&amp;quot;ALL=(ALL) NOPASSWD:ALL&amp;quot;]&lt;br /&gt;
      shell: /bin/bash&lt;br /&gt;
&lt;br /&gt;
{{ic|system_info}} の中でディストロを &amp;quot;arch&amp;quot; と指定しています。これによって設定に {{ic|arch.py}} が使われるようになります。さらに以下の設定をしています:&lt;br /&gt;
&lt;br /&gt;
* デフォルトユーザーの名前を {{ic|arch}} にする&lt;br /&gt;
* デフォルトユーザーのパスワードをロックする。これによって起動時に設定した SSH 鍵なしにログインできなくなる。&lt;br /&gt;
* デフォルトユーザーをグループ {{ic|adm}}, {{ic|audio}}, {{ic|cdrom}}, {{ic|dialout}}, {{ic|dip}}, {{ic|floppy}}, {{ic|netdev}}, {{ic|plugdev}}, {{ic|sudo}}, {{ic|video}} に追加する&lt;br /&gt;
* デフォルトユーザーをパスワードなしで sudo できるようにする&lt;br /&gt;
* デフォルトユーザーのシェルを {{ic|/bin/bash}} にする&lt;br /&gt;
&lt;br /&gt;
=== root でのログインを禁止する ===&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/cloud/cloud.cfg}} で次のように指定します:&lt;br /&gt;
 disable_root: true&lt;br /&gt;
&lt;br /&gt;
また、root ユーザーのパスワードを削除することもできます:&lt;br /&gt;
 # passwd -d root&lt;br /&gt;
&lt;br /&gt;
前のセクションでの設定が正しく動作することを確認できていない限り、これは実行しないでください。そうしないとインスタンスから完全に閉めだされてしまいます。&lt;br /&gt;
&lt;br /&gt;
=== データソースの設定 ===&lt;br /&gt;
&lt;br /&gt;
データソースは、起動時にどのようにインスタンスのメタ情報を引き出すかを定義します。&lt;br /&gt;
これはどのクラウド（OpenStack, AWS, OpenNebula など）を使うかによります。&lt;br /&gt;
内部では、これは共通のインターフェイスで定義されたいくつかのメソッドを実装しているモジュールに対応します。&lt;br /&gt;
{{ic|/etc/cloud/cloud.cfg}} を編集して以下のようにしてください:&lt;br /&gt;
 datasource_list: [ NoCloud, ConfigDrive, OpenNebula, Azure, AltCloud, OVF, MAAS, GCE, OpenStack, CloudSigma, Ec2, CloudStack, None ]&lt;br /&gt;
&lt;br /&gt;
これによって、インスタンスのメタ情報をダウンロードするときにどのモジュールを使うかを指定します。&lt;br /&gt;
状況に応じて、以下のように各データソースごとのパラメータを渡すこともできます:&lt;br /&gt;
&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
datasource:&lt;br /&gt;
  OpenStack:&lt;br /&gt;
    metadata_urls: [ &#039;http://169.254.169.254:80&#039; ]&lt;br /&gt;
    dsmode: net&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
上記の設定は、OpenStack データソースの場合に {{ic|&amp;lt;nowiki&amp;gt;http://169.254.169.254:80&amp;lt;/nowiki&amp;gt;}} からメタデータをダウンロードするようにし、ネットワーク初期化の後に実行させるようにします。これはどちらもデフォルトの挙動であり、省略できます。&lt;br /&gt;
&lt;br /&gt;
== cloud.cfg の他のセクション ==&lt;br /&gt;
&lt;br /&gt;
{{ic|cloud.cfg}} には他にもいくつかのセクションがあり、 {{ic|cloud_init_modules}}, {{ic|cloud_config_modules}}, {{ic|cloud_final_modules}} などを含んでいます。これらはインスタンス初期化の各ステージにおいて実行されるモジュールを定義しています。&lt;br /&gt;
&lt;br /&gt;
これらのモジュールは {{ic|/usr/lib/python2.7/site-packages/cloudinit/config/}} から動的にロードされ、起動時に実行されます。&lt;br /&gt;
独自のモジュールを定義して、毎回の起動時に例えば次のようなことをさせることもできます:&lt;br /&gt;
&lt;br /&gt;
* ディスクをリサイズする&lt;br /&gt;
* パッケージをアップデートする&lt;br /&gt;
&lt;br /&gt;
== Systemd との統合 ==&lt;br /&gt;
&lt;br /&gt;
cloud-init は4個の systemd サービスと1個の systemd ターゲットを提供します。&lt;br /&gt;
これらが以下の順番で起動するように依存関係が構築されます:&lt;br /&gt;
* {{ic|cloud-init-local.service}}。ファイルシステムが立ち上がっていることを要求するだけ。{{ic|cloud-init init --local}} を実行する。&lt;br /&gt;
* {{ic|cloud-init.service}}。ネットワークが起動することを要求する。{{ic|cloud-init init}} を実行する。&lt;br /&gt;
* {{ic|cloud-config.target}}。Corresponds to the cloud-config upstart event &amp;quot;to inform third parties that cloud-config is available&amp;quot;&lt;br /&gt;
* {{ic|cloud-config.service}}. {{ic|cloud-init modules &amp;lt;nowiki&amp;gt;--mode=config&amp;lt;/nowiki&amp;gt;}} を実行する。&lt;br /&gt;
* {{ic|cloud-final.service}}. {{ic|cloud-init modules &amp;lt;nowiki&amp;gt;--mode=final&amp;lt;/nowiki&amp;gt;}} を実行する。&lt;br /&gt;
&lt;br /&gt;
[[Arch_Linux_AMIs_for_Amazon_Web_Services|Uplink Labs EC2 images]] は上記の全てを有効にしています。もっともこれは依存関係のせいでやりすぎになっているようですが。&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%83%93%E3%82%AE%E3%83%8A%E3%83%BC%E3%82%BA%E3%82%AC%E3%82%A4%E3%83%89&amp;diff=4577</id>
		<title>ビギナーズガイド</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%83%93%E3%82%AE%E3%83%8A%E3%83%BC%E3%82%BA%E3%82%AC%E3%82%A4%E3%83%89&amp;diff=4577"/>
		<updated>2015-12-28T21:27:59Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: /* ハードウェアクロック */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Arch の入手とインストール]]&lt;br /&gt;
[[Category:Arch について]]&lt;br /&gt;
[[ar:Beginners&#039; guide]]&lt;br /&gt;
[[bg:Beginners&#039; guide]]&lt;br /&gt;
[[cs:Beginners&#039; guide]]&lt;br /&gt;
[[da:Beginners&#039; guide]]&lt;br /&gt;
[[de:Anleitung für Einsteiger]]&lt;br /&gt;
[[el:Beginners&#039; guide]]&lt;br /&gt;
[[en:Beginners&#039; guide]]&lt;br /&gt;
[[es:Beginners&#039; guide]]&lt;br /&gt;
[[fa:راهنمای_تازه‌کاران]]&lt;br /&gt;
[[fr:Installation]]&lt;br /&gt;
[[he:Beginners&#039; guide]]&lt;br /&gt;
[[hr:Beginners&#039; guide]]&lt;br /&gt;
[[hu:Beginners&#039; guide]]&lt;br /&gt;
[[id:Beginners&#039; guide]]&lt;br /&gt;
[[it:Beginners&#039; guide]]&lt;br /&gt;
[[ko:Beginners&#039; guide]]&lt;br /&gt;
[[lt:Beginners&#039; guide]]&lt;br /&gt;
[[nl:Beginners&#039; guide]]&lt;br /&gt;
[[pl:Beginners&#039; guide]]&lt;br /&gt;
[[pt:Beginners&#039; guide]]&lt;br /&gt;
[[ro:Ghidul începătorilor]]&lt;br /&gt;
[[ru:Beginners&#039; guide]]&lt;br /&gt;
[[sk:Beginners&#039; guide]]&lt;br /&gt;
[[sr:Beginners&#039; guide]]&lt;br /&gt;
[[sv:Nybörjarguiden]]&lt;br /&gt;
[[tr:Yeni başlayanlar rehberi]]&lt;br /&gt;
[[uk:Beginners&#039; guide]]&lt;br /&gt;
[[zh-cn:Beginners&#039; guide]]&lt;br /&gt;
[[zh-tw:Beginners&#039; guide]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|:カテゴリ:アクセシビリティ}}&lt;br /&gt;
{{Related|インストールガイド}}&lt;br /&gt;
{{Related|ディスクレスシステム}}&lt;br /&gt;
{{Related|SSH からインストール}}&lt;br /&gt;
{{Related|一般的な推奨事項}}&lt;br /&gt;
{{Related|一般的なトラブルシューティング}}&lt;br /&gt;
{{Related|ブートデバッグ}}&lt;br /&gt;
{{Related|pacman#トラブルシューティング}}&lt;br /&gt;
{{Related|pacman-key#トラブルシューティング}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&amp;lt;!-- Include the different sub pages --&amp;gt;&lt;br /&gt;
この文章では [https://projects.archlinux.org/arch-install-scripts.git/ Arch Install Scripts] を使って [[Arch Linux]] をインストールする方法を解説します。インストールする前に、[[FAQ]] を一読することをおすすめします。&lt;br /&gt;
&lt;br /&gt;
コミュニティによって管理されている [[メインページ|ArchWiki]] は有用な資料であり、問題が発生したらまず wiki を読んでみましょう。wiki で答えが見つからないときは、[https://archlinuxjp-slack.herokuapp.com/ Slack] や [https://bbs.archlinuxjp.org/ フォーラム] を使って下さい。また、[[The Arch Way|Arch Way]] に従って、知らないコマンドの {{ic|man}} ページを見るようにしましょう。{{ic|man &#039;&#039;コマンド&#039;&#039;}} で見ることができます。&lt;br /&gt;
&lt;br /&gt;
== 動作環境 ==&lt;br /&gt;
&lt;br /&gt;
Arch Linux は i686 互換の、最低 256MB の RAM を積んだマシンで動作します。また、基本的なインストールに必要な {{Grp|base}} グループに含まれる全てのパッケージをインストールするには約 800MB のディスク容量が必要です。使える容量が少ない場合、この数値をかなり切り詰めることが可能ですが、どうやるかは調べる必要があります。&lt;br /&gt;
&lt;br /&gt;
== 最新のインストールメディアを準備する ==&lt;br /&gt;
&lt;br /&gt;
Arch の公式インストールメディアは[https://www.archlinuxjp.org/download/ ダウンロードページ]から入手できます。ひとつの ISO で32ビットと64ビット両方のアーキテクチャをサポートしています。出来るだけ一番新しい ISO を使って下さい。&lt;br /&gt;
&lt;br /&gt;
インストールイメージには署名がされており、使用する前に署名を検証するのが推奨されています (特に HTTP ミラーからダウンロードした場合)。[[GnuPG]] をインストールした環境で、ダウンロードした &#039;&#039;PGP 署名&#039;&#039;を ISO のディレクトリに配置して、次を実行してください:&lt;br /&gt;
 $ gpg --verify archlinux-&amp;lt;version&amp;gt;-dual.iso.sig&lt;br /&gt;
公開鍵が見つからない場合、{{ic|gpg --recv-keys &#039;&#039;key-id&#039;&#039;}} で[[GnuPG#鍵のインポート|インポート]]できます [http://sparewotw.wordpress.com/2012/10/31/how-to-verify-signature-using-sig-file/]。もしくは、既存の Arch Linux 環境から次を実行:&lt;br /&gt;
 $ pacman-key -v archlinux-&amp;lt;version&amp;gt;-dual.iso.sig&lt;br /&gt;
{{ic|md5}} と {{ic|sha1}} チェックサムはそれぞれ &#039;&#039;md5sum&#039;&#039; と &#039;&#039;sha256sum&#039;&#039; でチェックできます。&lt;br /&gt;
&lt;br /&gt;
=== USB と光学ドライブ ===&lt;br /&gt;
&lt;br /&gt;
[[光学ディスクドライブ#焼き込み]] (CD/DVD) や [[USB インストールメディア]] (USB) を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== ネットワーク経由でのインストール ===&lt;br /&gt;
&lt;br /&gt;
[[PXE]] の記事を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== 既存の Linux 環境からインストール ===&lt;br /&gt;
&lt;br /&gt;
[[既存の Linux からインストール]]を見て下さい。[[VNC]] や [[SSH]] を使って Arch をリモートでインストールするときに特に便利です。[[SSH からインストール]]も参照。&lt;br /&gt;
&lt;br /&gt;
=== 仮想マシンへのインストール ===&lt;br /&gt;
&lt;br /&gt;
現在使用しているオペレーティングシステムを残したまま、[[Wikipedia:ja:仮想機械|仮想マシン]]上でインストール手順を実行することで、ストレージのパーティションを行う必要なく Arch Linux に慣れることができます。また、ブラウザでこのビギナーズガイドを開いたままインストールが可能です。独立した Arch Linux システムを使用できるということは、テストを行いたいという一部のユーザーにとって有益なことでしょう。&lt;br /&gt;
&lt;br /&gt;
仮想化ソフトウェアの例としては、[[VirtualBox]], [[VMware]], [[QEMU]], [[Xen]], [[Parallels]] があります。&lt;br /&gt;
&lt;br /&gt;
仮想マシンを準備するための正確な手順は、ソフトウェアによって異なりますが、一般的に次の手順に従います:&lt;br /&gt;
&lt;br /&gt;
# オペレーティングシステムのホストにて、仮想ディスクイメージを作成します。 &lt;br /&gt;
# 仮想マシンの設定を最適化します。 &lt;br /&gt;
# 仮想 CD ドライブでダウンロードした ISO イメージを起動します。  &lt;br /&gt;
# [[#インストールメディアの起動|インストールメディアの起動]]に進みます。&lt;br /&gt;
&lt;br /&gt;
== インストールメディアの起動 ==&lt;br /&gt;
&lt;br /&gt;
最初に、あなたのコンピュータの BIOS セットアップで起動順序を変更する必要があるかもしれません。それには、POST ([[Wikipedia:ja:Power On Self Test|Power On Self-Test]]) の間にキー (多くの場合 {{ic|Delete}}、{{ic|F1}}、{{ic|F2}}、{{ic|F11}} や {{ic|F12}}) を押します。これで BIOS の設定画面が表示されるので、ここでシステムが起動するデバイスを探す順番を設定できます。&amp;quot;Save &amp;amp; Exit&amp;quot; (もしくはそれに準ずるもの) を選択すればコンピュータは通常通り起動するはずです。&lt;br /&gt;
&lt;br /&gt;
Arch のメニューが表示されたら、インストールを行うライブ環境を開始するために &amp;quot;Boot Arch Linux&amp;quot; をメニューから選択し、{{ic|Enter}} キーを押します (UEFI ブートディスクから起動した場合は、次のオプションを選択: &amp;quot;Arch Linux archiso x86_64 UEFI&amp;quot;)。ブートエントリを編集することで様々なブートパラメータ ({{ic|copytoram}} など) を使うことができます。Syslinux では {{ic|tab}} を押し、systemd-boot では {{ic|e}} を押します。詳しくは [https://projects.archlinux.org/archiso.git/tree/docs/README.bootparams README.bootparams] を参照。&lt;br /&gt;
&lt;br /&gt;
起動するとシェルプロンプトが表示され、root として自動的にログインが行われます。シェルは [[Zsh]] です。高度な [http://zsh.sourceforge.net/Guide/zshguide06.html タブ補完] など、[http://grml.org/zsh/ grml の設定] の機能が使用できます。テキストファイルを編集する時は、コンソールエディタの [[nano]] を使うことが推奨されています。使い方をよく知らない場合は、[[nano#nano の使用方法]] を見て下さい。Windows とのデュアルブートをする（もしくはそうすることを計画している）場合、[[Windows と Arch のデュアルブート]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== UEFI モードでブートしているかどうかのテスト ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|将来を考えると EFI モードでインストールを行ったほうが望ましいのですが、初期の UEFI の実装には BIOS よりも大量のバグが存在しています。UEFI モードを使用する前にあなたの使用しているマザーボードのモデルについて検索をすることが推奨されます。}}&lt;br /&gt;
&lt;br /&gt;
[[Unified Extensible Firmware Interface|UEFI]] マザーボードを使用していて、UEFI ブートモードが有効になっている (そしてそれが BIOS/Legacy モードよりも優先されている) 場合、CD/USB のインストールメディアは自動で [[systemd-boot]] を使って Arch Linux カーネルを起動します。そして以下のメニューが表示されます (黒地に白字)、最初のアイテムがハイライトされます:&lt;br /&gt;
{{bc|&lt;br /&gt;
Arch Linux archiso x86_64 UEFI USB&lt;br /&gt;
UEFI Shell x86_64 v1&lt;br /&gt;
UEFI Shell x86_64 v2&lt;br /&gt;
EFI Default Loader}}&lt;br /&gt;
&lt;br /&gt;
UEFI モードで起動しているのか確認したい場合は、次を実行:&lt;br /&gt;
&lt;br /&gt;
 # efivar -l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;efivar&#039;&#039; が UEFI 変数を正しく表示したら、UEFI モードで起動されています。表示されない場合は [[Unified Extensible Firmware Interface#UEFI 変数のサポートを正しく動作させるための必要条件]] に記載されている全ての要件が満たされているか確認してください。&lt;br /&gt;
&lt;br /&gt;
=== 起動時の問題のトラブルシューティング ===&lt;br /&gt;
&lt;br /&gt;
* Intel のビデオチップセットを使用していて、ブート中にブランクスクリーン (画面が黒くなる) になった場合、おそらく Kernel Mode Setting ([[Kernel Mode Setting|KMS]]) に問題があります。回避策は、パソコンを再起動し、起動しようとしている項目 (i686 または x86_64) の上で、{{ic|Tab}} キーを押します。末尾に {{ic|nomodeset}} を追加し、{{ic|Enter}} キーを押します。または {{ic|1=video=SVIDEO-1:d}} (KMS は無効にされません) を設定します。もしくは、{{ic|i915.modeset&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;0}} を試して下さい。詳細は [[Intel Graphics|Intel]] ページを参照してください。&lt;br /&gt;
&lt;br /&gt;
* ブランクスクリーンに&#039;&#039;ならず&#039;&#039;、カーネルのロード中に固まる場合は、{{ic|Tab}} キーをメニューの項目上で押し、末尾に {{ic|1=acpi=off}} を追加し、{{ic|Enter}} キーを押します。&lt;br /&gt;
&lt;br /&gt;
== 言語の選択 ==&lt;br /&gt;
&lt;br /&gt;
{{Tip|以下の設定は必須ではありません。設定ファイルをあなたの使う言語で書いたり、Wi-Fi パスワードで区別的発音符を使ったり、もしくはあなたの言語でシステムメッセージ(例えばエラー)を見たいときだけに役に立ちます。ここでの変更はインストールプロセスに&#039;&#039;だけ&#039;&#039;適用されます。}}&lt;br /&gt;
&lt;br /&gt;
標準で、キーボードのレイアウトは {{ic|us}} に設定されています。もし、[[Wikipedia:File:KB United States-NoAltGr.svg|US]] キーボード以外のレイアウトを使用している場合は、&lt;br /&gt;
&lt;br /&gt;
 # loadkeys &#039;&#039;レイアウト名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
で変更できます。&#039;&#039;レイアウト名&#039;&#039;の部分は {{ic|jp106}}、{{ic|fr}}、{{ic|uk}}、{{ic|be-latin1}} などに置き換えます。[[コンソールでのキーボード設定#キーボードレイアウトの設定|ここ]]から一般的なレイアウトのリストを見ることができます。利用可能なキーマップを表示するには {{ic|localectl list-keymaps}} コマンドを使って下さい。&lt;br /&gt;
&lt;br /&gt;
{{Warning|以下はフォントと言語の設定ですが、この段階では、日本語を表示することはできません。}}&lt;br /&gt;
&lt;br /&gt;
フォントも変える必要があるかもしれません。ほとんどの言語は[[Wikipedia:ja:アルファベット|アルファベット]]の26字よりも多くの文字を使っているからです。さもなければ文字が□（豆腐）になったり全く異なって表示されることがあります。フォントの名前は大文字・小文字を区別するので、&#039;&#039;正確に&#039;&#039;入力してください:&lt;br /&gt;
&lt;br /&gt;
 # setfont lat9w-16&lt;br /&gt;
&lt;br /&gt;
標準では、言語は英語 (US) に設定されています。インストール中の言語を変更したい場合 &#039;&#039;(例: 日本語)&#039;&#039;、{{ic|/etc/locale.gen}} 内のあなたの設定したい[[ロケール]]の行と、英語 (US) の行から行頭の {{ic|#}} を削除します。{{ic|UTF-8}} を選択してください。&lt;br /&gt;
&lt;br /&gt;
シンプルな Nano エディタで編集するには、{{ic|nano /etc/locale.gen}} と入力してください。{{ic|Ctrl+X}} で終了し、変更を保存するか聞かれたら {{ic|Y}} と、 {{ic|Enter}} を押せば同じファイル名で上書き保存します。&lt;br /&gt;
&lt;br /&gt;
{{hc|# nano /etc/locale.gen|&lt;br /&gt;
en_US.UTF-8 UTF-8&lt;br /&gt;
ja_JP.UTF-8 UTF-8}}&lt;br /&gt;
&lt;br /&gt;
 # locale-gen&lt;br /&gt;
 # export LANG=ja_JP.UTF-8&lt;br /&gt;
&lt;br /&gt;
== インターネット接続の確立 ==&lt;br /&gt;
&lt;br /&gt;
{{Warning|[http://cgit.freedesktop.org/systemd/systemd/tree/NEWS?id&amp;amp;#61;dee4c244254bb49d1ffa8bd7171ae9cce596d2d0 v197] 以降、udev はネットワークインターフェースの名前を wlanX や ethX といった風に名づけません。あなたが他のディストリビューションを使っているなどの理由で、新しい命名規則を知らないのならば、あなたの無線インターフェースの名前が wlan0 だとか、有線インターフェースの名前が eth0 ではない可能性があることを予め覚えておいて下さい。{{ic|ip link}} コマンドでインターフェースの名前を調べることができます。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|dhcpcd}} ネットワークデーモンはブート時に自動で起動して、可能であれば有線での接続を試みます。接続できているかウェブサイトに ping をして確かめて下さい。例えば Google のサーバーに ping します:&lt;br /&gt;
&lt;br /&gt;
{{hc|# ping -c 3 www.google.com|2=&lt;br /&gt;
PING www.l.google.com (74.125.132.105) 56(84) bytes of data.&lt;br /&gt;
64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=1 ttl=50 time=17.0 ms&lt;br /&gt;
64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=2 ttl=50 time=18.2 ms&lt;br /&gt;
64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=3 ttl=50 time=16.6 ms&lt;br /&gt;
&lt;br /&gt;
--- www.l.google.com ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2003ms&lt;br /&gt;
rtt min/avg/max/mdev = 16.660/17.320/18.254/0.678 ms}}&lt;br /&gt;
&lt;br /&gt;
{{ic|ping: unknown host}} のエラーが出た場合は下に記述されている方法を試して手動で接続をセットアップする必要があります。ネットワークへの接続が問題ないようでしたら、[[#ドライブの準備|ドライブの準備]]へ進んでください。&lt;br /&gt;
&lt;br /&gt;
=== 有線 ===&lt;br /&gt;
&lt;br /&gt;
固定 IP アドレスを使用して有線の接続をセットアップする場合は次の手順に従ってください。&lt;br /&gt;
&lt;br /&gt;
あなたのイーサネットインターフェースの名前を確かめて下さい:&lt;br /&gt;
&lt;br /&gt;
{{hc|# ip link|&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT &lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
2: enp2s0f0: &amp;lt;BROADCAST,MULTICAST&amp;gt; mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000&lt;br /&gt;
    link/ether 00:11:25:31:69:20 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
3: wlp3s0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state UP mode DORMANT qlen 1000&lt;br /&gt;
    link/ether 01:02:03:04:05:06 brd ff:ff:ff:ff:ff:ff}}&lt;br /&gt;
&lt;br /&gt;
上記の例の場合、イーサネットインターフェースは {{ic|enp2s0f0}} です。よくわからない場合、あなたのイーサネットインターフェースはおそらく &amp;quot;e&amp;quot; から始まっているインターフェイスです。&amp;quot;w&amp;quot; で始まっているものや &amp;quot;lo&amp;quot; ではないということです。&lt;br /&gt;
&lt;br /&gt;
[[ネットワーク設定#固定 IP アドレス]]を見て必要な設定を確認してください。{{ic|/etc/dhcpcd.conf}} に以下のような設定を使って、dhcpcd の static プロファイルを設定します:&lt;br /&gt;
&lt;br /&gt;
 interface enp2s0f0&lt;br /&gt;
 static ip_address=192.168.0.10/24&lt;br /&gt;
 static routers=192.168.0.1&lt;br /&gt;
 static domain_name_servers=192.168.0.1 8.8.8.8&lt;br /&gt;
&lt;br /&gt;
{{ic|dhcpcd.service}} を再起動してください:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart dhcpcd.service&lt;br /&gt;
&lt;br /&gt;
これでネットワークに接続されるはずです。されない場合は、[[ネットワーク設定]]のページを見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== 無線 ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|(CD・USB スティックの) ライブ環境では、(ワイヤレスカードを使うのに必要な) ワイヤレスチップセットのファームウェアのパッケージは {{ic|/usr/lib/firmware}} の下にあらかじめインストールされていますが、再起動後にも無線を使うには、ユーザーがちゃんとパッケージをインストールする必要があります。パッケージのインストールはこのガイドの後ろで触れています。再起動する前にワイヤレスモジュール・ファームウェアを必ずインストールしてください。もし、あなたのチップセットがファームウェアのインストールを必要としているか不明な場合は[[ワイヤレス設定]]を見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
[[netctl]] の {{ic|wifi-menu}} を使いネットワークに接続します:&lt;br /&gt;
&lt;br /&gt;
 # wifi-menu&lt;br /&gt;
&lt;br /&gt;
コンピュータに接続されている Wi-Fi デバイスが一つしかない (ノートパソコンなど) 場合は wifi ネットワークのメニューが表示されます。&lt;br /&gt;
&lt;br /&gt;
コンピュータに複数の Wi-Fi デバイスが存在するときは、そのどれか一つを選択して &#039;&#039;wifi-menu&#039;&#039; にインターフェイスの名前を指定する必要があります。まず、インターフェイスの名前を確かめて下さい:&lt;br /&gt;
&lt;br /&gt;
{{hc|# iw dev|2=&lt;br /&gt;
phy#0&lt;br /&gt;
        Interface wlp3s0&lt;br /&gt;
                ifindex 3&lt;br /&gt;
                wdev 0x1&lt;br /&gt;
                addr 00:11:22:33:44:55&lt;br /&gt;
                type managed&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
上の例では、{{ic|wlp3s0}} が有効なワイヤレスインターフェースです。どれかわからないときは、おそらく &amp;quot;w&amp;quot; から始まるのがあなたのワイヤレスインターフェースです。&amp;quot;lo&amp;quot; や &amp;quot;e&amp;quot; から始まるインターフェースは違います。&lt;br /&gt;
&lt;br /&gt;
インターフェイスの名前がわかったら、インターフェイスの名前を指定して &#039;&#039;wifi-menu&#039;&#039; を起動します:&lt;br /&gt;
&lt;br /&gt;
 # wifi-menu wlp3s0&lt;br /&gt;
&lt;br /&gt;
ユーザー名やパスワードの設定を必要とするネットワークを使う場合は [[WPA2 Enterprise#netctl]] にあるサンプル設定を見て下さい。&lt;br /&gt;
&lt;br /&gt;
これでネットワークは有効になるはずです。接続されないときは、下の [[#wifi-menu を使わない方法|wifi-menu を使わない方法]]や、詳しい説明が載っている[[ワイヤレス設定]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
==== wifi-menu を使わない方法 ====&lt;br /&gt;
&lt;br /&gt;
インターフェースを立ち上げます:&lt;br /&gt;
&lt;br /&gt;
 # ip link set wlp3s0 up&lt;br /&gt;
&lt;br /&gt;
インターフェイスが立ち上がっているか確認するには、次のコマンドの出力を見て下さい:&lt;br /&gt;
&lt;br /&gt;
{{hc|# ip link show wlp3s0|&lt;br /&gt;
3: wlp3s0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000&lt;br /&gt;
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|&amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt;}} の中にある {{ic|UP}} がインターフェイスが立ち上がっている印です。後ろの {{ic|state DOWN}} は違います。&lt;br /&gt;
&lt;br /&gt;
ほとんどのワイヤレスチップセットには、対応するドライバに加えて、ファームウェアが必要です。カーネルが自動で検知してロードを試みます。{{ic|SIOCSIFFLAGS: No such file or directory}} のようなエラーが出た場合、ファームウェアを手動でロードする必要があることを意味しています。必要なファームウェアがわからないときは、{{ic|dmesg}} を使いカーネルログからワイヤレスチップセットのファームウェア要求をさがします。例えば、カーネルの起動時に Intel チップセットが出力するファームウェア要求の例:&lt;br /&gt;
&lt;br /&gt;
{{hc|# dmesg &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep firmware|&lt;br /&gt;
firmware: requesting iwlwifi-5000-1.ucode}}&lt;br /&gt;
&lt;br /&gt;
なにも表示されないなら、あなたのワイヤレスチップセットにはファームウェアが要らないと判断できます。&lt;br /&gt;
&lt;br /&gt;
{{ic|iw dev wlp3s0 scan &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep SSID}} を使って利用可能なネットワークをスキャンして、それからネットワークに接続してください:&lt;br /&gt;
&lt;br /&gt;
 # wpa_supplicant -B -i wlp3s0 -c &amp;lt;(wpa_passphrase &amp;quot;&#039;&#039;ssid&#039;&#039;&amp;quot; &amp;quot;&#039;&#039;psk&#039;&#039;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;ssid&#039;&#039; はネットワークの名前に (例: &amp;quot;Linksys etc...&amp;quot;)、&#039;&#039;psk&#039;&#039; はパスワードに置き換える必要があります (ネットワークの名前とパスワードを囲っているダブルクォートは消さないで下さい, 例: ネットワークのパスワードが dog の場合、&amp;quot;dog&amp;quot; と入力)。&lt;br /&gt;
&lt;br /&gt;
最後に、インターフェースに IP アドレスを与える必要があります。手動で設定するか dhcp を使ってこれを行なって下さい:&lt;br /&gt;
 # dhcpcd wlp3s0&lt;br /&gt;
&lt;br /&gt;
上のコマンドでうまくいかない場合、以下のコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
 # echo &#039;ctrl_interface=DIR=/run/wpa_supplicant&#039; &amp;gt; /etc/wpa_supplicant.conf&lt;br /&gt;
 # wpa_passphrase &amp;lt;ssid&amp;gt; &amp;lt;passphrase&amp;gt; &amp;gt;&amp;gt; /etc/wpa_supplicant.conf&lt;br /&gt;
 # ip link set &amp;lt;interface&amp;gt; up # May not be needed, but does no harm in any case&lt;br /&gt;
 # wpa_supplicant -B -D nl80211 -c /etc/wpa_supplicant.conf -i &amp;lt;interface name&amp;gt;&lt;br /&gt;
 # dhcpcd -A &amp;lt;interface name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== アナログモデム, ISDN, PPPoE DSL ===&lt;br /&gt;
&lt;br /&gt;
xDSL・ダイアルアップ・ISDN接続については、[[モデムに直接接続]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== プロキシサーバを使う ===&lt;br /&gt;
&lt;br /&gt;
プロキシサーバを使うには、{{ic|http_proxy}}, {{ic|ftp_proxy}} 環境変数を設定しなくてはなりません。詳しい情報は[[プロキシ設定]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
== 時計を合わせる ==&lt;br /&gt;
&lt;br /&gt;
[[systemd-timesyncd]] を使ってシステムクロックを正確な時刻に合わせて下さい。起動するには:&lt;br /&gt;
 # timedatectl set-ntp true&lt;br /&gt;
&lt;br /&gt;
サービスの状態を確認したいときは {{ic|timedatectl status}} を使って下さい。&lt;br /&gt;
&lt;br /&gt;
詳しくは、[[時刻]]を参照。&lt;br /&gt;
&lt;br /&gt;
== ドライブの準備 ==&lt;br /&gt;
&lt;br /&gt;
{{Warning|&lt;br /&gt;
* パーティショニングを行うと既存のデータが消去されます。実施する前に、必要なデータはバックアップしてください。&lt;br /&gt;
* UEFI/GPT 環境でインストールした Windows とデュアルブートしたい場合、Windows を起動するのに必要な Windows の &#039;&#039;.efi&#039;&#039; ファイルが含まれている UEFI パーティションを再フォーマットしてはいけません。さらに、Arch のブートモードとパーティションの組み合わせを Windows と同一に設定する必要があります。[[Windows と Arch のデュアルブート#重要情報]]を参照。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
このステップでは、新しいシステムをインストールするためにストレージデバイスの準備を行います。詳しい情報は[[パーティショニング]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
[[LVM]], [[ディスク暗号化]], [[RAID]] などのスタックブロックデバイスを作成したい場合は、この段階で行います。USB フラッシュキーにインストールする場合は、[[USB キーに Arch Linux をインストール]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== デバイスの確認 ===&lt;br /&gt;
&lt;br /&gt;
まず新しいシステムをインストールするデバイスを確認します。次のコマンドを実行すると全てのデバイスが表示されます:&lt;br /&gt;
&lt;br /&gt;
 # lsblk&lt;br /&gt;
&lt;br /&gt;
このコマンドはシステムに接続されたデバイスとパーティションを表示しますが、Arch インストールメディアを起動するのに使われているデバイスも含まれています。したがって、どのデバイスでもインストールが行えるというわけではありません。不必要なデバイスを表示しないようにするには、以下のようにコマンドを実行します:&lt;br /&gt;
&lt;br /&gt;
 # lsblk | grep -v &amp;quot;rom\|loop\|airoot&amp;quot;&lt;br /&gt;
&lt;br /&gt;
デバイス (ハードディスク) は {{ic|sd&#039;&#039;x&#039;&#039;}} と示されます。{{ic|&#039;&#039;x&#039;&#039;}} は {{ic|a}} から始まる小文字のアルファベットで、一番目のデバイスは {{ic|sda}}、二番目のデバイスは {{ic|sdb}} と割り当てられます。既存のパーティションは {{ic|sd&#039;&#039;xY&#039;&#039;}} と示され、{{ic|&#039;&#039;Y&#039;&#039;}} は {{ic|1}} から始まる数字です。一番目のパーティションは {{ic|1}}、二番目のパーティションは {{ic|2}} と続きます。下の例では、一つのデバイスが存在し ({{ic|sda}})、一つのパーティションが使われています ({{ic|sda1}}):&lt;br /&gt;
&lt;br /&gt;
 NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 sda               8:0    0    80G  0 disk&lt;br /&gt;
 └─sda1            8:1    0    80G  0 part&lt;br /&gt;
&lt;br /&gt;
パーティションテーブル、パーティション、ファイルシステムでは {{ic|sd&#039;&#039;xY&#039;&#039;}} という名前を例として使います。あくまでこの名前は例なので、実際にコマンドを実行したりするときは、デバイスの名前とパーティションの番号を変える必要があります。コマンドをコピーしてそのまま貼り付けても動作しません。&lt;br /&gt;
&lt;br /&gt;
パーティションをそのまま変更しない場合は、[[#ファイルシステムの作成|ファイルシステムの作成]]まで進んでください。パーティショニングを行う場合は、次のセクションを読んで下さい。&lt;br /&gt;
&lt;br /&gt;
=== パーティションテーブルのタイプの選択 ===&lt;br /&gt;
&lt;br /&gt;
既に何らかの OS がインストールされているところに Arch をインストールする場合、既存のパーティションテーブルを使用します。デバイスがパーティショニングされてなかったり、現在のパーティションテーブルを変更する必要があるときは、まず使用されているパーティションテーブルを確認しなくてはなりません。&lt;br /&gt;
&lt;br /&gt;
パーティションテーブルには2種類あります:&lt;br /&gt;
&lt;br /&gt;
* [[Master Boot Record|MBR]]&lt;br /&gt;
* [[GUID Partition Table|GPT]]&lt;br /&gt;
&lt;br /&gt;
既存のパーティションテーブルは、次のコマンドを実行することで確認できます:&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sd&#039;&#039;x&#039;&#039; print&lt;br /&gt;
&lt;br /&gt;
=== パーティショニングツール ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|使用しているパーティショニングテーブルと互換性がないパーティショニングツールを使ってしまうと、テーブルが破壊されて、既存のパーティションやデータが消えてしまいます。}}&lt;br /&gt;
&lt;br /&gt;
デバイスをパーティショニングするには、使用されるパーティションテーブルにあわせて適切なツールを選ぶ必要があります。Arch のインストールメディアには複数のパーティショニングツールが入っています:&lt;br /&gt;
&lt;br /&gt;
* [[parted]]: GPT と MBR&lt;br /&gt;
* [[パーティショニング#Fdisk の使い方|fdisk]], &#039;&#039;&#039;cfdisk&#039;&#039;&#039;, &#039;&#039;&#039;sfdisk&#039;&#039;&#039;: GPT と MBR&lt;br /&gt;
* [[パーティショニング#Gdisk の使い方|gdisk]], &#039;&#039;&#039;cgdisk&#039;&#039;&#039;, &#039;&#039;&#039;sgdisk&#039;&#039;&#039;: GPT&lt;br /&gt;
&lt;br /&gt;
Arch のインストールメディアを起動する前に、他のライブ環境に付属しているパーティションツールを使って、デバイスを予めパーティショニングしておくことも可能です。初心者にとっては [[GParted]] などのグラフィカルなパーティショニングツールが使いやすいでしょう。GParted には [http://gparted.sourceforge.net/livecd.php ライブ CD] が存在し、MBR と GPT の両方のパーティションテーブルで動作します。&lt;br /&gt;
&lt;br /&gt;
==== インタラクティブモードの parted を使用する ====&lt;br /&gt;
&lt;br /&gt;
以下で示す例では BIOS/MBR と UEFI/GPT の両方で用いることができる &#039;&#039;parted&#039;&#039; を使っています。&#039;&#039;parted&#039;&#039; は&#039;&#039;インタラクティブモード&#039;&#039;で起動して、指定したデバイスに全てのパーティショニングコマンドを自動的に適用することで、不必要な繰り返しを避けます。&lt;br /&gt;
&lt;br /&gt;
デバイスの操作を開始するには、次を実行:&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sd&#039;&#039;x&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
コマンドラインプロンプトがハッシュ ({{ic|#}}) から {{ic|(parted)}} に変わります。&lt;br /&gt;
&lt;br /&gt;
利用できるコマンドのリストを表示するには、次を入力:&lt;br /&gt;
&lt;br /&gt;
 (parted) help&lt;br /&gt;
&lt;br /&gt;
パーティションの操作が完了した場合は、次のコマンドで parted を終了します:&lt;br /&gt;
&lt;br /&gt;
 (parted) quit&lt;br /&gt;
&lt;br /&gt;
終了後、コマンドラインプロンプトは {{ic|#}} に戻ります。&lt;br /&gt;
&lt;br /&gt;
=== 新しいパーティションテーブルの作成 ===&lt;br /&gt;
&lt;br /&gt;
パーティションテーブルのタイプを変更したい場合や、デバイスがまだパーティションされていない場合、パーティションテーブルの（再）作成が必要です。デバイスのパーティションテーブルの再作成はパーティションスキームを最初からやり直したい場合にも有用です。&lt;br /&gt;
&lt;br /&gt;
{{Warning|&lt;br /&gt;
* UEFI/GPT で Windows がインストールされている環境でデュアルブートをしたい場合は、パーティションテーブルを消去しないでください。パーティションテーブルを消去すると、Windows を起動するのに必要な &#039;&#039;.efi&#039;&#039; ファイルが入っている UEFI パーティションを含め、デバイス上の既存のデータが全て削除されます。&lt;br /&gt;
* MBR は BIOS 環境で使用するように作られており、GPT は UEFI と一緒に使われることが想定されています。ハードウェアと互換性がない機能や制限があるため、この組み合わせを使わないというのは初心者にはおすすめできません (例: MBR は 2 TiB 以上のデバイスを扱えません) [https://www.happyassassin.net/2014/01/25/uefi-boot-how-does-that-actually-work-then/]。何らかの理由でこの組み合わせを使いたくないという場合は、[http://mjg59.dreamwidth.org/8035.html] や [http://rodsbooks.com/gdisk/bios.html] に詳しい情報や対処方法が載っています。}}&lt;br /&gt;
&lt;br /&gt;
パーティションテーブルを（再）作成するデバイスを次のコマンドで開いてください:&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sd&#039;&#039;x&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
そして BIOS 環境の場合、MBR/msdos パーティションテーブルを新しく作成するために、次のコマンドを実行します:&lt;br /&gt;
&lt;br /&gt;
 (parted) mklabel msdos&lt;br /&gt;
&lt;br /&gt;
UEFI 環境で GPT パーティションテーブルを新しく作成するには、次のコマンドを使います:&lt;br /&gt;
&lt;br /&gt;
 (parted) mklabel gpt&lt;br /&gt;
&lt;br /&gt;
=== パーティションスキーム ===&lt;br /&gt;
&lt;br /&gt;
ディスクをいくつのパーティションに分けるか決めて、それぞれのパーティションにシステム上のディレクトリを割り振ることができます。パーティションからディレクトリへのマッピング (しばしば &#039;マウントポイント&#039; と呼ばれます) が[[パーティショニング#パーティション形態|パーティションスキーム]]になります。パーティションスキームは以下の要件を満たさなければなりません:&lt;br /&gt;
&lt;br /&gt;
* 少なくとも {{ic|/}} (&#039;&#039;root&#039;&#039;) ディレクトリのパーティションは必ず作成する必要があります。&lt;br /&gt;
* マザーボードのファームウェアインターフェイスや、選択した[[#パーティションテーブルのタイプの選択|パーティションテーブルのタイプ]]によって、また、時には選択した[[ブートローダー]]にあわせて、以下のパーティションを追加で作成する必要が出てきます:&lt;br /&gt;
** &#039;&#039;&#039;BIOS/MBR&#039;&#039;&#039;: 追加のパーティションは必要ありません。&lt;br /&gt;
** &#039;&#039;&#039;BIOS/GPT&#039;&#039;&#039;:&lt;br /&gt;
*** [[Syslinux]] を使用する場合: 追加のパーティションは必要ありません。&lt;br /&gt;
*** [[GRUB]] を使用する場合: タイプが {{ic|EF02}} で容量が 1MiB または 2MiB の [[GRUB#GUID Partition Table (GPT) 特有の手順|BIOS Boot Partition]]。&lt;br /&gt;
** &#039;&#039;&#039;UEFI/GPT&#039;&#039;&#039;: [[Unified Extensible Firmware Interface#EFI System Partition|EFI System Partition]]。&lt;br /&gt;
** &#039;&#039;&#039;UEFI/MBR&#039;&#039;&#039;: [[Unified Extensible Firmware Interface#EFI System Partition|EFI System Partition]]。&lt;br /&gt;
&lt;br /&gt;
以下の例では、新しい、連続するパーティションスキームを1つのデバイスに適用します。任意の {{ic|/boot}} や {{ic|/home}} ディレクトリのパーティションも作成しています。それぞれのディレクトリの目的については [[Arch ファイルシステム階層]]を見て下さい。{{ic|/boot}} や {{ic|/home}} などのディレクトリのパーティションを別に作成しない場合、{{ic|/}} パーティションに含まれることになります。また、[[スワップ|スワップ領域]]用のパーティションについても説明します。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;parted&#039;&#039; のインタラクティブセッションをまだ開いてない場合は、パーティションするデバイスを指定して起動してください:&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sd&#039;&#039;x&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
次のコマンドを使用してパーティションを作成します:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart &#039;&#039;part-type&#039;&#039; &#039;&#039;fs-type&#039;&#039; &#039;&#039;start&#039;&#039; &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* {{ic|&#039;&#039;part-type&#039;&#039;}} は {{ic|primary}}, {{ic|extended}}, {{ic|logical}} のうちどれか一つから選びます。MBR パーティションテーブルでのみ意味があります。&lt;br /&gt;
* {{ic|&#039;&#039;fs-type&#039;&#039;}} は [http://www.gnu.org/software/parted/manual/parted.html#mkpart マニュアル] に記載されているサポートがあるファイルシステムの中から選びます。パーティションは[[#ファイルシステムの作成|ファイルシステム作成]]でフォーマットします。&lt;br /&gt;
* {{ic|&#039;&#039;start&#039;&#039;}} はデバイスの先頭からのパーティションの開始位置です。[http://www.gnu.org/software/parted/manual/parted.html#unit 単位] をつけた数値で指定し、例えば {{ic|1M}} なら 1MiB が開始位置になります。&lt;br /&gt;
* {{ic|&#039;&#039;end&#039;&#039;}} はデバイスの先頭からのパーティションの終末位置です ({{ic|&#039;&#039;start&#039;&#039;}} から計算するわけではありません)。{{ic|&#039;&#039;start&#039;&#039;}} と同じ構文を使うことができ、例えば {{ic|100%}} と指定するとデバイスの終端を意味します (残り領域全てを使う)。&lt;br /&gt;
&lt;br /&gt;
{{Warning|パーティションは重ならないように注意してください。デバイスに未使用のスペースを残さないようにするには、それぞれのパーティションが前のパーティションの終末から開始するようにしてください。}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&#039;&#039;parted&#039;&#039; は以下のような警告を表示することがあります:&lt;br /&gt;
&lt;br /&gt;
 Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
 Ignore/Cancel?&lt;br /&gt;
&lt;br /&gt;
この表示がでたときは、[[パーティショニング#パーティションアライメント]]を見て [[GNU Parted#アライメント]] にしたがって修正してください。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|/boot}} ディレクトリを含むパーティションが起動できるようにフラグを立てるには次のコマンドを使います:&lt;br /&gt;
&lt;br /&gt;
 (parted) set &#039;&#039;partition&#039;&#039; boot on&lt;br /&gt;
&lt;br /&gt;
* {{ic|&#039;&#039;partition&#039;&#039;}} はフラグを立てるパーティションの番号に置き換えて下さい ({{ic|print}} コマンドの出力を参照しましょう)。&lt;br /&gt;
&lt;br /&gt;
==== UEFI/GPT の例 ====&lt;br /&gt;
&lt;br /&gt;
どんなふうにパーティショニングするにせよ、特別な [[Unified Extensible Firmware Interface#EFI System Partition|EFI System Partition]] が必要になります。&lt;br /&gt;
&lt;br /&gt;
{{Warning|UEFI/GPT で Windows がインストールされている環境でデュアルブートをしたい場合は、既存の UEFI パーティションを消去しないでください。このパーティションを消去すると、Windows を起動するのに必要な &#039;&#039;.efi&#039;&#039; ファイルが削除されてしまいます。}}&lt;br /&gt;
&lt;br /&gt;
新しく EFI System Partition を作成する場合は、以下のコマンドを使って下さい (推奨される容量は 512MiB です):&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart ESP fat32 1MiB 513MiB&lt;br /&gt;
 (parted) set 1 boot on&lt;br /&gt;
&lt;br /&gt;
あとのパーティションスキームはあなたが自由に決めて下さい。残りのスペースを全て使用する単一のパーティションを作るには:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 513MiB 100%&lt;br /&gt;
&lt;br /&gt;
{{ic|/}} (20GiB) と {{ic|/home}} (残り容量全てを使用) パーティションを作るには:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 513MiB 20.5GiB&lt;br /&gt;
 (parted) mkpart primary ext4 20.5GiB 100%&lt;br /&gt;
&lt;br /&gt;
{{ic|/}} (20GiB), スワップ (4GiB), {{ic|/home}} (残り容量全てを使用) パーティションを作成するには:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 513MiB 20.5GiB&lt;br /&gt;
 (parted) mkpart primary linux-swap 20.5GiB 24.5GiB&lt;br /&gt;
 (parted) mkpart primary ext4 24.5GiB 100%&lt;br /&gt;
&lt;br /&gt;
==== BIOS/MBR の例 ====&lt;br /&gt;
&lt;br /&gt;
ディスク容量を全て使用する単一のプライマリパーティションを作成するには、以下のコマンドを使用します:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 1MiB 100%&lt;br /&gt;
 (parted) set 1 boot on&lt;br /&gt;
&lt;br /&gt;
以下の例では、20GiB の {{ic|/}} パーティションを作成してから、残り容量を全て使用する {{ic|/home}} パーティションを作成します:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 1MiB 20GiB&lt;br /&gt;
 (parted) set 1 boot on&lt;br /&gt;
 (parted) mkpart primary ext4 20GiB 100%&lt;br /&gt;
&lt;br /&gt;
以下の例では {{ic|/boot}} (100MiB), {{ic|/}} (20GiB), スワップ (4GiB), {{ic|/home}} (残り容量全てを使用) パーティションを作成します:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 1MiB 100MiB&lt;br /&gt;
 (parted) set 1 boot on&lt;br /&gt;
 (parted) mkpart primary ext4 100MiB 20GiB&lt;br /&gt;
 (parted) mkpart primary linux-swap 20GiB 24GiB&lt;br /&gt;
 (parted) mkpart primary ext4 24GiB 100%&lt;br /&gt;
&lt;br /&gt;
=== ファイルシステムの作成 ===&lt;br /&gt;
&lt;br /&gt;
パーティショニングはまだ終わっていません。パーティションには[[ファイルシステム]]が必要です（ただしスワップパーティションには要りません）。インストール先のデバイスに存在するパーティションを確認するには次のコマンドを使用:&lt;br /&gt;
&lt;br /&gt;
 # lsblk /dev/sd&#039;&#039;x&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
下に書かれている注意点を除いて、基本的には {{ic|ext4}} ファイルシステムを使うことを推奨します:&lt;br /&gt;
&lt;br /&gt;
 # mkfs.ext4 /dev/sd&#039;&#039;xY&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Warning|UEFI/GPT で Windows がインストールされている環境でデュアルブートをしたい場合は、UEFI パーティションをフォーマットしないでください。フォーマットしてしまうと、Windows を起動するのに必要な &#039;&#039;.efi&#039;&#039; ファイルが入っている UEFI パーティションのデータが全て削除されます。}}&lt;br /&gt;
&lt;br /&gt;
UEFI/GPT 環境で新しく UEFI システムパーティションを作成した場合は、UEFI パーティションを {{ic|fat32}} または {{ic|vfat32}} ファイルシステムでフォーマットしてください。これを行っておかないと起動できなくなります:&lt;br /&gt;
 # mkfs.vfat -F32 /dev/sd&#039;&#039;xY&#039;&#039;&lt;br /&gt;
{{Note|BIOS/GPT 環境で [[GRUB]] を使用する場合、[[GRUB#GUID Partition Table (GPT) 特有の手順|BIOS Boot Partition]] は {{ic|/boot}} マウントポイントと関係ないので注意してください。このパーティションは GRUB によって直接使用されます。BIOS Boot Partition にファイルシステムを作成したり、マウントしたりしてはいけません。}}&lt;br /&gt;
&lt;br /&gt;
=== スワップの有効化 ===&lt;br /&gt;
&lt;br /&gt;
スワップパーティションを作成した場合は、以下のコマンドで有効化する必要があります:&lt;br /&gt;
&lt;br /&gt;
 # mkswap /dev/sd&#039;&#039;xY&#039;&#039;&lt;br /&gt;
 # swapon /dev/sd&#039;&#039;xY&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== パーティションのマウント ===&lt;br /&gt;
&lt;br /&gt;
{{Note|ここではスワップパーティションをマウントしないでください。}}&lt;br /&gt;
&lt;br /&gt;
まず最初に {{ic|/}} (root) パーティションをマウントしてください。{{ic|/boot}} や {{ic|/home}} などのディレクトリは root ファイルシステムに作成する必要があるためです。ライブ環境の {{ic|/mnt}} ディレクトリを使用して root パーティションをマウントします。他のパーティションはそこをベースにします。root パーティションの名前が {{ic|sd&#039;&#039;xR&#039;&#039;}} なら、次のコマンドを実行:&lt;br /&gt;
&lt;br /&gt;
 # mount /dev/sd&#039;&#039;xR&#039;&#039; /mnt&lt;br /&gt;
&lt;br /&gt;
{{ic|/}} パーティションをマウントしたら、他のパーティションをマウントすることができます。順番は気にしなくて結構です。手順としてはまずマウントポイントを作成し、それからパーティションをそのマウントポイントにマウントします。{{ic|/boot}} パーティションを作成していたのならば:&lt;br /&gt;
&lt;br /&gt;
 # mkdir -p /mnt/boot&lt;br /&gt;
 # mount /dev/sd&#039;&#039;xB&#039;&#039; /mnt/boot&lt;br /&gt;
&lt;br /&gt;
UEFI/GPT 環境の場合、EFI システムパーティションも {{ic|/boot}} にマウントすることを推奨します。他のマウントポイントを使いたいときは、[[EFISTUB]] の記事を見て下さい。&lt;br /&gt;
&lt;br /&gt;
{{ic|/home}} パーティションを使用する場合:&lt;br /&gt;
&lt;br /&gt;
 # mkdir -p /mnt/home&lt;br /&gt;
 # mount /dev/sd&#039;&#039;xH&#039;&#039; /mnt/home&lt;br /&gt;
&lt;br /&gt;
全てのパーティションをマウントしたら、デバイスの準備は完了で Arch をインストールできます。&lt;br /&gt;
&lt;br /&gt;
== ミラーの選択 ==&lt;br /&gt;
&lt;br /&gt;
インストールの前に、{{ic|mirrorlist}} ファイルを編集し、あなたに相応しいミラーを一番上に置きましょう。このファイルのコピーが {{ic|pacstrap}} によってインストールされ、新しいシステム上でも選択したミラーが使われます。&lt;br /&gt;
&lt;br /&gt;
{{hc|# nano /etc/pacman.d/mirrorlist|&lt;br /&gt;
##&lt;br /&gt;
## Arch Linux repository mirrorlist&lt;br /&gt;
## Sorted by mirror score from mirror status page&lt;br /&gt;
## Generated on YYYY-MM-DD&lt;br /&gt;
##&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
...}}&lt;br /&gt;
&lt;br /&gt;
* {{ic|Alt+6}} で {{ic|Server}} 行をコピー。&lt;br /&gt;
* {{ic|PageUp}} キーで上にスクロール。&lt;br /&gt;
* {{ic|Ctrl+U}} でリストの一番上にペースト。&lt;br /&gt;
* {{ic|Ctrl+X}} で終了、保存するか聞かれたら、{{ic|Y}} を押し {{ic|Enter}} で上書き保存。&lt;br /&gt;
&lt;br /&gt;
他のミラーを消去 ({{ic|Ctrl+K}} を使う) してミラーを&#039;&#039;ひとつだけに&#039;&#039;絞ることもできますが、そのミラーがオフラインになったときのことを考え、ミラーを複数使用するほうが良いでしょう。&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* [https://www.archlinux.org/mirrorlist/ Mirrorlist Generator] を使って、あなたの国の最新リストを入手できます。[[Wikipedia:Keepalive|keepalive]] が存在するため、HTTP ミラーのほうが FTP よりも速度が速いです。また FTP では、pacman はパッケージをダウンロードするごとにシグナルを送信しなくてはならないため、短い停止がはさまります。ミラーリストを作る他の方法を見るには、[[ミラー#ミラーをソートする|ミラーのソート]]と [[Reflector]] を参照してください。&lt;br /&gt;
* [https://archlinux.org/mirrors/status/ Arch Linux MirrorStatus] ではミラーの状況、たとえばネットワークエラー、データ収集エラー、最終同期時間などの様々な情報を見ることができます。}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* 将来、ミラーリストを変更したときは必ず、{{ic|pacman -Syyu}} で pacman の全てのパッケージリストを更新することを覚えておいて下さい。これは良い経験則と考えられており、問題の回避につながります。詳しくは[[ミラー]]を参照。&lt;br /&gt;
* 古いインストールメディアを使っている場合、ミラーリストが古くなっているかもしれません。そのために Arch Linux のアップデート時に問題を引き起こす可能性があります。({{Bug|22510}} を参照)。上で述べたようにして最新のミラー情報を入手するべきです。}}&lt;br /&gt;
&lt;br /&gt;
== ベースシステムのインストール ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;pacstrap&#039;&#039; スクリプトを使ってベースシステムをインストールします。インストールするパッケージを選択せず、{{Grp|base}} の全てのパッケージをインストールするときは、{{ic|-i}} スイッチを省いて下さい。[[AUR]] や [[ABS]] でパッケージをビルドするときのために、{{Grp|base-devel}} グループも必要になります。&lt;br /&gt;
&lt;br /&gt;
 # pacstrap -i /mnt base base-devel&lt;br /&gt;
&lt;br /&gt;
ライブ環境に含まれているツールの中には base グループに含まれていないものもあります ([https://projects.archlinux.org/archiso.git/tree/configs/releng/packages.both packages.both] を参照)。パッケージは後で &#039;&#039;pacman&#039;&#039; を使って[[インストール]]することもできますが、&#039;&#039;pacstrap&#039;&#039; コマンドにパッケージの名前を追加することでこの場でインストールすることもできます。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* ミラーを正しく設定しているのに、&#039;&#039;pacstrap&#039;&#039; が {{ic|error: failed retrieving file &#039;core.db&#039; from mirror... : Connection time-out}} で止まる場合は、他の[[Resolv.conf|ネームサーバ]]を設定してみてください。&lt;br /&gt;
* ベースパッケージのインストール中に PGP 鍵のインポートをリクエストされたら、鍵のダウンロードを承認して先に進んで下さい。これは古い Arch ISO を使っていると発生します。PGP 鍵を追加できないときは、次のようにして {{Pkg|archlinux-keyring}} パッケージを更新してみてください: {{ic|pacman -S archlinux-keyring}}。詳しくは [[Pacman#トラブルシューティング]] や [[Pacman-key#トラブルシューティング]] を見て下さい。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== fstab の生成 ==&lt;br /&gt;
&lt;br /&gt;
以下のコマンドで [[fstab]] ファイルを生成します。いくつか有利な点がある UUID が使われます ([[fstab#ファイルシステムの識別]] を参照)。UUID ではなくラベルを使いたいときは、{{ic|-U}} オプションを {{ic|-L}} に置き換えましょう。&lt;br /&gt;
&lt;br /&gt;
 # genfstab -U /mnt &amp;gt; /mnt/etc/fstab&lt;br /&gt;
 # cat /mnt/etc/fstab&lt;br /&gt;
&lt;br /&gt;
{{Warning|生成したあとは必ず {{ic|fstab}} の中身をチェックしましょう。&#039;&#039;genfstab&#039;&#039; や後のインストール作業中にエラーが起こっても、もう一度 &#039;&#039;genfstab&#039;&#039; を実行するのはやめてください。その場合は手動で {{ic|fstab}} ファイルを編集して下さい。}}&lt;br /&gt;
&lt;br /&gt;
最後のフィールドには起動時にチェックするパーティションの順番を設定します: ({{ic|btrfs}} 以外では) root パーティションに {{ic|1}} を使って下さい、最初にチェックされます。起動時にチェックしたい他のパーティションには {{ic|2}} を使って下さい、{{ic|0}} はチェックされません ([[fstab#フィールドの定義]] を参照)。[[btrfs]] のパーティションには全て {{ic|0}} を使う必要があります。スワップパーティションも {{ic|0}} に設定してください。&lt;br /&gt;
&lt;br /&gt;
== Chroot とベースシステムの設定 ==&lt;br /&gt;
&lt;br /&gt;
次に、[[Change Root|chroot]] を使って新しくインストールされたシステムに入ります:&lt;br /&gt;
&lt;br /&gt;
 # arch-chroot /mnt /bin/bash&lt;br /&gt;
&lt;br /&gt;
この段階では、Arch Linux ベースシステムの重要な設定ファイルを作ります。ファイルが存在していないときや、デフォルト設定を使いたくないときは、その都度ファイルを作成したり編集してください。&lt;br /&gt;
&lt;br /&gt;
正確に、手順をよく踏まえてから設定してください。システムを正しく設定するのにとても重要なステップです。&lt;br /&gt;
&lt;br /&gt;
{{Warning|ISO で使用しているツールは自動的にインストールされるわけではありません。例えば、インストールの一環としてネットワークに接続するために &#039;&#039;wifi-menu&#039;&#039; を使っている場合、インストールを完了した後も &#039;&#039;wifi-menu&#039;&#039; を使うためには、{{Pkg|dialog}} をインストールしておく必要があります。以下のセクションではそういったケースについて説明をしているので、後で困った事態にならないようにちゃんと指示に従って下さい。}}&lt;br /&gt;
&lt;br /&gt;
=== ロケール ===&lt;br /&gt;
&lt;br /&gt;
ロケールを設定することによって、{{Pkg|glibc}} やその他のロケールを使うプログラムやライブラリで、テキストのレンダリング、正しい通貨単位の表示、時間と月日のフォーマット、アルファベットの特有表現、地域特有の単位の表示などができるようになります。&lt;br /&gt;
&lt;br /&gt;
2つのファイルを編集する必要があります: 使用可能なロケールを記述する {{ic|locale.gen}} と実際に使用するロケールを定義する {{ic|locale.conf}}。&lt;br /&gt;
&lt;br /&gt;
{{ic|locale.gen}} ファイルはデフォルトでは全てコメントアウト ({{ic|#}} で無効化) されています。{{ic|en_US.UTF-8 UTF-8}} の行と、必要なロケールをアンコメント (行の前の {{ic|#}} を削除) してください。選択肢がいくつかある場合 {{ic|UTF-8}} を推奨します。&lt;br /&gt;
&lt;br /&gt;
{{hc|# nano /etc/locale.gen|&lt;br /&gt;
...&lt;br /&gt;
#en_SG ISO-8859-1&lt;br /&gt;
en_US.UTF-8 UTF-8&lt;br /&gt;
#en_US ISO-8859-1&lt;br /&gt;
...&lt;br /&gt;
#ja_JP.EUC-JP EUC-JP&lt;br /&gt;
ja_JP.UTF-8 UTF-8&lt;br /&gt;
#ka_GE.UTF-8 UTF-8&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
ロケールは有効にする前に、&#039;&#039;生成&#039;&#039;する必要があります:&lt;br /&gt;
&lt;br /&gt;
 # locale-gen&lt;br /&gt;
&lt;br /&gt;
{{ic|locale.conf}} ファイルはデフォルトで存在しません。ファイルを作成して、他の全ての変数のデフォルト値として扱われる {{ic|LANG}} のみ設定してください。{{ic|LANG}} 変数に指定するロケールは {{ic|/etc/locale.gen}} でアンコメントされている必要があります:&lt;br /&gt;
&lt;br /&gt;
 # echo LANG=&#039;&#039;en_US.UTF-8&#039;&#039; &amp;gt; /etc/locale.conf&lt;br /&gt;
&lt;br /&gt;
ロケールを export してください:&lt;br /&gt;
&lt;br /&gt;
 # export LANG=&#039;&#039;en_US.UTF-8&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* この段階でロケールを日本語に設定してしまうと、日本語を表示するためのフォントなどの環境が整っていないため、コンソールの出力が文字化けして判読できなくなってしまいます。GUI 環境を設定してから、以下を実行することで言語を日本語に設定できます:&lt;br /&gt;
 # echo LANG&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&#039;&#039;ja_JP.UTF-8&#039;&#039; &amp;gt; /etc/locale.conf&lt;br /&gt;
 # export LANG&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&#039;&#039;ja_JP.UTF-8&#039;&#039;&lt;br /&gt;
* システム全体のロケールを {{ic|en_US.UTF-8}} に設定してシステムログを英語で保存するとトラブルシューティングが楽になります。この設定は[[ロケール#ユーザーごとにロケールを設定]]で書かれているようにしてユーザー個別で上書きできます。&lt;br /&gt;
* 他の {{ic|LC_*}} 変数を使いたいときは、まず {{ic|locale}} を実行してオプションを確認してから、{{ic|locale.conf}} に追加してください。{{ic|LC_ALL}} 変数を使うことは推奨されません。詳しくは[[ロケール]]を参照してください。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== コンソールフォントとキーマップ ===&lt;br /&gt;
&lt;br /&gt;
[[#言語の選択|言語の選択]]でデフォルトのキーマップとフォントを変更していた場合、再起動後もキーマップ設定が適用されるように、{{ic|/etc/vconsole.conf}} を編集 (ファイルがなかったら作成) してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|# nano /etc/vconsole.conf|2=&lt;br /&gt;
KEYMAP=&#039;&#039;jp106&#039;&#039;&lt;br /&gt;
FONT=&#039;&#039;lat9w-16&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
詳しくは[[フォント#コンソールフォント|コンソールフォント]]や {{ic|man vconsole.conf}} を参照。&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|KEYMAP}} を最初に &#039;&#039;loadkeys&#039;&#039; で設定した値と異なる値に設定してから、[[#root パスワードの設定|root パスワードを設定]]してしまうと、新しいシステムにログインするときにキーマップが変わっていてログインできなくなる可能性があります。}}&lt;br /&gt;
&lt;br /&gt;
以上の設定は仮想端末においてのみ適用されます。[[Xorg]] ではまた異なる設定をする必要があります。詳しくは[[フォント#コンソールフォント]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== タイムゾーン ===&lt;br /&gt;
&lt;br /&gt;
利用可能なタイムゾーンとサブゾーンは {{ic|/usr/share/zoneinfo/&#039;&#039;ゾーン&#039;&#039;/&#039;&#039;サブゾーン&#039;&#039;}} ディレクトリで見つかります。{{ic|ls}} コマンドでゾーンの一覧を表示できます:&lt;br /&gt;
 $ ls -l /usr/share/zoneinfo&lt;br /&gt;
&lt;br /&gt;
{{Tip|[http://tldp.org/LDP/abs/html/tabexpansion.html タブ補完] を使うことでも利用できるゾーンとサブゾーンを表示できます。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/localtime}} から適切なゾーンファイル {{ic|/usr/share/zoneinfo/&#039;&#039;ゾーン&#039;&#039;/&#039;&#039;サブゾーン&#039;&#039;}} へのシンボリックリンクを作って下さい:&lt;br /&gt;
&lt;br /&gt;
 # ln -s /usr/share/zoneinfo/&#039;&#039;ゾーン&#039;&#039;/&#039;&#039;サブゾーン&#039;&#039; /etc/localtime&lt;br /&gt;
&lt;br /&gt;
例:&lt;br /&gt;
&lt;br /&gt;
 # ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime&lt;br /&gt;
&lt;br /&gt;
{{ic|ln: failed to create symbolic link &#039;/etc/localtime&#039;: File exists}} と表示される場合は、{{ic|ls -l /etc/localtime}} で既存のファイルを確認してから、&#039;&#039;ln&#039;&#039; コマンドに {{ic|-f}} オプションを追加して上書きしてください。&lt;br /&gt;
&lt;br /&gt;
=== ハードウェアクロック ===&lt;br /&gt;
&lt;br /&gt;
マシンに他の OS もインストールされている場合は、ハードウェアクロックモードを全ての OS で同じになるように設定します。さもないと、ハードウェアクロックが上書きされ時刻がずれてしまう可能性があります。&#039;&#039;hwclock&#039;&#039; コマンドは {{ic|/etc/adjtime}} ファイルを生成します。[[Wikipedia:ja:協定世界時|UTC]] に設定するには、次を実行:&lt;br /&gt;
&lt;br /&gt;
 # hwclock --systohc --utc&lt;br /&gt;
&lt;br /&gt;
{{Note|ハードウェアクロックに [[Wikipedia:ja:協定世界時|UTC]] を使ったからといって、ソフトウェアが時刻を UTC で表示するわけではありません。}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|Windows はデフォルトで &#039;&#039;localtime&#039;&#039; を使っています。Arch で &#039;&#039;localtime&#039;&#039; を使用すると既知の問題や容易に修復できないバグを引き起こす可能性があります。しかしながら、&#039;&#039;localtime&#039;&#039; のサポートを終了する計画はありません。&#039;&#039;localtime&#039;&#039; を使用する場合は、root で {{ic|hwclock --systohc --localtime}} を実行してください。Windows 7 以降を使用する場合、Arch を &#039;&#039;localtime&#039;&#039; に設定するのではなく、Windows に UTC を使わせて、Windows の時刻同期を無効にすることが推奨されています。詳しくは[[時刻#Windows で UTC を使う]]を見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
=== カーネルモジュール ===&lt;br /&gt;
&lt;br /&gt;
必要なカーネルモジュールは基本的に [[udev]] によって自動ロードされるため、手動でモジュールをロードする必要があるのは稀です。詳しくは[[カーネルモジュール]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== ホスト名 ===&lt;br /&gt;
&lt;br /&gt;
お好きな名前を[[Wikipedia:ja:ホスト名|ホスト名]]に設定してください (例: &#039;&#039;arch&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
 # echo &#039;&#039;ホスト名&#039;&#039; &amp;gt; /etc/hostname&lt;br /&gt;
&lt;br /&gt;
同じホスト名を {{ic|/etc/hosts}} に追加します:&lt;br /&gt;
&lt;br /&gt;
 #&amp;lt;ip-address&amp;gt; &amp;lt;hostname.domain.org&amp;gt; &amp;lt;hostname&amp;gt;&lt;br /&gt;
 127.0.0.1 localhost.localdomain localhost &#039;&#039;ホスト名&#039;&#039;&lt;br /&gt;
 ::1   localhost.localdomain localhost &#039;&#039;ホスト名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== ネットワークの設定 ===&lt;br /&gt;
&lt;br /&gt;
ネットワークの設定をもう一度行います。今回は新しくインストールされる環境のネットワーク設定です。[[#インターネット接続の確立|上で説明した]]のと方法はほとんど同じですが、今回の設定では、設定が消えないように、ブート時に自動的に起動するように設定します。&lt;br /&gt;
&lt;br /&gt;
まず最初に、{{ic|ip link}} で接続を設定するネットワークインターフェイスの名前を確認してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* ネットワーク設定の詳しい情報は、[[ネットワーク設定]]や[[ワイヤレス設定]]を参照してください。&lt;br /&gt;
* インターフェースについて古い命名規則 ({{ic|eth&#039;&#039;X&#039;&#039;}} や {{ic|wlan&#039;&#039;X&#039;&#039;}}) を使って欲しい時は {{ic|/etc/udev/rules.d/80-net-setup-link.rules}} に空のファイルを作成してください。これによって {{ic|/usr/lib/udev/rules.d}} 下の同じ名前のファイルがマスクされます (空のファイルを使う代わりに、{{ic|/dev/null}} へのシンボリックリンクを使うことでも命名規則を戻せます: {{ic|# ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules}})。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== 有線 ====&lt;br /&gt;
&lt;br /&gt;
===== 動的 IP =====&lt;br /&gt;
&lt;br /&gt;
; dhcpcd を使う&lt;br /&gt;
&lt;br /&gt;
固定された有線ネットワーク接続が1つだけあるという環境の場合、ネットワーク管理サービスを使う必要はなく、単純に {{ic|dhcpcd}} サービスを有効にするだけで足ります:&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable dhcpcd@&#039;&#039;インターフェイス名&#039;&#039;.service&lt;br /&gt;
&lt;br /&gt;
; netctl を使う&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/netctl/examples}} からサンプルプロファイルを {{ic|/etc/netctl/}} にコピーしてください:&lt;br /&gt;
&lt;br /&gt;
 # cd /etc/netctl&lt;br /&gt;
 # cp examples/ethernet-dhcp my_network&lt;br /&gt;
&lt;br /&gt;
プロファイルを編集して下さい ({{ic|Interface}} を {{ic|eth0}} から {{ic|ip link}} を実行したときに確認したインターフェイス名に修正する):&lt;br /&gt;
&lt;br /&gt;
 # nano my_network&lt;br /&gt;
&lt;br /&gt;
{{ic|my_network}} プロファイルを有効にしてください:&lt;br /&gt;
&lt;br /&gt;
 # netctl enable my_network&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|Running in chroot, ignoring request.}} というメッセージが表示されることがありますが、いまのところは無視してかまいません。}}&lt;br /&gt;
&lt;br /&gt;
; netctl-ifplugd を使う&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|netctl enable &#039;&#039;プロファイル名&#039;&#039;}} のようにしてプロファイルを有効にする方法と netctl-ifplugd を使う方法を一緒に用いることはできません。}}&lt;br /&gt;
&lt;br /&gt;
{{Pkg|netctl}} の {{ic|netctl-ifplugd}} を使って動的に接続を管理することもできます。&lt;br /&gt;
&lt;br /&gt;
まず {{Pkg|ifplugd}} をインストールしてください、{{ic|netctl-ifplugd}} を使うために必要なパッケージです:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S ifplugd&lt;br /&gt;
&lt;br /&gt;
そしてサービスを有効にしてください:&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable netctl-ifplugd@&#039;&#039;インターフェイス名&#039;&#039;.service&lt;br /&gt;
&lt;br /&gt;
{{Note|[[netctl]] には {{ic|netctl-auto}} もあり、{{ic|netctl-ifplugd}} と一緒に無線プロファイルを管理するのに使うことができます。}}&lt;br /&gt;
&lt;br /&gt;
===== 固定 IP =====&lt;br /&gt;
&lt;br /&gt;
; netctl を使う&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/network.d/examples}} から {{ic|/etc/netctl}} にサンプルプロファイルをコピーします:&lt;br /&gt;
&lt;br /&gt;
 # cd /etc/netctl&lt;br /&gt;
 # cp examples/ethernet-static my_network&lt;br /&gt;
&lt;br /&gt;
必要に応じてプロファイルを編集 ({{ic|Interface}}, {{ic|Address}}, {{ic|Gateway}}, {{ic|DNS}} を修正):&lt;br /&gt;
&lt;br /&gt;
 # nano my_network&lt;br /&gt;
&lt;br /&gt;
{{ic|Address}} の中の {{ic|/24}} は {{ic|255.255.255.0}} ネットマスクの [[wikipedia:Classless Inter-Domain Routing#CIDR notation|CIDR notation]] です。&lt;br /&gt;
&lt;br /&gt;
そして作成したプロファイルを有効にしてください:&lt;br /&gt;
&lt;br /&gt;
 # netctl enable my_network&lt;br /&gt;
&lt;br /&gt;
; systemd-networkd を使う&lt;br /&gt;
&lt;br /&gt;
[[systemd-networkd]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==== 無線 ====&lt;br /&gt;
&lt;br /&gt;
{{Note|あなたの使っているワイヤレスアダプタにファームウェアが必要な場合 (上の[[#インターネット接続の確立|インターネット接続の確立]]セクションと[[ワイヤレス設定#ドライバとファームウェア|ここ]]に記述あり)、ファームウェアを含んだパッケージをインストールしてください。ほとんどの場合、{{Pkg|linux-firmware}} パッケージに必要なファームウェアが含まれていますが、機器によっては個別のパッケージにファームウェアが存在します。例えば: {{ic|# pacman -S zd1211-firmware}}。詳しくは[[ワイヤレス設定]]を見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
ネットワークに接続するために {{pkg|iw}} と {{pkg|wpa_supplicant}} をインストールしてください:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S iw wpa_supplicant&lt;br /&gt;
&lt;br /&gt;
===== 無線ネットワークの追加 =====&lt;br /&gt;
; wifi-menu を使う&lt;br /&gt;
&lt;br /&gt;
{{ic|wifi-menu}} に必要な {{pkg|dialog}} をインストールしてください:&lt;br /&gt;
 # pacman -S dialog&lt;br /&gt;
&lt;br /&gt;
このインストールと再起動が終わった後 {{ic|wifi-menu &#039;&#039;インターフェイス名&#039;&#039;}} ({{ic|&#039;&#039;インターフェイス名&#039;&#039;}} はあなたの無線インターフェースに置き換えてください) でネットワークに接続することができます。&lt;br /&gt;
&lt;br /&gt;
 # wifi-menu &#039;&#039;インターフェイス名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|wifi-menu}} を使う時は、絶対に chroot を終了して再起動した&#039;&#039;後&#039;&#039;にしてください。このコマンドを使って作成されたものが chroot の外で動作させているものと衝突してしまう恐れがあるからです。また、上で書かれているようにテンプレートを使って手動でネットワークプロファイルを設定することもできます、その場合は {{ic|wifi-menu}} を使うことについての心配はいりません。}}&lt;br /&gt;
&lt;br /&gt;
; 手動の netctl プロファイルを使う&lt;br /&gt;
&lt;br /&gt;
ネットワークプロファイルを {{ic|/etc/netctl/examples}} から {{ic|/etc/netctl}} にコピーしてください:&lt;br /&gt;
&lt;br /&gt;
 # cd /etc/netctl&lt;br /&gt;
 # cp examples/wireless-wpa my_network&lt;br /&gt;
&lt;br /&gt;
接続するネットワークにあわせてプロファイルを編集してください ({{ic|Interface}}, {{ic|ESSID}}, {{ic|Key}} を修正):&lt;br /&gt;
&lt;br /&gt;
 # nano my_network&lt;br /&gt;
&lt;br /&gt;
作成したプロファイルがブート毎に実行されるよう有効にしてください:&lt;br /&gt;
&lt;br /&gt;
 # netctl enable my_network&lt;br /&gt;
&lt;br /&gt;
===== 既知のネットワークに自動で接続する =====&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|netctl enable &#039;&#039;プロファイル名&#039;&#039;}} のようにしてプロファイルを有効にする方法とこの方法を一緒に使うことはできません。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|netctl-auto}} に必要な {{Pkg|wpa_actiond}} をインストールしてください:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S wpa_actiond&lt;br /&gt;
&lt;br /&gt;
{{ic|netctl-auto}} サービスを有効にすれば、既知のネットワークに接続しローミングや切断を管理します:&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable netctl-auto@&#039;&#039;インターフェイス名&#039;&#039;.service&lt;br /&gt;
&lt;br /&gt;
{{Note|[[netctl]] には {{ic|netctl-ifplugd}} もあり、{{ic|netctl-auto}} と一緒に有線プロファイルを管理するのに使われます。}}&lt;br /&gt;
&lt;br /&gt;
==== xDSL (PPPoE), アナログモデム, ISDN ====&lt;br /&gt;
&lt;br /&gt;
xDSL、ダイアルアップ・ISDN 接続は、[[モデムに直接接続]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== Initial ramdisk 環境の作成 ===&lt;br /&gt;
&lt;br /&gt;
{{Tip|ほとんどのユーザーはこの手順をスキップし、{{ic|mkinitcpio.conf}} のデフォルト設定を使って問題ありません。initramfs イメージ ({{ic|/boot}} フォルダ内) は {{ic|pacstrap}} によって {{Pkg|linux}} パッケージ (Linux カーネル) をインストールしたときに、{{ic|mkinitcpio.conf}} に基づいて既に生成されています。}}&lt;br /&gt;
&lt;br /&gt;
root が USB ドライブにあったり、RAID や LVM を使っていたり、{{ic|/usr}} が分割されたパーティション上にある場合は、ここで正しい [[Mkinitcpio#HOOKS|hooks]] を設定しなくてはなりません。&lt;br /&gt;
&lt;br /&gt;
必要に応じて {{ic|/etc/mkinitcpio.conf}} を編集し、initramfs イメージを再形成します:&lt;br /&gt;
&lt;br /&gt;
 # mkinitcpio -p linux&lt;br /&gt;
&lt;br /&gt;
=== root パスワードの設定 ===&lt;br /&gt;
&lt;br /&gt;
root パスワードを設定します:&lt;br /&gt;
&lt;br /&gt;
 # passwd&lt;br /&gt;
&lt;br /&gt;
=== ブートローダのインストールと設定 ===&lt;br /&gt;
&lt;br /&gt;
Intel の CPU を使っている場合、{{Pkg|intel-ucode}} パッケージをインストールして[[マイクロコード#Intel のマイクロコードのアップデートを有効にする|マイクロコードのアップデートを有効化]]してください。&lt;br /&gt;
&lt;br /&gt;
==== BIOS マザーボードの場合 ====&lt;br /&gt;
&lt;br /&gt;
BIOS システムでは、複数のブートローダが使えます。ブートローダの完全なリストは[[ブートローダー]]にあります。あなたの都合に合わせてどれか一つを選んで下さい。よく使われるブートローダーは:&lt;br /&gt;
&lt;br /&gt;
* [[Syslinux]] は現在 Syslinux がインストールされたパーティションのファイルのみをロードするように制限されています。設定ファイルはわかりやすいものになっています。設定サンプルは [[Syslinux#サンプル|Syslinux]] の記事にあります。&lt;br /&gt;
&lt;br /&gt;
* [[GRUB]] はより多くの機能を備えた複雑なブートローダです。設定ファイルはスクリプト言語 (sh) に似ていて、初心者が手動で設定するには難しいかもしれません。自動で設定を生成するのが推奨されます。&lt;br /&gt;
&lt;br /&gt;
ここからは、GRUB と MBR の組み合わせでのインストールを説明します。まず {{Pkg|grub}} パッケージをインストールします。GRUB が他のオペレーティングシステムも検索できるように、{{Pkg|os-prober}} もインストールしておきます:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S grub os-prober&lt;br /&gt;
&lt;br /&gt;
{{ic|grub-install}} を実行してブートローダをインストールしてください:&lt;br /&gt;
&lt;br /&gt;
 # grub-install --recheck &#039;&#039;/dev/sda&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* {{ic|/dev/sda}} はあなたが Arch をインストールしたドライブに書き換えてください。パーティション番号を加えてはいけません ({{ic|sda&#039;&#039;X&#039;&#039;}} を使ってはいけません)。&lt;br /&gt;
* サンプルの {{ic|/boot/grub/grub.cfg}} は grub パッケージの一部としてインストールされ、後の {{ic|grub-*}} コマンドでは上書きされません。変更を加えるときは {{ic|grub.cfg.new}} などのファイルではなく {{ic|grub.cfg}} を編集してください。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
次に {{ic|grub.cfg}} を作ります。手動で作る方が細かい設定ができますが、初心者は自動で生成するのが推奨されています:&lt;br /&gt;
&lt;br /&gt;
 # grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
GRUB の使用・設定の詳しい情報は、[[GRUB]] を参照。&lt;br /&gt;
&lt;br /&gt;
==== UEFI マザーボードの場合 ====&lt;br /&gt;
&lt;br /&gt;
{{Note|UEFI ファームウェアによってはインストールしたブートローダーの {{ic|.efi}} ブータブルスタブを特定の名前で特定の場所に配置する必要があります: {{ic|$esp/EFI/boot/bootx64.efi}} ({{ic|$esp}} は EFI System Partition のマウントポイントに置き換えて下さい)。これをしていないと場合によっては、インストールした環境を起動できなくなることがあります。詳しくはそれぞれのブートローダーのセクションを見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
UEFI システムでも、複数のブートローダが使えます。利用できるブートローダの完全なリストは[[ブートローダー]]にあります。あなたの都合にあわせて選んで下さい。ここでは、2つのブートローダを例として提示します:&lt;br /&gt;
&lt;br /&gt;
* [[systemd-boot]] は最小主義の UEFI ブートマネージャで、[[EFISTUB]] カーネルや他の UEFI アプリケーションのためのメニューを提供します。初心者、特に Windows 8 などの別のオペレーティングシステムとデュアルブートをしたいユーザーに推奨です。&lt;br /&gt;
* [[GRUB]] は完全なブートローダーで、systemd-boot で問題が起きた時に役に立ちます。&lt;br /&gt;
&lt;br /&gt;
ここからは systemd-boot のインストールを説明します。まず、インストール後に EFI System Partition を操作するための {{Pkg|dosfstools}} パッケージをインストールしてください:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S dosfstools&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* UEFI でブートするには、ドライブは GPT でパーティションされている必要があり、[[Unified Extensible Firmware Interface#EFI System Partition|EFI System Partition]] (512 MiB 以上, FAT32, gdisk タイプ {{ic|EF00}}) が存在しなければなりません。このガイドを初めから実行しているのなら、すでに全て行われているはずです。&lt;br /&gt;
* systemd-boot が自動的にアップデートされるように EFI System Partition は {{ic|/boot}} にマウントすることを強く推奨します。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
自動インストールスクリプトを実行してブートローダを EFI System Partition にインストールしてください ({{ic|$esp}} は EFI System Partiton の場所に置き換えて下さい、通常は {{ic|/boot}} です):&lt;br /&gt;
&lt;br /&gt;
 # bootctl --path=&#039;&#039;$esp&#039;&#039; install&lt;br /&gt;
&lt;br /&gt;
Bootctl はファームウェアによって自動で検出され、{{ic|bootx64.efi}} ブータブルスタブが {{ic|$esp/EFI/boot}} にあることを必要とします。そして {{ic|.efi}} スタブを使ってインストールされている別のオペレーティングシステムを自動で検出します。ただし、bootctl の設定ファイルは手動で作成する必要があります。&lt;br /&gt;
&lt;br /&gt;
まず、{{ic|&#039;&#039;$esp&#039;&#039;/loader/entries/arch.conf}} を作成して以下を記述します、{{ic|/dev/sdaX}} は &#039;&#039;root&#039;&#039; パーティションに置き換えて下さい (例: {{ic|/dev/sda2}}):&lt;br /&gt;
{{hc|# nano &#039;&#039;$esp&#039;&#039;/loader/entries/arch.conf|2=&lt;br /&gt;
title          Arch Linux&lt;br /&gt;
linux          /vmlinuz-linux&lt;br /&gt;
initrd         /initramfs-linux.img&lt;br /&gt;
options        root=&#039;&#039;&#039;/dev/sdaX&#039;&#039;&#039; rw&lt;br /&gt;
}}&lt;br /&gt;
次に、{{ic|&#039;&#039;$esp&#039;&#039;/loader/loader.conf}} を作成して以下を記述します、timeout の値は自由に変更できます (秒数):&lt;br /&gt;
{{hc|# nano &#039;&#039;$esp&#039;&#039;/loader/loader.conf|2=&lt;br /&gt;
default  arch&lt;br /&gt;
timeout  5&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
詳しい情報は [[systemd-boot]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
== パーティションのアンマウントと再起動 ==&lt;br /&gt;
&lt;br /&gt;
chroot 環境を脱出します:&lt;br /&gt;
&lt;br /&gt;
 # exit&lt;br /&gt;
&lt;br /&gt;
{{Note|パーティションは &#039;&#039;systemd&#039;&#039; によってシャットダウン時に自動的にアンマウントされますが、安全対策として {{ic|umount -R /mnt}} を使って手動でアンマウントすることもできます。パーティションがビジー状態の場合、[[Wikipedia:fuser_(Unix)|fuser]] で原因を特定できます。}}&lt;br /&gt;
&lt;br /&gt;
コンピュータを再起動:&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
{{Tip|インストールメディアを取り出してください、そうしないともう一度セットアップが起動してしまいます。マシンにログインするときはユーザー &amp;quot;root&amp;quot; と前に passwd コマンドで設定したパスワードを使います。デフォルトのパスワードは &amp;quot;root&amp;quot; です。}}&lt;br /&gt;
&lt;br /&gt;
== インストールのその先 ==&lt;br /&gt;
&lt;br /&gt;
あなたの新しい Arch Linux ベースシステムは今、あなたの目的や希望のために必要な全てを入れる準備ができた GNU/Linux になっています。ここからは[[一般的な推奨事項]]のページを見ることを推奨します。特に最初の2つのセクションは必読です。また、他のセクションには、グラフィカルユーザーインターフェイス (GUI) やサウンド、タッチパッドの設定などのチュートリアルが書かれたページヘのリンクが載っています。&lt;br /&gt;
&lt;br /&gt;
あなたの興味を引くであろうアプリケーションの一覧は、[[アプリケーション一覧]]を参照。&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%83%93%E3%82%AE%E3%83%8A%E3%83%BC%E3%82%BA%E3%82%AC%E3%82%A4%E3%83%89&amp;diff=4576</id>
		<title>ビギナーズガイド</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%83%93%E3%82%AE%E3%83%8A%E3%83%BC%E3%82%BA%E3%82%AC%E3%82%A4%E3%83%89&amp;diff=4576"/>
		<updated>2015-12-28T21:16:05Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: Aosho235 (トーク) による版 4575 を取り消し&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Arch の入手とインストール]]&lt;br /&gt;
[[Category:Arch について]]&lt;br /&gt;
[[ar:Beginners&#039; guide]]&lt;br /&gt;
[[bg:Beginners&#039; guide]]&lt;br /&gt;
[[cs:Beginners&#039; guide]]&lt;br /&gt;
[[da:Beginners&#039; guide]]&lt;br /&gt;
[[de:Anleitung für Einsteiger]]&lt;br /&gt;
[[el:Beginners&#039; guide]]&lt;br /&gt;
[[en:Beginners&#039; guide]]&lt;br /&gt;
[[es:Beginners&#039; guide]]&lt;br /&gt;
[[fa:راهنمای_تازه‌کاران]]&lt;br /&gt;
[[fr:Installation]]&lt;br /&gt;
[[he:Beginners&#039; guide]]&lt;br /&gt;
[[hr:Beginners&#039; guide]]&lt;br /&gt;
[[hu:Beginners&#039; guide]]&lt;br /&gt;
[[id:Beginners&#039; guide]]&lt;br /&gt;
[[it:Beginners&#039; guide]]&lt;br /&gt;
[[ko:Beginners&#039; guide]]&lt;br /&gt;
[[lt:Beginners&#039; guide]]&lt;br /&gt;
[[nl:Beginners&#039; guide]]&lt;br /&gt;
[[pl:Beginners&#039; guide]]&lt;br /&gt;
[[pt:Beginners&#039; guide]]&lt;br /&gt;
[[ro:Ghidul începătorilor]]&lt;br /&gt;
[[ru:Beginners&#039; guide]]&lt;br /&gt;
[[sk:Beginners&#039; guide]]&lt;br /&gt;
[[sr:Beginners&#039; guide]]&lt;br /&gt;
[[sv:Nybörjarguiden]]&lt;br /&gt;
[[tr:Yeni başlayanlar rehberi]]&lt;br /&gt;
[[uk:Beginners&#039; guide]]&lt;br /&gt;
[[zh-cn:Beginners&#039; guide]]&lt;br /&gt;
[[zh-tw:Beginners&#039; guide]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|:カテゴリ:アクセシビリティ}}&lt;br /&gt;
{{Related|インストールガイド}}&lt;br /&gt;
{{Related|ディスクレスシステム}}&lt;br /&gt;
{{Related|SSH からインストール}}&lt;br /&gt;
{{Related|一般的な推奨事項}}&lt;br /&gt;
{{Related|一般的なトラブルシューティング}}&lt;br /&gt;
{{Related|ブートデバッグ}}&lt;br /&gt;
{{Related|pacman#トラブルシューティング}}&lt;br /&gt;
{{Related|pacman-key#トラブルシューティング}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&amp;lt;!-- Include the different sub pages --&amp;gt;&lt;br /&gt;
この文章では [https://projects.archlinux.org/arch-install-scripts.git/ Arch Install Scripts] を使って [[Arch Linux]] をインストールする方法を解説します。インストールする前に、[[FAQ]] を一読することをおすすめします。&lt;br /&gt;
&lt;br /&gt;
コミュニティによって管理されている [[メインページ|ArchWiki]] は有用な資料であり、問題が発生したらまず wiki を読んでみましょう。wiki で答えが見つからないときは、[https://archlinuxjp-slack.herokuapp.com/ Slack] や [https://bbs.archlinuxjp.org/ フォーラム] を使って下さい。また、[[The Arch Way|Arch Way]] に従って、知らないコマンドの {{ic|man}} ページを見るようにしましょう。{{ic|man &#039;&#039;コマンド&#039;&#039;}} で見ることができます。&lt;br /&gt;
&lt;br /&gt;
== 動作環境 ==&lt;br /&gt;
&lt;br /&gt;
Arch Linux は i686 互換の、最低 256MB の RAM を積んだマシンで動作します。また、基本的なインストールに必要な {{Grp|base}} グループに含まれる全てのパッケージをインストールするには約 800MB のディスク容量が必要です。使える容量が少ない場合、この数値をかなり切り詰めることが可能ですが、どうやるかは調べる必要があります。&lt;br /&gt;
&lt;br /&gt;
== 最新のインストールメディアを準備する ==&lt;br /&gt;
&lt;br /&gt;
Arch の公式インストールメディアは[https://www.archlinuxjp.org/download/ ダウンロードページ]から入手できます。ひとつの ISO で32ビットと64ビット両方のアーキテクチャをサポートしています。出来るだけ一番新しい ISO を使って下さい。&lt;br /&gt;
&lt;br /&gt;
インストールイメージには署名がされており、使用する前に署名を検証するのが推奨されています (特に HTTP ミラーからダウンロードした場合)。[[GnuPG]] をインストールした環境で、ダウンロードした &#039;&#039;PGP 署名&#039;&#039;を ISO のディレクトリに配置して、次を実行してください:&lt;br /&gt;
 $ gpg --verify archlinux-&amp;lt;version&amp;gt;-dual.iso.sig&lt;br /&gt;
公開鍵が見つからない場合、{{ic|gpg --recv-keys &#039;&#039;key-id&#039;&#039;}} で[[GnuPG#鍵のインポート|インポート]]できます [http://sparewotw.wordpress.com/2012/10/31/how-to-verify-signature-using-sig-file/]。もしくは、既存の Arch Linux 環境から次を実行:&lt;br /&gt;
 $ pacman-key -v archlinux-&amp;lt;version&amp;gt;-dual.iso.sig&lt;br /&gt;
{{ic|md5}} と {{ic|sha1}} チェックサムはそれぞれ &#039;&#039;md5sum&#039;&#039; と &#039;&#039;sha256sum&#039;&#039; でチェックできます。&lt;br /&gt;
&lt;br /&gt;
=== USB と光学ドライブ ===&lt;br /&gt;
&lt;br /&gt;
[[光学ディスクドライブ#焼き込み]] (CD/DVD) や [[USB インストールメディア]] (USB) を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== ネットワーク経由でのインストール ===&lt;br /&gt;
&lt;br /&gt;
[[PXE]] の記事を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== 既存の Linux 環境からインストール ===&lt;br /&gt;
&lt;br /&gt;
[[既存の Linux からインストール]]を見て下さい。[[VNC]] や [[SSH]] を使って Arch をリモートでインストールするときに特に便利です。[[SSH からインストール]]も参照。&lt;br /&gt;
&lt;br /&gt;
=== 仮想マシンへのインストール ===&lt;br /&gt;
&lt;br /&gt;
現在使用しているオペレーティングシステムを残したまま、[[Wikipedia:ja:仮想機械|仮想マシン]]上でインストール手順を実行することで、ストレージのパーティションを行う必要なく Arch Linux に慣れることができます。また、ブラウザでこのビギナーズガイドを開いたままインストールが可能です。独立した Arch Linux システムを使用できるということは、テストを行いたいという一部のユーザーにとって有益なことでしょう。&lt;br /&gt;
&lt;br /&gt;
仮想化ソフトウェアの例としては、[[VirtualBox]], [[VMware]], [[QEMU]], [[Xen]], [[Parallels]] があります。&lt;br /&gt;
&lt;br /&gt;
仮想マシンを準備するための正確な手順は、ソフトウェアによって異なりますが、一般的に次の手順に従います:&lt;br /&gt;
&lt;br /&gt;
# オペレーティングシステムのホストにて、仮想ディスクイメージを作成します。 &lt;br /&gt;
# 仮想マシンの設定を最適化します。 &lt;br /&gt;
# 仮想 CD ドライブでダウンロードした ISO イメージを起動します。  &lt;br /&gt;
# [[#インストールメディアの起動|インストールメディアの起動]]に進みます。&lt;br /&gt;
&lt;br /&gt;
== インストールメディアの起動 ==&lt;br /&gt;
&lt;br /&gt;
最初に、あなたのコンピュータの BIOS セットアップで起動順序を変更する必要があるかもしれません。それには、POST ([[Wikipedia:ja:Power On Self Test|Power On Self-Test]]) の間にキー (多くの場合 {{ic|Delete}}、{{ic|F1}}、{{ic|F2}}、{{ic|F11}} や {{ic|F12}}) を押します。これで BIOS の設定画面が表示されるので、ここでシステムが起動するデバイスを探す順番を設定できます。&amp;quot;Save &amp;amp; Exit&amp;quot; (もしくはそれに準ずるもの) を選択すればコンピュータは通常通り起動するはずです。&lt;br /&gt;
&lt;br /&gt;
Arch のメニューが表示されたら、インストールを行うライブ環境を開始するために &amp;quot;Boot Arch Linux&amp;quot; をメニューから選択し、{{ic|Enter}} キーを押します (UEFI ブートディスクから起動した場合は、次のオプションを選択: &amp;quot;Arch Linux archiso x86_64 UEFI&amp;quot;)。ブートエントリを編集することで様々なブートパラメータ ({{ic|copytoram}} など) を使うことができます。Syslinux では {{ic|tab}} を押し、systemd-boot では {{ic|e}} を押します。詳しくは [https://projects.archlinux.org/archiso.git/tree/docs/README.bootparams README.bootparams] を参照。&lt;br /&gt;
&lt;br /&gt;
起動するとシェルプロンプトが表示され、root として自動的にログインが行われます。シェルは [[Zsh]] です。高度な [http://zsh.sourceforge.net/Guide/zshguide06.html タブ補完] など、[http://grml.org/zsh/ grml の設定] の機能が使用できます。テキストファイルを編集する時は、コンソールエディタの [[nano]] を使うことが推奨されています。使い方をよく知らない場合は、[[nano#nano の使用方法]] を見て下さい。Windows とのデュアルブートをする（もしくはそうすることを計画している）場合、[[Windows と Arch のデュアルブート]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== UEFI モードでブートしているかどうかのテスト ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|将来を考えると EFI モードでインストールを行ったほうが望ましいのですが、初期の UEFI の実装には BIOS よりも大量のバグが存在しています。UEFI モードを使用する前にあなたの使用しているマザーボードのモデルについて検索をすることが推奨されます。}}&lt;br /&gt;
&lt;br /&gt;
[[Unified Extensible Firmware Interface|UEFI]] マザーボードを使用していて、UEFI ブートモードが有効になっている (そしてそれが BIOS/Legacy モードよりも優先されている) 場合、CD/USB のインストールメディアは自動で [[systemd-boot]] を使って Arch Linux カーネルを起動します。そして以下のメニューが表示されます (黒地に白字)、最初のアイテムがハイライトされます:&lt;br /&gt;
{{bc|&lt;br /&gt;
Arch Linux archiso x86_64 UEFI USB&lt;br /&gt;
UEFI Shell x86_64 v1&lt;br /&gt;
UEFI Shell x86_64 v2&lt;br /&gt;
EFI Default Loader}}&lt;br /&gt;
&lt;br /&gt;
UEFI モードで起動しているのか確認したい場合は、次を実行:&lt;br /&gt;
&lt;br /&gt;
 # efivar -l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;efivar&#039;&#039; が UEFI 変数を正しく表示したら、UEFI モードで起動されています。表示されない場合は [[Unified Extensible Firmware Interface#UEFI 変数のサポートを正しく動作させるための必要条件]] に記載されている全ての要件が満たされているか確認してください。&lt;br /&gt;
&lt;br /&gt;
=== 起動時の問題のトラブルシューティング ===&lt;br /&gt;
&lt;br /&gt;
* Intel のビデオチップセットを使用していて、ブート中にブランクスクリーン (画面が黒くなる) になった場合、おそらく Kernel Mode Setting ([[Kernel Mode Setting|KMS]]) に問題があります。回避策は、パソコンを再起動し、起動しようとしている項目 (i686 または x86_64) の上で、{{ic|Tab}} キーを押します。末尾に {{ic|nomodeset}} を追加し、{{ic|Enter}} キーを押します。または {{ic|1=video=SVIDEO-1:d}} (KMS は無効にされません) を設定します。もしくは、{{ic|i915.modeset&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;0}} を試して下さい。詳細は [[Intel Graphics|Intel]] ページを参照してください。&lt;br /&gt;
&lt;br /&gt;
* ブランクスクリーンに&#039;&#039;ならず&#039;&#039;、カーネルのロード中に固まる場合は、{{ic|Tab}} キーをメニューの項目上で押し、末尾に {{ic|1=acpi=off}} を追加し、{{ic|Enter}} キーを押します。&lt;br /&gt;
&lt;br /&gt;
== 言語の選択 ==&lt;br /&gt;
&lt;br /&gt;
{{Tip|以下の設定は必須ではありません。設定ファイルをあなたの使う言語で書いたり、Wi-Fi パスワードで区別的発音符を使ったり、もしくはあなたの言語でシステムメッセージ(例えばエラー)を見たいときだけに役に立ちます。ここでの変更はインストールプロセスに&#039;&#039;だけ&#039;&#039;適用されます。}}&lt;br /&gt;
&lt;br /&gt;
標準で、キーボードのレイアウトは {{ic|us}} に設定されています。もし、[[Wikipedia:File:KB United States-NoAltGr.svg|US]] キーボード以外のレイアウトを使用している場合は、&lt;br /&gt;
&lt;br /&gt;
 # loadkeys &#039;&#039;レイアウト名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
で変更できます。&#039;&#039;レイアウト名&#039;&#039;の部分は {{ic|jp106}}、{{ic|fr}}、{{ic|uk}}、{{ic|be-latin1}} などに置き換えます。[[コンソールでのキーボード設定#キーボードレイアウトの設定|ここ]]から一般的なレイアウトのリストを見ることができます。利用可能なキーマップを表示するには {{ic|localectl list-keymaps}} コマンドを使って下さい。&lt;br /&gt;
&lt;br /&gt;
{{Warning|以下はフォントと言語の設定ですが、この段階では、日本語を表示することはできません。}}&lt;br /&gt;
&lt;br /&gt;
フォントも変える必要があるかもしれません。ほとんどの言語は[[Wikipedia:ja:アルファベット|アルファベット]]の26字よりも多くの文字を使っているからです。さもなければ文字が□（豆腐）になったり全く異なって表示されることがあります。フォントの名前は大文字・小文字を区別するので、&#039;&#039;正確に&#039;&#039;入力してください:&lt;br /&gt;
&lt;br /&gt;
 # setfont lat9w-16&lt;br /&gt;
&lt;br /&gt;
標準では、言語は英語 (US) に設定されています。インストール中の言語を変更したい場合 &#039;&#039;(例: 日本語)&#039;&#039;、{{ic|/etc/locale.gen}} 内のあなたの設定したい[[ロケール]]の行と、英語 (US) の行から行頭の {{ic|#}} を削除します。{{ic|UTF-8}} を選択してください。&lt;br /&gt;
&lt;br /&gt;
シンプルな Nano エディタで編集するには、{{ic|nano /etc/locale.gen}} と入力してください。{{ic|Ctrl+X}} で終了し、変更を保存するか聞かれたら {{ic|Y}} と、 {{ic|Enter}} を押せば同じファイル名で上書き保存します。&lt;br /&gt;
&lt;br /&gt;
{{hc|# nano /etc/locale.gen|&lt;br /&gt;
en_US.UTF-8 UTF-8&lt;br /&gt;
ja_JP.UTF-8 UTF-8}}&lt;br /&gt;
&lt;br /&gt;
 # locale-gen&lt;br /&gt;
 # export LANG=ja_JP.UTF-8&lt;br /&gt;
&lt;br /&gt;
== インターネット接続の確立 ==&lt;br /&gt;
&lt;br /&gt;
{{Warning|[http://cgit.freedesktop.org/systemd/systemd/tree/NEWS?id&amp;amp;#61;dee4c244254bb49d1ffa8bd7171ae9cce596d2d0 v197] 以降、udev はネットワークインターフェースの名前を wlanX や ethX といった風に名づけません。あなたが他のディストリビューションを使っているなどの理由で、新しい命名規則を知らないのならば、あなたの無線インターフェースの名前が wlan0 だとか、有線インターフェースの名前が eth0 ではない可能性があることを予め覚えておいて下さい。{{ic|ip link}} コマンドでインターフェースの名前を調べることができます。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|dhcpcd}} ネットワークデーモンはブート時に自動で起動して、可能であれば有線での接続を試みます。接続できているかウェブサイトに ping をして確かめて下さい。例えば Google のサーバーに ping します:&lt;br /&gt;
&lt;br /&gt;
{{hc|# ping -c 3 www.google.com|2=&lt;br /&gt;
PING www.l.google.com (74.125.132.105) 56(84) bytes of data.&lt;br /&gt;
64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=1 ttl=50 time=17.0 ms&lt;br /&gt;
64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=2 ttl=50 time=18.2 ms&lt;br /&gt;
64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=3 ttl=50 time=16.6 ms&lt;br /&gt;
&lt;br /&gt;
--- www.l.google.com ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2003ms&lt;br /&gt;
rtt min/avg/max/mdev = 16.660/17.320/18.254/0.678 ms}}&lt;br /&gt;
&lt;br /&gt;
{{ic|ping: unknown host}} のエラーが出た場合は下に記述されている方法を試して手動で接続をセットアップする必要があります。ネットワークへの接続が問題ないようでしたら、[[#ドライブの準備|ドライブの準備]]へ進んでください。&lt;br /&gt;
&lt;br /&gt;
=== 有線 ===&lt;br /&gt;
&lt;br /&gt;
固定 IP アドレスを使用して有線の接続をセットアップする場合は次の手順に従ってください。&lt;br /&gt;
&lt;br /&gt;
あなたのイーサネットインターフェースの名前を確かめて下さい:&lt;br /&gt;
&lt;br /&gt;
{{hc|# ip link|&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT &lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
2: enp2s0f0: &amp;lt;BROADCAST,MULTICAST&amp;gt; mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000&lt;br /&gt;
    link/ether 00:11:25:31:69:20 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
3: wlp3s0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state UP mode DORMANT qlen 1000&lt;br /&gt;
    link/ether 01:02:03:04:05:06 brd ff:ff:ff:ff:ff:ff}}&lt;br /&gt;
&lt;br /&gt;
上記の例の場合、イーサネットインターフェースは {{ic|enp2s0f0}} です。よくわからない場合、あなたのイーサネットインターフェースはおそらく &amp;quot;e&amp;quot; から始まっているインターフェイスです。&amp;quot;w&amp;quot; で始まっているものや &amp;quot;lo&amp;quot; ではないということです。&lt;br /&gt;
&lt;br /&gt;
[[ネットワーク設定#固定 IP アドレス]]を見て必要な設定を確認してください。{{ic|/etc/dhcpcd.conf}} に以下のような設定を使って、dhcpcd の static プロファイルを設定します:&lt;br /&gt;
&lt;br /&gt;
 interface enp2s0f0&lt;br /&gt;
 static ip_address=192.168.0.10/24&lt;br /&gt;
 static routers=192.168.0.1&lt;br /&gt;
 static domain_name_servers=192.168.0.1 8.8.8.8&lt;br /&gt;
&lt;br /&gt;
{{ic|dhcpcd.service}} を再起動してください:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart dhcpcd.service&lt;br /&gt;
&lt;br /&gt;
これでネットワークに接続されるはずです。されない場合は、[[ネットワーク設定]]のページを見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== 無線 ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|(CD・USB スティックの) ライブ環境では、(ワイヤレスカードを使うのに必要な) ワイヤレスチップセットのファームウェアのパッケージは {{ic|/usr/lib/firmware}} の下にあらかじめインストールされていますが、再起動後にも無線を使うには、ユーザーがちゃんとパッケージをインストールする必要があります。パッケージのインストールはこのガイドの後ろで触れています。再起動する前にワイヤレスモジュール・ファームウェアを必ずインストールしてください。もし、あなたのチップセットがファームウェアのインストールを必要としているか不明な場合は[[ワイヤレス設定]]を見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
[[netctl]] の {{ic|wifi-menu}} を使いネットワークに接続します:&lt;br /&gt;
&lt;br /&gt;
 # wifi-menu&lt;br /&gt;
&lt;br /&gt;
コンピュータに接続されている Wi-Fi デバイスが一つしかない (ノートパソコンなど) 場合は wifi ネットワークのメニューが表示されます。&lt;br /&gt;
&lt;br /&gt;
コンピュータに複数の Wi-Fi デバイスが存在するときは、そのどれか一つを選択して &#039;&#039;wifi-menu&#039;&#039; にインターフェイスの名前を指定する必要があります。まず、インターフェイスの名前を確かめて下さい:&lt;br /&gt;
&lt;br /&gt;
{{hc|# iw dev|2=&lt;br /&gt;
phy#0&lt;br /&gt;
        Interface wlp3s0&lt;br /&gt;
                ifindex 3&lt;br /&gt;
                wdev 0x1&lt;br /&gt;
                addr 00:11:22:33:44:55&lt;br /&gt;
                type managed&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
上の例では、{{ic|wlp3s0}} が有効なワイヤレスインターフェースです。どれかわからないときは、おそらく &amp;quot;w&amp;quot; から始まるのがあなたのワイヤレスインターフェースです。&amp;quot;lo&amp;quot; や &amp;quot;e&amp;quot; から始まるインターフェースは違います。&lt;br /&gt;
&lt;br /&gt;
インターフェイスの名前がわかったら、インターフェイスの名前を指定して &#039;&#039;wifi-menu&#039;&#039; を起動します:&lt;br /&gt;
&lt;br /&gt;
 # wifi-menu wlp3s0&lt;br /&gt;
&lt;br /&gt;
ユーザー名やパスワードの設定を必要とするネットワークを使う場合は [[WPA2 Enterprise#netctl]] にあるサンプル設定を見て下さい。&lt;br /&gt;
&lt;br /&gt;
これでネットワークは有効になるはずです。接続されないときは、下の [[#wifi-menu を使わない方法|wifi-menu を使わない方法]]や、詳しい説明が載っている[[ワイヤレス設定]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
==== wifi-menu を使わない方法 ====&lt;br /&gt;
&lt;br /&gt;
インターフェースを立ち上げます:&lt;br /&gt;
&lt;br /&gt;
 # ip link set wlp3s0 up&lt;br /&gt;
&lt;br /&gt;
インターフェイスが立ち上がっているか確認するには、次のコマンドの出力を見て下さい:&lt;br /&gt;
&lt;br /&gt;
{{hc|# ip link show wlp3s0|&lt;br /&gt;
3: wlp3s0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000&lt;br /&gt;
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|&amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt;}} の中にある {{ic|UP}} がインターフェイスが立ち上がっている印です。後ろの {{ic|state DOWN}} は違います。&lt;br /&gt;
&lt;br /&gt;
ほとんどのワイヤレスチップセットには、対応するドライバに加えて、ファームウェアが必要です。カーネルが自動で検知してロードを試みます。{{ic|SIOCSIFFLAGS: No such file or directory}} のようなエラーが出た場合、ファームウェアを手動でロードする必要があることを意味しています。必要なファームウェアがわからないときは、{{ic|dmesg}} を使いカーネルログからワイヤレスチップセットのファームウェア要求をさがします。例えば、カーネルの起動時に Intel チップセットが出力するファームウェア要求の例:&lt;br /&gt;
&lt;br /&gt;
{{hc|# dmesg &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep firmware|&lt;br /&gt;
firmware: requesting iwlwifi-5000-1.ucode}}&lt;br /&gt;
&lt;br /&gt;
なにも表示されないなら、あなたのワイヤレスチップセットにはファームウェアが要らないと判断できます。&lt;br /&gt;
&lt;br /&gt;
{{ic|iw dev wlp3s0 scan &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep SSID}} を使って利用可能なネットワークをスキャンして、それからネットワークに接続してください:&lt;br /&gt;
&lt;br /&gt;
 # wpa_supplicant -B -i wlp3s0 -c &amp;lt;(wpa_passphrase &amp;quot;&#039;&#039;ssid&#039;&#039;&amp;quot; &amp;quot;&#039;&#039;psk&#039;&#039;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;ssid&#039;&#039; はネットワークの名前に (例: &amp;quot;Linksys etc...&amp;quot;)、&#039;&#039;psk&#039;&#039; はパスワードに置き換える必要があります (ネットワークの名前とパスワードを囲っているダブルクォートは消さないで下さい, 例: ネットワークのパスワードが dog の場合、&amp;quot;dog&amp;quot; と入力)。&lt;br /&gt;
&lt;br /&gt;
最後に、インターフェースに IP アドレスを与える必要があります。手動で設定するか dhcp を使ってこれを行なって下さい:&lt;br /&gt;
 # dhcpcd wlp3s0&lt;br /&gt;
&lt;br /&gt;
上のコマンドでうまくいかない場合、以下のコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
 # echo &#039;ctrl_interface=DIR=/run/wpa_supplicant&#039; &amp;gt; /etc/wpa_supplicant.conf&lt;br /&gt;
 # wpa_passphrase &amp;lt;ssid&amp;gt; &amp;lt;passphrase&amp;gt; &amp;gt;&amp;gt; /etc/wpa_supplicant.conf&lt;br /&gt;
 # ip link set &amp;lt;interface&amp;gt; up # May not be needed, but does no harm in any case&lt;br /&gt;
 # wpa_supplicant -B -D nl80211 -c /etc/wpa_supplicant.conf -i &amp;lt;interface name&amp;gt;&lt;br /&gt;
 # dhcpcd -A &amp;lt;interface name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== アナログモデム, ISDN, PPPoE DSL ===&lt;br /&gt;
&lt;br /&gt;
xDSL・ダイアルアップ・ISDN接続については、[[モデムに直接接続]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== プロキシサーバを使う ===&lt;br /&gt;
&lt;br /&gt;
プロキシサーバを使うには、{{ic|http_proxy}}, {{ic|ftp_proxy}} 環境変数を設定しなくてはなりません。詳しい情報は[[プロキシ設定]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
== 時計を合わせる ==&lt;br /&gt;
&lt;br /&gt;
[[systemd-timesyncd]] を使ってシステムクロックを正確な時刻に合わせて下さい。起動するには:&lt;br /&gt;
 # timedatectl set-ntp true&lt;br /&gt;
&lt;br /&gt;
サービスの状態を確認したいときは {{ic|timedatectl status}} を使って下さい。&lt;br /&gt;
&lt;br /&gt;
詳しくは、[[時刻]]を参照。&lt;br /&gt;
&lt;br /&gt;
== ドライブの準備 ==&lt;br /&gt;
&lt;br /&gt;
{{Warning|&lt;br /&gt;
* パーティショニングを行うと既存のデータが消去されます。実施する前に、必要なデータはバックアップしてください。&lt;br /&gt;
* UEFI/GPT 環境でインストールした Windows とデュアルブートしたい場合、Windows を起動するのに必要な Windows の &#039;&#039;.efi&#039;&#039; ファイルが含まれている UEFI パーティションを再フォーマットしてはいけません。さらに、Arch のブートモードとパーティションの組み合わせを Windows と同一に設定する必要があります。[[Windows と Arch のデュアルブート#重要情報]]を参照。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
このステップでは、新しいシステムをインストールするためにストレージデバイスの準備を行います。詳しい情報は[[パーティショニング]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
[[LVM]], [[ディスク暗号化]], [[RAID]] などのスタックブロックデバイスを作成したい場合は、この段階で行います。USB フラッシュキーにインストールする場合は、[[USB キーに Arch Linux をインストール]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== デバイスの確認 ===&lt;br /&gt;
&lt;br /&gt;
まず新しいシステムをインストールするデバイスを確認します。次のコマンドを実行すると全てのデバイスが表示されます:&lt;br /&gt;
&lt;br /&gt;
 # lsblk&lt;br /&gt;
&lt;br /&gt;
このコマンドはシステムに接続されたデバイスとパーティションを表示しますが、Arch インストールメディアを起動するのに使われているデバイスも含まれています。したがって、どのデバイスでもインストールが行えるというわけではありません。不必要なデバイスを表示しないようにするには、以下のようにコマンドを実行します:&lt;br /&gt;
&lt;br /&gt;
 # lsblk | grep -v &amp;quot;rom\|loop\|airoot&amp;quot;&lt;br /&gt;
&lt;br /&gt;
デバイス (ハードディスク) は {{ic|sd&#039;&#039;x&#039;&#039;}} と示されます。{{ic|&#039;&#039;x&#039;&#039;}} は {{ic|a}} から始まる小文字のアルファベットで、一番目のデバイスは {{ic|sda}}、二番目のデバイスは {{ic|sdb}} と割り当てられます。既存のパーティションは {{ic|sd&#039;&#039;xY&#039;&#039;}} と示され、{{ic|&#039;&#039;Y&#039;&#039;}} は {{ic|1}} から始まる数字です。一番目のパーティションは {{ic|1}}、二番目のパーティションは {{ic|2}} と続きます。下の例では、一つのデバイスが存在し ({{ic|sda}})、一つのパーティションが使われています ({{ic|sda1}}):&lt;br /&gt;
&lt;br /&gt;
 NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 sda               8:0    0    80G  0 disk&lt;br /&gt;
 └─sda1            8:1    0    80G  0 part&lt;br /&gt;
&lt;br /&gt;
パーティションテーブル、パーティション、ファイルシステムでは {{ic|sd&#039;&#039;xY&#039;&#039;}} という名前を例として使います。あくまでこの名前は例なので、実際にコマンドを実行したりするときは、デバイスの名前とパーティションの番号を変える必要があります。コマンドをコピーしてそのまま貼り付けても動作しません。&lt;br /&gt;
&lt;br /&gt;
パーティションをそのまま変更しない場合は、[[#ファイルシステムの作成|ファイルシステムの作成]]まで進んでください。パーティショニングを行う場合は、次のセクションを読んで下さい。&lt;br /&gt;
&lt;br /&gt;
=== パーティションテーブルのタイプの選択 ===&lt;br /&gt;
&lt;br /&gt;
既に何らかの OS がインストールされているところに Arch をインストールする場合、既存のパーティションテーブルを使用します。デバイスがパーティショニングされてなかったり、現在のパーティションテーブルを変更する必要があるときは、まず使用されているパーティションテーブルを確認しなくてはなりません。&lt;br /&gt;
&lt;br /&gt;
パーティションテーブルには2種類あります:&lt;br /&gt;
&lt;br /&gt;
* [[Master Boot Record|MBR]]&lt;br /&gt;
* [[GUID Partition Table|GPT]]&lt;br /&gt;
&lt;br /&gt;
既存のパーティションテーブルは、次のコマンドを実行することで確認できます:&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sd&#039;&#039;x&#039;&#039; print&lt;br /&gt;
&lt;br /&gt;
=== パーティショニングツール ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|使用しているパーティショニングテーブルと互換性がないパーティショニングツールを使ってしまうと、テーブルが破壊されて、既存のパーティションやデータが消えてしまいます。}}&lt;br /&gt;
&lt;br /&gt;
デバイスをパーティショニングするには、使用されるパーティションテーブルにあわせて適切なツールを選ぶ必要があります。Arch のインストールメディアには複数のパーティショニングツールが入っています:&lt;br /&gt;
&lt;br /&gt;
* [[parted]]: GPT と MBR&lt;br /&gt;
* [[パーティショニング#Fdisk の使い方|fdisk]], &#039;&#039;&#039;cfdisk&#039;&#039;&#039;, &#039;&#039;&#039;sfdisk&#039;&#039;&#039;: GPT と MBR&lt;br /&gt;
* [[パーティショニング#Gdisk の使い方|gdisk]], &#039;&#039;&#039;cgdisk&#039;&#039;&#039;, &#039;&#039;&#039;sgdisk&#039;&#039;&#039;: GPT&lt;br /&gt;
&lt;br /&gt;
Arch のインストールメディアを起動する前に、他のライブ環境に付属しているパーティションツールを使って、デバイスを予めパーティショニングしておくことも可能です。初心者にとっては [[GParted]] などのグラフィカルなパーティショニングツールが使いやすいでしょう。GParted には [http://gparted.sourceforge.net/livecd.php ライブ CD] が存在し、MBR と GPT の両方のパーティションテーブルで動作します。&lt;br /&gt;
&lt;br /&gt;
==== インタラクティブモードの parted を使用する ====&lt;br /&gt;
&lt;br /&gt;
以下で示す例では BIOS/MBR と UEFI/GPT の両方で用いることができる &#039;&#039;parted&#039;&#039; を使っています。&#039;&#039;parted&#039;&#039; は&#039;&#039;インタラクティブモード&#039;&#039;で起動して、指定したデバイスに全てのパーティショニングコマンドを自動的に適用することで、不必要な繰り返しを避けます。&lt;br /&gt;
&lt;br /&gt;
デバイスの操作を開始するには、次を実行:&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sd&#039;&#039;x&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
コマンドラインプロンプトがハッシュ ({{ic|#}}) から {{ic|(parted)}} に変わります。&lt;br /&gt;
&lt;br /&gt;
利用できるコマンドのリストを表示するには、次を入力:&lt;br /&gt;
&lt;br /&gt;
 (parted) help&lt;br /&gt;
&lt;br /&gt;
パーティションの操作が完了した場合は、次のコマンドで parted を終了します:&lt;br /&gt;
&lt;br /&gt;
 (parted) quit&lt;br /&gt;
&lt;br /&gt;
終了後、コマンドラインプロンプトは {{ic|#}} に戻ります。&lt;br /&gt;
&lt;br /&gt;
=== 新しいパーティションテーブルの作成 ===&lt;br /&gt;
&lt;br /&gt;
パーティションテーブルのタイプを変更したい場合や、デバイスがまだパーティションされていない場合、パーティションテーブルの（再）作成が必要です。デバイスのパーティションテーブルの再作成はパーティションスキームを最初からやり直したい場合にも有用です。&lt;br /&gt;
&lt;br /&gt;
{{Warning|&lt;br /&gt;
* UEFI/GPT で Windows がインストールされている環境でデュアルブートをしたい場合は、パーティションテーブルを消去しないでください。パーティションテーブルを消去すると、Windows を起動するのに必要な &#039;&#039;.efi&#039;&#039; ファイルが入っている UEFI パーティションを含め、デバイス上の既存のデータが全て削除されます。&lt;br /&gt;
* MBR は BIOS 環境で使用するように作られており、GPT は UEFI と一緒に使われることが想定されています。ハードウェアと互換性がない機能や制限があるため、この組み合わせを使わないというのは初心者にはおすすめできません (例: MBR は 2 TiB 以上のデバイスを扱えません) [https://www.happyassassin.net/2014/01/25/uefi-boot-how-does-that-actually-work-then/]。何らかの理由でこの組み合わせを使いたくないという場合は、[http://mjg59.dreamwidth.org/8035.html] や [http://rodsbooks.com/gdisk/bios.html] に詳しい情報や対処方法が載っています。}}&lt;br /&gt;
&lt;br /&gt;
パーティションテーブルを（再）作成するデバイスを次のコマンドで開いてください:&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sd&#039;&#039;x&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
そして BIOS 環境の場合、MBR/msdos パーティションテーブルを新しく作成するために、次のコマンドを実行します:&lt;br /&gt;
&lt;br /&gt;
 (parted) mklabel msdos&lt;br /&gt;
&lt;br /&gt;
UEFI 環境で GPT パーティションテーブルを新しく作成するには、次のコマンドを使います:&lt;br /&gt;
&lt;br /&gt;
 (parted) mklabel gpt&lt;br /&gt;
&lt;br /&gt;
=== パーティションスキーム ===&lt;br /&gt;
&lt;br /&gt;
ディスクをいくつのパーティションに分けるか決めて、それぞれのパーティションにシステム上のディレクトリを割り振ることができます。パーティションからディレクトリへのマッピング (しばしば &#039;マウントポイント&#039; と呼ばれます) が[[パーティショニング#パーティション形態|パーティションスキーム]]になります。パーティションスキームは以下の要件を満たさなければなりません:&lt;br /&gt;
&lt;br /&gt;
* 少なくとも {{ic|/}} (&#039;&#039;root&#039;&#039;) ディレクトリのパーティションは必ず作成する必要があります。&lt;br /&gt;
* マザーボードのファームウェアインターフェイスや、選択した[[#パーティションテーブルのタイプの選択|パーティションテーブルのタイプ]]によって、また、時には選択した[[ブートローダー]]にあわせて、以下のパーティションを追加で作成する必要が出てきます:&lt;br /&gt;
** &#039;&#039;&#039;BIOS/MBR&#039;&#039;&#039;: 追加のパーティションは必要ありません。&lt;br /&gt;
** &#039;&#039;&#039;BIOS/GPT&#039;&#039;&#039;:&lt;br /&gt;
*** [[Syslinux]] を使用する場合: 追加のパーティションは必要ありません。&lt;br /&gt;
*** [[GRUB]] を使用する場合: タイプが {{ic|EF02}} で容量が 1MiB または 2MiB の [[GRUB#GUID Partition Table (GPT) 特有の手順|BIOS Boot Partition]]。&lt;br /&gt;
** &#039;&#039;&#039;UEFI/GPT&#039;&#039;&#039;: [[Unified Extensible Firmware Interface#EFI System Partition|EFI System Partition]]。&lt;br /&gt;
** &#039;&#039;&#039;UEFI/MBR&#039;&#039;&#039;: [[Unified Extensible Firmware Interface#EFI System Partition|EFI System Partition]]。&lt;br /&gt;
&lt;br /&gt;
以下の例では、新しい、連続するパーティションスキームを1つのデバイスに適用します。任意の {{ic|/boot}} や {{ic|/home}} ディレクトリのパーティションも作成しています。それぞれのディレクトリの目的については [[Arch ファイルシステム階層]]を見て下さい。{{ic|/boot}} や {{ic|/home}} などのディレクトリのパーティションを別に作成しない場合、{{ic|/}} パーティションに含まれることになります。また、[[スワップ|スワップ領域]]用のパーティションについても説明します。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;parted&#039;&#039; のインタラクティブセッションをまだ開いてない場合は、パーティションするデバイスを指定して起動してください:&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sd&#039;&#039;x&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
次のコマンドを使用してパーティションを作成します:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart &#039;&#039;part-type&#039;&#039; &#039;&#039;fs-type&#039;&#039; &#039;&#039;start&#039;&#039; &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* {{ic|&#039;&#039;part-type&#039;&#039;}} は {{ic|primary}}, {{ic|extended}}, {{ic|logical}} のうちどれか一つから選びます。MBR パーティションテーブルでのみ意味があります。&lt;br /&gt;
* {{ic|&#039;&#039;fs-type&#039;&#039;}} は [http://www.gnu.org/software/parted/manual/parted.html#mkpart マニュアル] に記載されているサポートがあるファイルシステムの中から選びます。パーティションは[[#ファイルシステムの作成|ファイルシステム作成]]でフォーマットします。&lt;br /&gt;
* {{ic|&#039;&#039;start&#039;&#039;}} はデバイスの先頭からのパーティションの開始位置です。[http://www.gnu.org/software/parted/manual/parted.html#unit 単位] をつけた数値で指定し、例えば {{ic|1M}} なら 1MiB が開始位置になります。&lt;br /&gt;
* {{ic|&#039;&#039;end&#039;&#039;}} はデバイスの先頭からのパーティションの終末位置です ({{ic|&#039;&#039;start&#039;&#039;}} から計算するわけではありません)。{{ic|&#039;&#039;start&#039;&#039;}} と同じ構文を使うことができ、例えば {{ic|100%}} と指定するとデバイスの終端を意味します (残り領域全てを使う)。&lt;br /&gt;
&lt;br /&gt;
{{Warning|パーティションは重ならないように注意してください。デバイスに未使用のスペースを残さないようにするには、それぞれのパーティションが前のパーティションの終末から開始するようにしてください。}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&#039;&#039;parted&#039;&#039; は以下のような警告を表示することがあります:&lt;br /&gt;
&lt;br /&gt;
 Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
 Ignore/Cancel?&lt;br /&gt;
&lt;br /&gt;
この表示がでたときは、[[パーティショニング#パーティションアライメント]]を見て [[GNU Parted#アライメント]] にしたがって修正してください。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|/boot}} ディレクトリを含むパーティションが起動できるようにフラグを立てるには次のコマンドを使います:&lt;br /&gt;
&lt;br /&gt;
 (parted) set &#039;&#039;partition&#039;&#039; boot on&lt;br /&gt;
&lt;br /&gt;
* {{ic|&#039;&#039;partition&#039;&#039;}} はフラグを立てるパーティションの番号に置き換えて下さい ({{ic|print}} コマンドの出力を参照しましょう)。&lt;br /&gt;
&lt;br /&gt;
==== UEFI/GPT の例 ====&lt;br /&gt;
&lt;br /&gt;
どんなふうにパーティショニングするにせよ、特別な [[Unified Extensible Firmware Interface#EFI System Partition|EFI System Partition]] が必要になります。&lt;br /&gt;
&lt;br /&gt;
{{Warning|UEFI/GPT で Windows がインストールされている環境でデュアルブートをしたい場合は、既存の UEFI パーティションを消去しないでください。このパーティションを消去すると、Windows を起動するのに必要な &#039;&#039;.efi&#039;&#039; ファイルが削除されてしまいます。}}&lt;br /&gt;
&lt;br /&gt;
新しく EFI System Partition を作成する場合は、以下のコマンドを使って下さい (推奨される容量は 512MiB です):&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart ESP fat32 1MiB 513MiB&lt;br /&gt;
 (parted) set 1 boot on&lt;br /&gt;
&lt;br /&gt;
あとのパーティションスキームはあなたが自由に決めて下さい。残りのスペースを全て使用する単一のパーティションを作るには:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 513MiB 100%&lt;br /&gt;
&lt;br /&gt;
{{ic|/}} (20GiB) と {{ic|/home}} (残り容量全てを使用) パーティションを作るには:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 513MiB 20.5GiB&lt;br /&gt;
 (parted) mkpart primary ext4 20.5GiB 100%&lt;br /&gt;
&lt;br /&gt;
{{ic|/}} (20GiB), スワップ (4GiB), {{ic|/home}} (残り容量全てを使用) パーティションを作成するには:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 513MiB 20.5GiB&lt;br /&gt;
 (parted) mkpart primary linux-swap 20.5GiB 24.5GiB&lt;br /&gt;
 (parted) mkpart primary ext4 24.5GiB 100%&lt;br /&gt;
&lt;br /&gt;
==== BIOS/MBR の例 ====&lt;br /&gt;
&lt;br /&gt;
ディスク容量を全て使用する単一のプライマリパーティションを作成するには、以下のコマンドを使用します:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 1MiB 100%&lt;br /&gt;
 (parted) set 1 boot on&lt;br /&gt;
&lt;br /&gt;
以下の例では、20GiB の {{ic|/}} パーティションを作成してから、残り容量を全て使用する {{ic|/home}} パーティションを作成します:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 1MiB 20GiB&lt;br /&gt;
 (parted) set 1 boot on&lt;br /&gt;
 (parted) mkpart primary ext4 20GiB 100%&lt;br /&gt;
&lt;br /&gt;
以下の例では {{ic|/boot}} (100MiB), {{ic|/}} (20GiB), スワップ (4GiB), {{ic|/home}} (残り容量全てを使用) パーティションを作成します:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 1MiB 100MiB&lt;br /&gt;
 (parted) set 1 boot on&lt;br /&gt;
 (parted) mkpart primary ext4 100MiB 20GiB&lt;br /&gt;
 (parted) mkpart primary linux-swap 20GiB 24GiB&lt;br /&gt;
 (parted) mkpart primary ext4 24GiB 100%&lt;br /&gt;
&lt;br /&gt;
=== ファイルシステムの作成 ===&lt;br /&gt;
&lt;br /&gt;
パーティショニングはまだ終わっていません。パーティションには[[ファイルシステム]]が必要です（ただしスワップパーティションには要りません）。インストール先のデバイスに存在するパーティションを確認するには次のコマンドを使用:&lt;br /&gt;
&lt;br /&gt;
 # lsblk /dev/sd&#039;&#039;x&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
下に書かれている注意点を除いて、基本的には {{ic|ext4}} ファイルシステムを使うことを推奨します:&lt;br /&gt;
&lt;br /&gt;
 # mkfs.ext4 /dev/sd&#039;&#039;xY&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Warning|UEFI/GPT で Windows がインストールされている環境でデュアルブートをしたい場合は、UEFI パーティションをフォーマットしないでください。フォーマットしてしまうと、Windows を起動するのに必要な &#039;&#039;.efi&#039;&#039; ファイルが入っている UEFI パーティションのデータが全て削除されます。}}&lt;br /&gt;
&lt;br /&gt;
UEFI/GPT 環境で新しく UEFI システムパーティションを作成した場合は、UEFI パーティションを {{ic|fat32}} または {{ic|vfat32}} ファイルシステムでフォーマットしてください。これを行っておかないと起動できなくなります:&lt;br /&gt;
 # mkfs.vfat -F32 /dev/sd&#039;&#039;xY&#039;&#039;&lt;br /&gt;
{{Note|BIOS/GPT 環境で [[GRUB]] を使用する場合、[[GRUB#GUID Partition Table (GPT) 特有の手順|BIOS Boot Partition]] は {{ic|/boot}} マウントポイントと関係ないので注意してください。このパーティションは GRUB によって直接使用されます。BIOS Boot Partition にファイルシステムを作成したり、マウントしたりしてはいけません。}}&lt;br /&gt;
&lt;br /&gt;
=== スワップの有効化 ===&lt;br /&gt;
&lt;br /&gt;
スワップパーティションを作成した場合は、以下のコマンドで有効化する必要があります:&lt;br /&gt;
&lt;br /&gt;
 # mkswap /dev/sd&#039;&#039;xY&#039;&#039;&lt;br /&gt;
 # swapon /dev/sd&#039;&#039;xY&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== パーティションのマウント ===&lt;br /&gt;
&lt;br /&gt;
{{Note|ここではスワップパーティションをマウントしないでください。}}&lt;br /&gt;
&lt;br /&gt;
まず最初に {{ic|/}} (root) パーティションをマウントしてください。{{ic|/boot}} や {{ic|/home}} などのディレクトリは root ファイルシステムに作成する必要があるためです。ライブ環境の {{ic|/mnt}} ディレクトリを使用して root パーティションをマウントします。他のパーティションはそこをベースにします。root パーティションの名前が {{ic|sd&#039;&#039;xR&#039;&#039;}} なら、次のコマンドを実行:&lt;br /&gt;
&lt;br /&gt;
 # mount /dev/sd&#039;&#039;xR&#039;&#039; /mnt&lt;br /&gt;
&lt;br /&gt;
{{ic|/}} パーティションをマウントしたら、他のパーティションをマウントすることができます。順番は気にしなくて結構です。手順としてはまずマウントポイントを作成し、それからパーティションをそのマウントポイントにマウントします。{{ic|/boot}} パーティションを作成していたのならば:&lt;br /&gt;
&lt;br /&gt;
 # mkdir -p /mnt/boot&lt;br /&gt;
 # mount /dev/sd&#039;&#039;xB&#039;&#039; /mnt/boot&lt;br /&gt;
&lt;br /&gt;
UEFI/GPT 環境の場合、EFI システムパーティションも {{ic|/boot}} にマウントすることを推奨します。他のマウントポイントを使いたいときは、[[EFISTUB]] の記事を見て下さい。&lt;br /&gt;
&lt;br /&gt;
{{ic|/home}} パーティションを使用する場合:&lt;br /&gt;
&lt;br /&gt;
 # mkdir -p /mnt/home&lt;br /&gt;
 # mount /dev/sd&#039;&#039;xH&#039;&#039; /mnt/home&lt;br /&gt;
&lt;br /&gt;
全てのパーティションをマウントしたら、デバイスの準備は完了で Arch をインストールできます。&lt;br /&gt;
&lt;br /&gt;
== ミラーの選択 ==&lt;br /&gt;
&lt;br /&gt;
インストールの前に、{{ic|mirrorlist}} ファイルを編集し、あなたに相応しいミラーを一番上に置きましょう。このファイルのコピーが {{ic|pacstrap}} によってインストールされ、新しいシステム上でも選択したミラーが使われます。&lt;br /&gt;
&lt;br /&gt;
{{hc|# nano /etc/pacman.d/mirrorlist|&lt;br /&gt;
##&lt;br /&gt;
## Arch Linux repository mirrorlist&lt;br /&gt;
## Sorted by mirror score from mirror status page&lt;br /&gt;
## Generated on YYYY-MM-DD&lt;br /&gt;
##&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
...}}&lt;br /&gt;
&lt;br /&gt;
* {{ic|Alt+6}} で {{ic|Server}} 行をコピー。&lt;br /&gt;
* {{ic|PageUp}} キーで上にスクロール。&lt;br /&gt;
* {{ic|Ctrl+U}} でリストの一番上にペースト。&lt;br /&gt;
* {{ic|Ctrl+X}} で終了、保存するか聞かれたら、{{ic|Y}} を押し {{ic|Enter}} で上書き保存。&lt;br /&gt;
&lt;br /&gt;
他のミラーを消去 ({{ic|Ctrl+K}} を使う) してミラーを&#039;&#039;ひとつだけに&#039;&#039;絞ることもできますが、そのミラーがオフラインになったときのことを考え、ミラーを複数使用するほうが良いでしょう。&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* [https://www.archlinux.org/mirrorlist/ Mirrorlist Generator] を使って、あなたの国の最新リストを入手できます。[[Wikipedia:Keepalive|keepalive]] が存在するため、HTTP ミラーのほうが FTP よりも速度が速いです。また FTP では、pacman はパッケージをダウンロードするごとにシグナルを送信しなくてはならないため、短い停止がはさまります。ミラーリストを作る他の方法を見るには、[[ミラー#ミラーをソートする|ミラーのソート]]と [[Reflector]] を参照してください。&lt;br /&gt;
* [https://archlinux.org/mirrors/status/ Arch Linux MirrorStatus] ではミラーの状況、たとえばネットワークエラー、データ収集エラー、最終同期時間などの様々な情報を見ることができます。}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* 将来、ミラーリストを変更したときは必ず、{{ic|pacman -Syyu}} で pacman の全てのパッケージリストを更新することを覚えておいて下さい。これは良い経験則と考えられており、問題の回避につながります。詳しくは[[ミラー]]を参照。&lt;br /&gt;
* 古いインストールメディアを使っている場合、ミラーリストが古くなっているかもしれません。そのために Arch Linux のアップデート時に問題を引き起こす可能性があります。({{Bug|22510}} を参照)。上で述べたようにして最新のミラー情報を入手するべきです。}}&lt;br /&gt;
&lt;br /&gt;
== ベースシステムのインストール ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;pacstrap&#039;&#039; スクリプトを使ってベースシステムをインストールします。インストールするパッケージを選択せず、{{Grp|base}} の全てのパッケージをインストールするときは、{{ic|-i}} スイッチを省いて下さい。[[AUR]] や [[ABS]] でパッケージをビルドするときのために、{{Grp|base-devel}} グループも必要になります。&lt;br /&gt;
&lt;br /&gt;
 # pacstrap -i /mnt base base-devel&lt;br /&gt;
&lt;br /&gt;
ライブ環境に含まれているツールの中には base グループに含まれていないものもあります ([https://projects.archlinux.org/archiso.git/tree/configs/releng/packages.both packages.both] を参照)。パッケージは後で &#039;&#039;pacman&#039;&#039; を使って[[インストール]]することもできますが、&#039;&#039;pacstrap&#039;&#039; コマンドにパッケージの名前を追加することでこの場でインストールすることもできます。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* ミラーを正しく設定しているのに、&#039;&#039;pacstrap&#039;&#039; が {{ic|error: failed retrieving file &#039;core.db&#039; from mirror... : Connection time-out}} で止まる場合は、他の[[Resolv.conf|ネームサーバ]]を設定してみてください。&lt;br /&gt;
* ベースパッケージのインストール中に PGP 鍵のインポートをリクエストされたら、鍵のダウンロードを承認して先に進んで下さい。これは古い Arch ISO を使っていると発生します。PGP 鍵を追加できないときは、次のようにして {{Pkg|archlinux-keyring}} パッケージを更新してみてください: {{ic|pacman -S archlinux-keyring}}。詳しくは [[Pacman#トラブルシューティング]] や [[Pacman-key#トラブルシューティング]] を見て下さい。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== fstab の生成 ==&lt;br /&gt;
&lt;br /&gt;
以下のコマンドで [[fstab]] ファイルを生成します。いくつか有利な点がある UUID が使われます ([[fstab#ファイルシステムの識別]] を参照)。UUID ではなくラベルを使いたいときは、{{ic|-U}} オプションを {{ic|-L}} に置き換えましょう。&lt;br /&gt;
&lt;br /&gt;
 # genfstab -U /mnt &amp;gt; /mnt/etc/fstab&lt;br /&gt;
 # cat /mnt/etc/fstab&lt;br /&gt;
&lt;br /&gt;
{{Warning|生成したあとは必ず {{ic|fstab}} の中身をチェックしましょう。&#039;&#039;genfstab&#039;&#039; や後のインストール作業中にエラーが起こっても、もう一度 &#039;&#039;genfstab&#039;&#039; を実行するのはやめてください。その場合は手動で {{ic|fstab}} ファイルを編集して下さい。}}&lt;br /&gt;
&lt;br /&gt;
最後のフィールドには起動時にチェックするパーティションの順番を設定します: ({{ic|btrfs}} 以外では) root パーティションに {{ic|1}} を使って下さい、最初にチェックされます。起動時にチェックしたい他のパーティションには {{ic|2}} を使って下さい、{{ic|0}} はチェックされません ([[fstab#フィールドの定義]] を参照)。[[btrfs]] のパーティションには全て {{ic|0}} を使う必要があります。スワップパーティションも {{ic|0}} に設定してください。&lt;br /&gt;
&lt;br /&gt;
== Chroot とベースシステムの設定 ==&lt;br /&gt;
&lt;br /&gt;
次に、[[Change Root|chroot]] を使って新しくインストールされたシステムに入ります:&lt;br /&gt;
&lt;br /&gt;
 # arch-chroot /mnt /bin/bash&lt;br /&gt;
&lt;br /&gt;
この段階では、Arch Linux ベースシステムの重要な設定ファイルを作ります。ファイルが存在していないときや、デフォルト設定を使いたくないときは、その都度ファイルを作成したり編集してください。&lt;br /&gt;
&lt;br /&gt;
正確に、手順をよく踏まえてから設定してください。システムを正しく設定するのにとても重要なステップです。&lt;br /&gt;
&lt;br /&gt;
{{Warning|ISO で使用しているツールは自動的にインストールされるわけではありません。例えば、インストールの一環としてネットワークに接続するために &#039;&#039;wifi-menu&#039;&#039; を使っている場合、インストールを完了した後も &#039;&#039;wifi-menu&#039;&#039; を使うためには、{{Pkg|dialog}} をインストールしておく必要があります。以下のセクションではそういったケースについて説明をしているので、後で困った事態にならないようにちゃんと指示に従って下さい。}}&lt;br /&gt;
&lt;br /&gt;
=== ロケール ===&lt;br /&gt;
&lt;br /&gt;
ロケールを設定することによって、{{Pkg|glibc}} やその他のロケールを使うプログラムやライブラリで、テキストのレンダリング、正しい通貨単位の表示、時間と月日のフォーマット、アルファベットの特有表現、地域特有の単位の表示などができるようになります。&lt;br /&gt;
&lt;br /&gt;
2つのファイルを編集する必要があります: 使用可能なロケールを記述する {{ic|locale.gen}} と実際に使用するロケールを定義する {{ic|locale.conf}}。&lt;br /&gt;
&lt;br /&gt;
{{ic|locale.gen}} ファイルはデフォルトでは全てコメントアウト ({{ic|#}} で無効化) されています。{{ic|en_US.UTF-8 UTF-8}} の行と、必要なロケールをアンコメント (行の前の {{ic|#}} を削除) してください。選択肢がいくつかある場合 {{ic|UTF-8}} を推奨します。&lt;br /&gt;
&lt;br /&gt;
{{hc|# nano /etc/locale.gen|&lt;br /&gt;
...&lt;br /&gt;
#en_SG ISO-8859-1&lt;br /&gt;
en_US.UTF-8 UTF-8&lt;br /&gt;
#en_US ISO-8859-1&lt;br /&gt;
...&lt;br /&gt;
#ja_JP.EUC-JP EUC-JP&lt;br /&gt;
ja_JP.UTF-8 UTF-8&lt;br /&gt;
#ka_GE.UTF-8 UTF-8&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
ロケールは有効にする前に、&#039;&#039;生成&#039;&#039;する必要があります:&lt;br /&gt;
&lt;br /&gt;
 # locale-gen&lt;br /&gt;
&lt;br /&gt;
{{ic|locale.conf}} ファイルはデフォルトで存在しません。ファイルを作成して、他の全ての変数のデフォルト値として扱われる {{ic|LANG}} のみ設定してください。{{ic|LANG}} 変数に指定するロケールは {{ic|/etc/locale.gen}} でアンコメントされている必要があります:&lt;br /&gt;
&lt;br /&gt;
 # echo LANG=&#039;&#039;en_US.UTF-8&#039;&#039; &amp;gt; /etc/locale.conf&lt;br /&gt;
&lt;br /&gt;
ロケールを export してください:&lt;br /&gt;
&lt;br /&gt;
 # export LANG=&#039;&#039;en_US.UTF-8&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* この段階でロケールを日本語に設定してしまうと、日本語を表示するためのフォントなどの環境が整っていないため、コンソールの出力が文字化けして判読できなくなってしまいます。GUI 環境を設定してから、以下を実行することで言語を日本語に設定できます:&lt;br /&gt;
 # echo LANG&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&#039;&#039;ja_JP.UTF-8&#039;&#039; &amp;gt; /etc/locale.conf&lt;br /&gt;
 # export LANG&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&#039;&#039;ja_JP.UTF-8&#039;&#039;&lt;br /&gt;
* システム全体のロケールを {{ic|en_US.UTF-8}} に設定してシステムログを英語で保存するとトラブルシューティングが楽になります。この設定は[[ロケール#ユーザーごとにロケールを設定]]で書かれているようにしてユーザー個別で上書きできます。&lt;br /&gt;
* 他の {{ic|LC_*}} 変数を使いたいときは、まず {{ic|locale}} を実行してオプションを確認してから、{{ic|locale.conf}} に追加してください。{{ic|LC_ALL}} 変数を使うことは推奨されません。詳しくは[[ロケール]]を参照してください。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== コンソールフォントとキーマップ ===&lt;br /&gt;
&lt;br /&gt;
[[#言語の選択|言語の選択]]でデフォルトのキーマップとフォントを変更していた場合、再起動後もキーマップ設定が適用されるように、{{ic|/etc/vconsole.conf}} を編集 (ファイルがなかったら作成) してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|# nano /etc/vconsole.conf|2=&lt;br /&gt;
KEYMAP=&#039;&#039;jp106&#039;&#039;&lt;br /&gt;
FONT=&#039;&#039;lat9w-16&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
詳しくは[[フォント#コンソールフォント|コンソールフォント]]や {{ic|man vconsole.conf}} を参照。&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|KEYMAP}} を最初に &#039;&#039;loadkeys&#039;&#039; で設定した値と異なる値に設定してから、[[#root パスワードの設定|root パスワードを設定]]してしまうと、新しいシステムにログインするときにキーマップが変わっていてログインできなくなる可能性があります。}}&lt;br /&gt;
&lt;br /&gt;
以上の設定は仮想端末においてのみ適用されます。[[Xorg]] ではまた異なる設定をする必要があります。詳しくは[[フォント#コンソールフォント]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== タイムゾーン ===&lt;br /&gt;
&lt;br /&gt;
利用可能なタイムゾーンとサブゾーンは {{ic|/usr/share/zoneinfo/&#039;&#039;ゾーン&#039;&#039;/&#039;&#039;サブゾーン&#039;&#039;}} ディレクトリで見つかります。{{ic|ls}} コマンドでゾーンの一覧を表示できます:&lt;br /&gt;
 $ ls -l /usr/share/zoneinfo&lt;br /&gt;
&lt;br /&gt;
{{Tip|[http://tldp.org/LDP/abs/html/tabexpansion.html タブ補完] を使うことでも利用できるゾーンとサブゾーンを表示できます。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/localtime}} から適切なゾーンファイル {{ic|/usr/share/zoneinfo/&#039;&#039;ゾーン&#039;&#039;/&#039;&#039;サブゾーン&#039;&#039;}} へのシンボリックリンクを作って下さい:&lt;br /&gt;
&lt;br /&gt;
 # ln -s /usr/share/zoneinfo/&#039;&#039;ゾーン&#039;&#039;/&#039;&#039;サブゾーン&#039;&#039; /etc/localtime&lt;br /&gt;
&lt;br /&gt;
例:&lt;br /&gt;
&lt;br /&gt;
 # ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime&lt;br /&gt;
&lt;br /&gt;
{{ic|ln: failed to create symbolic link &#039;/etc/localtime&#039;: File exists}} と表示される場合は、{{ic|ls -l /etc/localtime}} で既存のファイルを確認してから、&#039;&#039;ln&#039;&#039; コマンドに {{ic|-f}} オプションを追加して上書きしてください。&lt;br /&gt;
&lt;br /&gt;
=== ハードウェアクロック ===&lt;br /&gt;
&lt;br /&gt;
ハードウェアクロックモードを全ての OS で同じになるように設定します。さもないと、ハードウェアクロックが上書きされ時刻がずれてしまう可能性があります。&#039;&#039;hwclock&#039;&#039; コマンドは {{ic|/etc/adjtime}} ファイルを生成します。[[Wikipedia:ja:協定世界時|UTC]] に設定するには、次を実行:&lt;br /&gt;
&lt;br /&gt;
 # hwclock --systohc --utc&lt;br /&gt;
&lt;br /&gt;
{{Note|ハードウェアクロックに [[Wikipedia:ja:協定世界時|UTC]] を使ったからといって、ソフトウェアが時刻を UTC で表示するわけではありません。}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|Windows はデフォルトで &#039;&#039;localtime&#039;&#039; を使っています。Arch で &#039;&#039;localtime&#039;&#039; を使用すると既知の問題や容易に修復できないバグを引き起こす可能性があります。しかしながら、&#039;&#039;localtime&#039;&#039; のサポートを終了する計画はありません。&#039;&#039;localtime&#039;&#039; を使用する場合は、root で {{ic|hwclock --systohc --localtime}} を実行してください。Windows 7 以降を使用する場合、Arch を &#039;&#039;localtime&#039;&#039; に設定するのではなく、Windows に UTC を使わせて、Windows の時刻同期を無効にすることが推奨されています。詳しくは[[時刻#Windows で UTC を使う]]を見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
=== カーネルモジュール ===&lt;br /&gt;
&lt;br /&gt;
必要なカーネルモジュールは基本的に [[udev]] によって自動ロードされるため、手動でモジュールをロードする必要があるのは稀です。詳しくは[[カーネルモジュール]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== ホスト名 ===&lt;br /&gt;
&lt;br /&gt;
お好きな名前を[[Wikipedia:ja:ホスト名|ホスト名]]に設定してください (例: &#039;&#039;arch&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
 # echo &#039;&#039;ホスト名&#039;&#039; &amp;gt; /etc/hostname&lt;br /&gt;
&lt;br /&gt;
同じホスト名を {{ic|/etc/hosts}} に追加します:&lt;br /&gt;
&lt;br /&gt;
 #&amp;lt;ip-address&amp;gt; &amp;lt;hostname.domain.org&amp;gt; &amp;lt;hostname&amp;gt;&lt;br /&gt;
 127.0.0.1 localhost.localdomain localhost &#039;&#039;ホスト名&#039;&#039;&lt;br /&gt;
 ::1   localhost.localdomain localhost &#039;&#039;ホスト名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== ネットワークの設定 ===&lt;br /&gt;
&lt;br /&gt;
ネットワークの設定をもう一度行います。今回は新しくインストールされる環境のネットワーク設定です。[[#インターネット接続の確立|上で説明した]]のと方法はほとんど同じですが、今回の設定では、設定が消えないように、ブート時に自動的に起動するように設定します。&lt;br /&gt;
&lt;br /&gt;
まず最初に、{{ic|ip link}} で接続を設定するネットワークインターフェイスの名前を確認してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* ネットワーク設定の詳しい情報は、[[ネットワーク設定]]や[[ワイヤレス設定]]を参照してください。&lt;br /&gt;
* インターフェースについて古い命名規則 ({{ic|eth&#039;&#039;X&#039;&#039;}} や {{ic|wlan&#039;&#039;X&#039;&#039;}}) を使って欲しい時は {{ic|/etc/udev/rules.d/80-net-setup-link.rules}} に空のファイルを作成してください。これによって {{ic|/usr/lib/udev/rules.d}} 下の同じ名前のファイルがマスクされます (空のファイルを使う代わりに、{{ic|/dev/null}} へのシンボリックリンクを使うことでも命名規則を戻せます: {{ic|# ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules}})。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== 有線 ====&lt;br /&gt;
&lt;br /&gt;
===== 動的 IP =====&lt;br /&gt;
&lt;br /&gt;
; dhcpcd を使う&lt;br /&gt;
&lt;br /&gt;
固定された有線ネットワーク接続が1つだけあるという環境の場合、ネットワーク管理サービスを使う必要はなく、単純に {{ic|dhcpcd}} サービスを有効にするだけで足ります:&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable dhcpcd@&#039;&#039;インターフェイス名&#039;&#039;.service&lt;br /&gt;
&lt;br /&gt;
; netctl を使う&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/netctl/examples}} からサンプルプロファイルを {{ic|/etc/netctl/}} にコピーしてください:&lt;br /&gt;
&lt;br /&gt;
 # cd /etc/netctl&lt;br /&gt;
 # cp examples/ethernet-dhcp my_network&lt;br /&gt;
&lt;br /&gt;
プロファイルを編集して下さい ({{ic|Interface}} を {{ic|eth0}} から {{ic|ip link}} を実行したときに確認したインターフェイス名に修正する):&lt;br /&gt;
&lt;br /&gt;
 # nano my_network&lt;br /&gt;
&lt;br /&gt;
{{ic|my_network}} プロファイルを有効にしてください:&lt;br /&gt;
&lt;br /&gt;
 # netctl enable my_network&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|Running in chroot, ignoring request.}} というメッセージが表示されることがありますが、いまのところは無視してかまいません。}}&lt;br /&gt;
&lt;br /&gt;
; netctl-ifplugd を使う&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|netctl enable &#039;&#039;プロファイル名&#039;&#039;}} のようにしてプロファイルを有効にする方法と netctl-ifplugd を使う方法を一緒に用いることはできません。}}&lt;br /&gt;
&lt;br /&gt;
{{Pkg|netctl}} の {{ic|netctl-ifplugd}} を使って動的に接続を管理することもできます。&lt;br /&gt;
&lt;br /&gt;
まず {{Pkg|ifplugd}} をインストールしてください、{{ic|netctl-ifplugd}} を使うために必要なパッケージです:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S ifplugd&lt;br /&gt;
&lt;br /&gt;
そしてサービスを有効にしてください:&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable netctl-ifplugd@&#039;&#039;インターフェイス名&#039;&#039;.service&lt;br /&gt;
&lt;br /&gt;
{{Note|[[netctl]] には {{ic|netctl-auto}} もあり、{{ic|netctl-ifplugd}} と一緒に無線プロファイルを管理するのに使うことができます。}}&lt;br /&gt;
&lt;br /&gt;
===== 固定 IP =====&lt;br /&gt;
&lt;br /&gt;
; netctl を使う&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/network.d/examples}} から {{ic|/etc/netctl}} にサンプルプロファイルをコピーします:&lt;br /&gt;
&lt;br /&gt;
 # cd /etc/netctl&lt;br /&gt;
 # cp examples/ethernet-static my_network&lt;br /&gt;
&lt;br /&gt;
必要に応じてプロファイルを編集 ({{ic|Interface}}, {{ic|Address}}, {{ic|Gateway}}, {{ic|DNS}} を修正):&lt;br /&gt;
&lt;br /&gt;
 # nano my_network&lt;br /&gt;
&lt;br /&gt;
{{ic|Address}} の中の {{ic|/24}} は {{ic|255.255.255.0}} ネットマスクの [[wikipedia:Classless Inter-Domain Routing#CIDR notation|CIDR notation]] です。&lt;br /&gt;
&lt;br /&gt;
そして作成したプロファイルを有効にしてください:&lt;br /&gt;
&lt;br /&gt;
 # netctl enable my_network&lt;br /&gt;
&lt;br /&gt;
; systemd-networkd を使う&lt;br /&gt;
&lt;br /&gt;
[[systemd-networkd]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==== 無線 ====&lt;br /&gt;
&lt;br /&gt;
{{Note|あなたの使っているワイヤレスアダプタにファームウェアが必要な場合 (上の[[#インターネット接続の確立|インターネット接続の確立]]セクションと[[ワイヤレス設定#ドライバとファームウェア|ここ]]に記述あり)、ファームウェアを含んだパッケージをインストールしてください。ほとんどの場合、{{Pkg|linux-firmware}} パッケージに必要なファームウェアが含まれていますが、機器によっては個別のパッケージにファームウェアが存在します。例えば: {{ic|# pacman -S zd1211-firmware}}。詳しくは[[ワイヤレス設定]]を見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
ネットワークに接続するために {{pkg|iw}} と {{pkg|wpa_supplicant}} をインストールしてください:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S iw wpa_supplicant&lt;br /&gt;
&lt;br /&gt;
===== 無線ネットワークの追加 =====&lt;br /&gt;
; wifi-menu を使う&lt;br /&gt;
&lt;br /&gt;
{{ic|wifi-menu}} に必要な {{pkg|dialog}} をインストールしてください:&lt;br /&gt;
 # pacman -S dialog&lt;br /&gt;
&lt;br /&gt;
このインストールと再起動が終わった後 {{ic|wifi-menu &#039;&#039;インターフェイス名&#039;&#039;}} ({{ic|&#039;&#039;インターフェイス名&#039;&#039;}} はあなたの無線インターフェースに置き換えてください) でネットワークに接続することができます。&lt;br /&gt;
&lt;br /&gt;
 # wifi-menu &#039;&#039;インターフェイス名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|wifi-menu}} を使う時は、絶対に chroot を終了して再起動した&#039;&#039;後&#039;&#039;にしてください。このコマンドを使って作成されたものが chroot の外で動作させているものと衝突してしまう恐れがあるからです。また、上で書かれているようにテンプレートを使って手動でネットワークプロファイルを設定することもできます、その場合は {{ic|wifi-menu}} を使うことについての心配はいりません。}}&lt;br /&gt;
&lt;br /&gt;
; 手動の netctl プロファイルを使う&lt;br /&gt;
&lt;br /&gt;
ネットワークプロファイルを {{ic|/etc/netctl/examples}} から {{ic|/etc/netctl}} にコピーしてください:&lt;br /&gt;
&lt;br /&gt;
 # cd /etc/netctl&lt;br /&gt;
 # cp examples/wireless-wpa my_network&lt;br /&gt;
&lt;br /&gt;
接続するネットワークにあわせてプロファイルを編集してください ({{ic|Interface}}, {{ic|ESSID}}, {{ic|Key}} を修正):&lt;br /&gt;
&lt;br /&gt;
 # nano my_network&lt;br /&gt;
&lt;br /&gt;
作成したプロファイルがブート毎に実行されるよう有効にしてください:&lt;br /&gt;
&lt;br /&gt;
 # netctl enable my_network&lt;br /&gt;
&lt;br /&gt;
===== 既知のネットワークに自動で接続する =====&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|netctl enable &#039;&#039;プロファイル名&#039;&#039;}} のようにしてプロファイルを有効にする方法とこの方法を一緒に使うことはできません。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|netctl-auto}} に必要な {{Pkg|wpa_actiond}} をインストールしてください:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S wpa_actiond&lt;br /&gt;
&lt;br /&gt;
{{ic|netctl-auto}} サービスを有効にすれば、既知のネットワークに接続しローミングや切断を管理します:&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable netctl-auto@&#039;&#039;インターフェイス名&#039;&#039;.service&lt;br /&gt;
&lt;br /&gt;
{{Note|[[netctl]] には {{ic|netctl-ifplugd}} もあり、{{ic|netctl-auto}} と一緒に有線プロファイルを管理するのに使われます。}}&lt;br /&gt;
&lt;br /&gt;
==== xDSL (PPPoE), アナログモデム, ISDN ====&lt;br /&gt;
&lt;br /&gt;
xDSL、ダイアルアップ・ISDN 接続は、[[モデムに直接接続]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== Initial ramdisk 環境の作成 ===&lt;br /&gt;
&lt;br /&gt;
{{Tip|ほとんどのユーザーはこの手順をスキップし、{{ic|mkinitcpio.conf}} のデフォルト設定を使って問題ありません。initramfs イメージ ({{ic|/boot}} フォルダ内) は {{ic|pacstrap}} によって {{Pkg|linux}} パッケージ (Linux カーネル) をインストールしたときに、{{ic|mkinitcpio.conf}} に基づいて既に生成されています。}}&lt;br /&gt;
&lt;br /&gt;
root が USB ドライブにあったり、RAID や LVM を使っていたり、{{ic|/usr}} が分割されたパーティション上にある場合は、ここで正しい [[Mkinitcpio#HOOKS|hooks]] を設定しなくてはなりません。&lt;br /&gt;
&lt;br /&gt;
必要に応じて {{ic|/etc/mkinitcpio.conf}} を編集し、initramfs イメージを再形成します:&lt;br /&gt;
&lt;br /&gt;
 # mkinitcpio -p linux&lt;br /&gt;
&lt;br /&gt;
=== root パスワードの設定 ===&lt;br /&gt;
&lt;br /&gt;
root パスワードを設定します:&lt;br /&gt;
&lt;br /&gt;
 # passwd&lt;br /&gt;
&lt;br /&gt;
=== ブートローダのインストールと設定 ===&lt;br /&gt;
&lt;br /&gt;
Intel の CPU を使っている場合、{{Pkg|intel-ucode}} パッケージをインストールして[[マイクロコード#Intel のマイクロコードのアップデートを有効にする|マイクロコードのアップデートを有効化]]してください。&lt;br /&gt;
&lt;br /&gt;
==== BIOS マザーボードの場合 ====&lt;br /&gt;
&lt;br /&gt;
BIOS システムでは、複数のブートローダが使えます。ブートローダの完全なリストは[[ブートローダー]]にあります。あなたの都合に合わせてどれか一つを選んで下さい。よく使われるブートローダーは:&lt;br /&gt;
&lt;br /&gt;
* [[Syslinux]] は現在 Syslinux がインストールされたパーティションのファイルのみをロードするように制限されています。設定ファイルはわかりやすいものになっています。設定サンプルは [[Syslinux#サンプル|Syslinux]] の記事にあります。&lt;br /&gt;
&lt;br /&gt;
* [[GRUB]] はより多くの機能を備えた複雑なブートローダです。設定ファイルはスクリプト言語 (sh) に似ていて、初心者が手動で設定するには難しいかもしれません。自動で設定を生成するのが推奨されます。&lt;br /&gt;
&lt;br /&gt;
ここからは、GRUB と MBR の組み合わせでのインストールを説明します。まず {{Pkg|grub}} パッケージをインストールします。GRUB が他のオペレーティングシステムも検索できるように、{{Pkg|os-prober}} もインストールしておきます:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S grub os-prober&lt;br /&gt;
&lt;br /&gt;
{{ic|grub-install}} を実行してブートローダをインストールしてください:&lt;br /&gt;
&lt;br /&gt;
 # grub-install --recheck &#039;&#039;/dev/sda&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* {{ic|/dev/sda}} はあなたが Arch をインストールしたドライブに書き換えてください。パーティション番号を加えてはいけません ({{ic|sda&#039;&#039;X&#039;&#039;}} を使ってはいけません)。&lt;br /&gt;
* サンプルの {{ic|/boot/grub/grub.cfg}} は grub パッケージの一部としてインストールされ、後の {{ic|grub-*}} コマンドでは上書きされません。変更を加えるときは {{ic|grub.cfg.new}} などのファイルではなく {{ic|grub.cfg}} を編集してください。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
次に {{ic|grub.cfg}} を作ります。手動で作る方が細かい設定ができますが、初心者は自動で生成するのが推奨されています:&lt;br /&gt;
&lt;br /&gt;
 # grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
GRUB の使用・設定の詳しい情報は、[[GRUB]] を参照。&lt;br /&gt;
&lt;br /&gt;
==== UEFI マザーボードの場合 ====&lt;br /&gt;
&lt;br /&gt;
{{Note|UEFI ファームウェアによってはインストールしたブートローダーの {{ic|.efi}} ブータブルスタブを特定の名前で特定の場所に配置する必要があります: {{ic|$esp/EFI/boot/bootx64.efi}} ({{ic|$esp}} は EFI System Partition のマウントポイントに置き換えて下さい)。これをしていないと場合によっては、インストールした環境を起動できなくなることがあります。詳しくはそれぞれのブートローダーのセクションを見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
UEFI システムでも、複数のブートローダが使えます。利用できるブートローダの完全なリストは[[ブートローダー]]にあります。あなたの都合にあわせて選んで下さい。ここでは、2つのブートローダを例として提示します:&lt;br /&gt;
&lt;br /&gt;
* [[systemd-boot]] は最小主義の UEFI ブートマネージャで、[[EFISTUB]] カーネルや他の UEFI アプリケーションのためのメニューを提供します。初心者、特に Windows 8 などの別のオペレーティングシステムとデュアルブートをしたいユーザーに推奨です。&lt;br /&gt;
* [[GRUB]] は完全なブートローダーで、systemd-boot で問題が起きた時に役に立ちます。&lt;br /&gt;
&lt;br /&gt;
ここからは systemd-boot のインストールを説明します。まず、インストール後に EFI System Partition を操作するための {{Pkg|dosfstools}} パッケージをインストールしてください:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S dosfstools&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* UEFI でブートするには、ドライブは GPT でパーティションされている必要があり、[[Unified Extensible Firmware Interface#EFI System Partition|EFI System Partition]] (512 MiB 以上, FAT32, gdisk タイプ {{ic|EF00}}) が存在しなければなりません。このガイドを初めから実行しているのなら、すでに全て行われているはずです。&lt;br /&gt;
* systemd-boot が自動的にアップデートされるように EFI System Partition は {{ic|/boot}} にマウントすることを強く推奨します。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
自動インストールスクリプトを実行してブートローダを EFI System Partition にインストールしてください ({{ic|$esp}} は EFI System Partiton の場所に置き換えて下さい、通常は {{ic|/boot}} です):&lt;br /&gt;
&lt;br /&gt;
 # bootctl --path=&#039;&#039;$esp&#039;&#039; install&lt;br /&gt;
&lt;br /&gt;
Bootctl はファームウェアによって自動で検出され、{{ic|bootx64.efi}} ブータブルスタブが {{ic|$esp/EFI/boot}} にあることを必要とします。そして {{ic|.efi}} スタブを使ってインストールされている別のオペレーティングシステムを自動で検出します。ただし、bootctl の設定ファイルは手動で作成する必要があります。&lt;br /&gt;
&lt;br /&gt;
まず、{{ic|&#039;&#039;$esp&#039;&#039;/loader/entries/arch.conf}} を作成して以下を記述します、{{ic|/dev/sdaX}} は &#039;&#039;root&#039;&#039; パーティションに置き換えて下さい (例: {{ic|/dev/sda2}}):&lt;br /&gt;
{{hc|# nano &#039;&#039;$esp&#039;&#039;/loader/entries/arch.conf|2=&lt;br /&gt;
title          Arch Linux&lt;br /&gt;
linux          /vmlinuz-linux&lt;br /&gt;
initrd         /initramfs-linux.img&lt;br /&gt;
options        root=&#039;&#039;&#039;/dev/sdaX&#039;&#039;&#039; rw&lt;br /&gt;
}}&lt;br /&gt;
次に、{{ic|&#039;&#039;$esp&#039;&#039;/loader/loader.conf}} を作成して以下を記述します、timeout の値は自由に変更できます (秒数):&lt;br /&gt;
{{hc|# nano &#039;&#039;$esp&#039;&#039;/loader/loader.conf|2=&lt;br /&gt;
default  arch&lt;br /&gt;
timeout  5&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
詳しい情報は [[systemd-boot]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
== パーティションのアンマウントと再起動 ==&lt;br /&gt;
&lt;br /&gt;
chroot 環境を脱出します:&lt;br /&gt;
&lt;br /&gt;
 # exit&lt;br /&gt;
&lt;br /&gt;
{{Note|パーティションは &#039;&#039;systemd&#039;&#039; によってシャットダウン時に自動的にアンマウントされますが、安全対策として {{ic|umount -R /mnt}} を使って手動でアンマウントすることもできます。パーティションがビジー状態の場合、[[Wikipedia:fuser_(Unix)|fuser]] で原因を特定できます。}}&lt;br /&gt;
&lt;br /&gt;
コンピュータを再起動:&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
{{Tip|インストールメディアを取り出してください、そうしないともう一度セットアップが起動してしまいます。マシンにログインするときはユーザー &amp;quot;root&amp;quot; と前に passwd コマンドで設定したパスワードを使います。デフォルトのパスワードは &amp;quot;root&amp;quot; です。}}&lt;br /&gt;
&lt;br /&gt;
== インストールのその先 ==&lt;br /&gt;
&lt;br /&gt;
あなたの新しい Arch Linux ベースシステムは今、あなたの目的や希望のために必要な全てを入れる準備ができた GNU/Linux になっています。ここからは[[一般的な推奨事項]]のページを見ることを推奨します。特に最初の2つのセクションは必読です。また、他のセクションには、グラフィカルユーザーインターフェイス (GUI) やサウンド、タッチパッドの設定などのチュートリアルが書かれたページヘのリンクが載っています。&lt;br /&gt;
&lt;br /&gt;
あなたの興味を引くであろうアプリケーションの一覧は、[[アプリケーション一覧]]を参照。&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%83%93%E3%82%AE%E3%83%8A%E3%83%BC%E3%82%BA%E3%82%AC%E3%82%A4%E3%83%89&amp;diff=4575</id>
		<title>ビギナーズガイド</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%83%93%E3%82%AE%E3%83%8A%E3%83%BC%E3%82%BA%E3%82%AC%E3%82%A4%E3%83%89&amp;diff=4575"/>
		<updated>2015-12-28T21:13:41Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: /* パーティションスキーム */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Arch の入手とインストール]]&lt;br /&gt;
[[Category:Arch について]]&lt;br /&gt;
[[ar:Beginners&#039; guide]]&lt;br /&gt;
[[bg:Beginners&#039; guide]]&lt;br /&gt;
[[cs:Beginners&#039; guide]]&lt;br /&gt;
[[da:Beginners&#039; guide]]&lt;br /&gt;
[[de:Anleitung für Einsteiger]]&lt;br /&gt;
[[el:Beginners&#039; guide]]&lt;br /&gt;
[[en:Beginners&#039; guide]]&lt;br /&gt;
[[es:Beginners&#039; guide]]&lt;br /&gt;
[[fa:راهنمای_تازه‌کاران]]&lt;br /&gt;
[[fr:Installation]]&lt;br /&gt;
[[he:Beginners&#039; guide]]&lt;br /&gt;
[[hr:Beginners&#039; guide]]&lt;br /&gt;
[[hu:Beginners&#039; guide]]&lt;br /&gt;
[[id:Beginners&#039; guide]]&lt;br /&gt;
[[it:Beginners&#039; guide]]&lt;br /&gt;
[[ko:Beginners&#039; guide]]&lt;br /&gt;
[[lt:Beginners&#039; guide]]&lt;br /&gt;
[[nl:Beginners&#039; guide]]&lt;br /&gt;
[[pl:Beginners&#039; guide]]&lt;br /&gt;
[[pt:Beginners&#039; guide]]&lt;br /&gt;
[[ro:Ghidul începătorilor]]&lt;br /&gt;
[[ru:Beginners&#039; guide]]&lt;br /&gt;
[[sk:Beginners&#039; guide]]&lt;br /&gt;
[[sr:Beginners&#039; guide]]&lt;br /&gt;
[[sv:Nybörjarguiden]]&lt;br /&gt;
[[tr:Yeni başlayanlar rehberi]]&lt;br /&gt;
[[uk:Beginners&#039; guide]]&lt;br /&gt;
[[zh-cn:Beginners&#039; guide]]&lt;br /&gt;
[[zh-tw:Beginners&#039; guide]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|:カテゴリ:アクセシビリティ}}&lt;br /&gt;
{{Related|インストールガイド}}&lt;br /&gt;
{{Related|ディスクレスシステム}}&lt;br /&gt;
{{Related|SSH からインストール}}&lt;br /&gt;
{{Related|一般的な推奨事項}}&lt;br /&gt;
{{Related|一般的なトラブルシューティング}}&lt;br /&gt;
{{Related|ブートデバッグ}}&lt;br /&gt;
{{Related|pacman#トラブルシューティング}}&lt;br /&gt;
{{Related|pacman-key#トラブルシューティング}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&amp;lt;!-- Include the different sub pages --&amp;gt;&lt;br /&gt;
この文章では [https://projects.archlinux.org/arch-install-scripts.git/ Arch Install Scripts] を使って [[Arch Linux]] をインストールする方法を解説します。インストールする前に、[[FAQ]] を一読することをおすすめします。&lt;br /&gt;
&lt;br /&gt;
コミュニティによって管理されている [[メインページ|ArchWiki]] は有用な資料であり、問題が発生したらまず wiki を読んでみましょう。wiki で答えが見つからないときは、[https://archlinuxjp-slack.herokuapp.com/ Slack] や [https://bbs.archlinuxjp.org/ フォーラム] を使って下さい。また、[[The Arch Way|Arch Way]] に従って、知らないコマンドの {{ic|man}} ページを見るようにしましょう。{{ic|man &#039;&#039;コマンド&#039;&#039;}} で見ることができます。&lt;br /&gt;
&lt;br /&gt;
== 動作環境 ==&lt;br /&gt;
&lt;br /&gt;
Arch Linux は i686 互換の、最低 256MB の RAM を積んだマシンで動作します。また、基本的なインストールに必要な {{Grp|base}} グループに含まれる全てのパッケージをインストールするには約 800MB のディスク容量が必要です。使える容量が少ない場合、この数値をかなり切り詰めることが可能ですが、どうやるかは調べる必要があります。&lt;br /&gt;
&lt;br /&gt;
== 最新のインストールメディアを準備する ==&lt;br /&gt;
&lt;br /&gt;
Arch の公式インストールメディアは[https://www.archlinuxjp.org/download/ ダウンロードページ]から入手できます。ひとつの ISO で32ビットと64ビット両方のアーキテクチャをサポートしています。出来るだけ一番新しい ISO を使って下さい。&lt;br /&gt;
&lt;br /&gt;
インストールイメージには署名がされており、使用する前に署名を検証するのが推奨されています (特に HTTP ミラーからダウンロードした場合)。[[GnuPG]] をインストールした環境で、ダウンロードした &#039;&#039;PGP 署名&#039;&#039;を ISO のディレクトリに配置して、次を実行してください:&lt;br /&gt;
 $ gpg --verify archlinux-&amp;lt;version&amp;gt;-dual.iso.sig&lt;br /&gt;
公開鍵が見つからない場合、{{ic|gpg --recv-keys &#039;&#039;key-id&#039;&#039;}} で[[GnuPG#鍵のインポート|インポート]]できます [http://sparewotw.wordpress.com/2012/10/31/how-to-verify-signature-using-sig-file/]。もしくは、既存の Arch Linux 環境から次を実行:&lt;br /&gt;
 $ pacman-key -v archlinux-&amp;lt;version&amp;gt;-dual.iso.sig&lt;br /&gt;
{{ic|md5}} と {{ic|sha1}} チェックサムはそれぞれ &#039;&#039;md5sum&#039;&#039; と &#039;&#039;sha256sum&#039;&#039; でチェックできます。&lt;br /&gt;
&lt;br /&gt;
=== USB と光学ドライブ ===&lt;br /&gt;
&lt;br /&gt;
[[光学ディスクドライブ#焼き込み]] (CD/DVD) や [[USB インストールメディア]] (USB) を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== ネットワーク経由でのインストール ===&lt;br /&gt;
&lt;br /&gt;
[[PXE]] の記事を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== 既存の Linux 環境からインストール ===&lt;br /&gt;
&lt;br /&gt;
[[既存の Linux からインストール]]を見て下さい。[[VNC]] や [[SSH]] を使って Arch をリモートでインストールするときに特に便利です。[[SSH からインストール]]も参照。&lt;br /&gt;
&lt;br /&gt;
=== 仮想マシンへのインストール ===&lt;br /&gt;
&lt;br /&gt;
現在使用しているオペレーティングシステムを残したまま、[[Wikipedia:ja:仮想機械|仮想マシン]]上でインストール手順を実行することで、ストレージのパーティションを行う必要なく Arch Linux に慣れることができます。また、ブラウザでこのビギナーズガイドを開いたままインストールが可能です。独立した Arch Linux システムを使用できるということは、テストを行いたいという一部のユーザーにとって有益なことでしょう。&lt;br /&gt;
&lt;br /&gt;
仮想化ソフトウェアの例としては、[[VirtualBox]], [[VMware]], [[QEMU]], [[Xen]], [[Parallels]] があります。&lt;br /&gt;
&lt;br /&gt;
仮想マシンを準備するための正確な手順は、ソフトウェアによって異なりますが、一般的に次の手順に従います:&lt;br /&gt;
&lt;br /&gt;
# オペレーティングシステムのホストにて、仮想ディスクイメージを作成します。 &lt;br /&gt;
# 仮想マシンの設定を最適化します。 &lt;br /&gt;
# 仮想 CD ドライブでダウンロードした ISO イメージを起動します。  &lt;br /&gt;
# [[#インストールメディアの起動|インストールメディアの起動]]に進みます。&lt;br /&gt;
&lt;br /&gt;
== インストールメディアの起動 ==&lt;br /&gt;
&lt;br /&gt;
最初に、あなたのコンピュータの BIOS セットアップで起動順序を変更する必要があるかもしれません。それには、POST ([[Wikipedia:ja:Power On Self Test|Power On Self-Test]]) の間にキー (多くの場合 {{ic|Delete}}、{{ic|F1}}、{{ic|F2}}、{{ic|F11}} や {{ic|F12}}) を押します。これで BIOS の設定画面が表示されるので、ここでシステムが起動するデバイスを探す順番を設定できます。&amp;quot;Save &amp;amp; Exit&amp;quot; (もしくはそれに準ずるもの) を選択すればコンピュータは通常通り起動するはずです。&lt;br /&gt;
&lt;br /&gt;
Arch のメニューが表示されたら、インストールを行うライブ環境を開始するために &amp;quot;Boot Arch Linux&amp;quot; をメニューから選択し、{{ic|Enter}} キーを押します (UEFI ブートディスクから起動した場合は、次のオプションを選択: &amp;quot;Arch Linux archiso x86_64 UEFI&amp;quot;)。ブートエントリを編集することで様々なブートパラメータ ({{ic|copytoram}} など) を使うことができます。Syslinux では {{ic|tab}} を押し、systemd-boot では {{ic|e}} を押します。詳しくは [https://projects.archlinux.org/archiso.git/tree/docs/README.bootparams README.bootparams] を参照。&lt;br /&gt;
&lt;br /&gt;
起動するとシェルプロンプトが表示され、root として自動的にログインが行われます。シェルは [[Zsh]] です。高度な [http://zsh.sourceforge.net/Guide/zshguide06.html タブ補完] など、[http://grml.org/zsh/ grml の設定] の機能が使用できます。テキストファイルを編集する時は、コンソールエディタの [[nano]] を使うことが推奨されています。使い方をよく知らない場合は、[[nano#nano の使用方法]] を見て下さい。Windows とのデュアルブートをする（もしくはそうすることを計画している）場合、[[Windows と Arch のデュアルブート]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== UEFI モードでブートしているかどうかのテスト ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|将来を考えると EFI モードでインストールを行ったほうが望ましいのですが、初期の UEFI の実装には BIOS よりも大量のバグが存在しています。UEFI モードを使用する前にあなたの使用しているマザーボードのモデルについて検索をすることが推奨されます。}}&lt;br /&gt;
&lt;br /&gt;
[[Unified Extensible Firmware Interface|UEFI]] マザーボードを使用していて、UEFI ブートモードが有効になっている (そしてそれが BIOS/Legacy モードよりも優先されている) 場合、CD/USB のインストールメディアは自動で [[systemd-boot]] を使って Arch Linux カーネルを起動します。そして以下のメニューが表示されます (黒地に白字)、最初のアイテムがハイライトされます:&lt;br /&gt;
{{bc|&lt;br /&gt;
Arch Linux archiso x86_64 UEFI USB&lt;br /&gt;
UEFI Shell x86_64 v1&lt;br /&gt;
UEFI Shell x86_64 v2&lt;br /&gt;
EFI Default Loader}}&lt;br /&gt;
&lt;br /&gt;
UEFI モードで起動しているのか確認したい場合は、次を実行:&lt;br /&gt;
&lt;br /&gt;
 # efivar -l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;efivar&#039;&#039; が UEFI 変数を正しく表示したら、UEFI モードで起動されています。表示されない場合は [[Unified Extensible Firmware Interface#UEFI 変数のサポートを正しく動作させるための必要条件]] に記載されている全ての要件が満たされているか確認してください。&lt;br /&gt;
&lt;br /&gt;
=== 起動時の問題のトラブルシューティング ===&lt;br /&gt;
&lt;br /&gt;
* Intel のビデオチップセットを使用していて、ブート中にブランクスクリーン (画面が黒くなる) になった場合、おそらく Kernel Mode Setting ([[Kernel Mode Setting|KMS]]) に問題があります。回避策は、パソコンを再起動し、起動しようとしている項目 (i686 または x86_64) の上で、{{ic|Tab}} キーを押します。末尾に {{ic|nomodeset}} を追加し、{{ic|Enter}} キーを押します。または {{ic|1=video=SVIDEO-1:d}} (KMS は無効にされません) を設定します。もしくは、{{ic|i915.modeset&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;0}} を試して下さい。詳細は [[Intel Graphics|Intel]] ページを参照してください。&lt;br /&gt;
&lt;br /&gt;
* ブランクスクリーンに&#039;&#039;ならず&#039;&#039;、カーネルのロード中に固まる場合は、{{ic|Tab}} キーをメニューの項目上で押し、末尾に {{ic|1=acpi=off}} を追加し、{{ic|Enter}} キーを押します。&lt;br /&gt;
&lt;br /&gt;
== 言語の選択 ==&lt;br /&gt;
&lt;br /&gt;
{{Tip|以下の設定は必須ではありません。設定ファイルをあなたの使う言語で書いたり、Wi-Fi パスワードで区別的発音符を使ったり、もしくはあなたの言語でシステムメッセージ(例えばエラー)を見たいときだけに役に立ちます。ここでの変更はインストールプロセスに&#039;&#039;だけ&#039;&#039;適用されます。}}&lt;br /&gt;
&lt;br /&gt;
標準で、キーボードのレイアウトは {{ic|us}} に設定されています。もし、[[Wikipedia:File:KB United States-NoAltGr.svg|US]] キーボード以外のレイアウトを使用している場合は、&lt;br /&gt;
&lt;br /&gt;
 # loadkeys &#039;&#039;レイアウト名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
で変更できます。&#039;&#039;レイアウト名&#039;&#039;の部分は {{ic|jp106}}、{{ic|fr}}、{{ic|uk}}、{{ic|be-latin1}} などに置き換えます。[[コンソールでのキーボード設定#キーボードレイアウトの設定|ここ]]から一般的なレイアウトのリストを見ることができます。利用可能なキーマップを表示するには {{ic|localectl list-keymaps}} コマンドを使って下さい。&lt;br /&gt;
&lt;br /&gt;
{{Warning|以下はフォントと言語の設定ですが、この段階では、日本語を表示することはできません。}}&lt;br /&gt;
&lt;br /&gt;
フォントも変える必要があるかもしれません。ほとんどの言語は[[Wikipedia:ja:アルファベット|アルファベット]]の26字よりも多くの文字を使っているからです。さもなければ文字が□（豆腐）になったり全く異なって表示されることがあります。フォントの名前は大文字・小文字を区別するので、&#039;&#039;正確に&#039;&#039;入力してください:&lt;br /&gt;
&lt;br /&gt;
 # setfont lat9w-16&lt;br /&gt;
&lt;br /&gt;
標準では、言語は英語 (US) に設定されています。インストール中の言語を変更したい場合 &#039;&#039;(例: 日本語)&#039;&#039;、{{ic|/etc/locale.gen}} 内のあなたの設定したい[[ロケール]]の行と、英語 (US) の行から行頭の {{ic|#}} を削除します。{{ic|UTF-8}} を選択してください。&lt;br /&gt;
&lt;br /&gt;
シンプルな Nano エディタで編集するには、{{ic|nano /etc/locale.gen}} と入力してください。{{ic|Ctrl+X}} で終了し、変更を保存するか聞かれたら {{ic|Y}} と、 {{ic|Enter}} を押せば同じファイル名で上書き保存します。&lt;br /&gt;
&lt;br /&gt;
{{hc|# nano /etc/locale.gen|&lt;br /&gt;
en_US.UTF-8 UTF-8&lt;br /&gt;
ja_JP.UTF-8 UTF-8}}&lt;br /&gt;
&lt;br /&gt;
 # locale-gen&lt;br /&gt;
 # export LANG=ja_JP.UTF-8&lt;br /&gt;
&lt;br /&gt;
== インターネット接続の確立 ==&lt;br /&gt;
&lt;br /&gt;
{{Warning|[http://cgit.freedesktop.org/systemd/systemd/tree/NEWS?id&amp;amp;#61;dee4c244254bb49d1ffa8bd7171ae9cce596d2d0 v197] 以降、udev はネットワークインターフェースの名前を wlanX や ethX といった風に名づけません。あなたが他のディストリビューションを使っているなどの理由で、新しい命名規則を知らないのならば、あなたの無線インターフェースの名前が wlan0 だとか、有線インターフェースの名前が eth0 ではない可能性があることを予め覚えておいて下さい。{{ic|ip link}} コマンドでインターフェースの名前を調べることができます。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|dhcpcd}} ネットワークデーモンはブート時に自動で起動して、可能であれば有線での接続を試みます。接続できているかウェブサイトに ping をして確かめて下さい。例えば Google のサーバーに ping します:&lt;br /&gt;
&lt;br /&gt;
{{hc|# ping -c 3 www.google.com|2=&lt;br /&gt;
PING www.l.google.com (74.125.132.105) 56(84) bytes of data.&lt;br /&gt;
64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=1 ttl=50 time=17.0 ms&lt;br /&gt;
64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=2 ttl=50 time=18.2 ms&lt;br /&gt;
64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=3 ttl=50 time=16.6 ms&lt;br /&gt;
&lt;br /&gt;
--- www.l.google.com ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2003ms&lt;br /&gt;
rtt min/avg/max/mdev = 16.660/17.320/18.254/0.678 ms}}&lt;br /&gt;
&lt;br /&gt;
{{ic|ping: unknown host}} のエラーが出た場合は下に記述されている方法を試して手動で接続をセットアップする必要があります。ネットワークへの接続が問題ないようでしたら、[[#ドライブの準備|ドライブの準備]]へ進んでください。&lt;br /&gt;
&lt;br /&gt;
=== 有線 ===&lt;br /&gt;
&lt;br /&gt;
固定 IP アドレスを使用して有線の接続をセットアップする場合は次の手順に従ってください。&lt;br /&gt;
&lt;br /&gt;
あなたのイーサネットインターフェースの名前を確かめて下さい:&lt;br /&gt;
&lt;br /&gt;
{{hc|# ip link|&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT &lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
2: enp2s0f0: &amp;lt;BROADCAST,MULTICAST&amp;gt; mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000&lt;br /&gt;
    link/ether 00:11:25:31:69:20 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
3: wlp3s0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state UP mode DORMANT qlen 1000&lt;br /&gt;
    link/ether 01:02:03:04:05:06 brd ff:ff:ff:ff:ff:ff}}&lt;br /&gt;
&lt;br /&gt;
上記の例の場合、イーサネットインターフェースは {{ic|enp2s0f0}} です。よくわからない場合、あなたのイーサネットインターフェースはおそらく &amp;quot;e&amp;quot; から始まっているインターフェイスです。&amp;quot;w&amp;quot; で始まっているものや &amp;quot;lo&amp;quot; ではないということです。&lt;br /&gt;
&lt;br /&gt;
[[ネットワーク設定#固定 IP アドレス]]を見て必要な設定を確認してください。{{ic|/etc/dhcpcd.conf}} に以下のような設定を使って、dhcpcd の static プロファイルを設定します:&lt;br /&gt;
&lt;br /&gt;
 interface enp2s0f0&lt;br /&gt;
 static ip_address=192.168.0.10/24&lt;br /&gt;
 static routers=192.168.0.1&lt;br /&gt;
 static domain_name_servers=192.168.0.1 8.8.8.8&lt;br /&gt;
&lt;br /&gt;
{{ic|dhcpcd.service}} を再起動してください:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart dhcpcd.service&lt;br /&gt;
&lt;br /&gt;
これでネットワークに接続されるはずです。されない場合は、[[ネットワーク設定]]のページを見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== 無線 ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|(CD・USB スティックの) ライブ環境では、(ワイヤレスカードを使うのに必要な) ワイヤレスチップセットのファームウェアのパッケージは {{ic|/usr/lib/firmware}} の下にあらかじめインストールされていますが、再起動後にも無線を使うには、ユーザーがちゃんとパッケージをインストールする必要があります。パッケージのインストールはこのガイドの後ろで触れています。再起動する前にワイヤレスモジュール・ファームウェアを必ずインストールしてください。もし、あなたのチップセットがファームウェアのインストールを必要としているか不明な場合は[[ワイヤレス設定]]を見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
[[netctl]] の {{ic|wifi-menu}} を使いネットワークに接続します:&lt;br /&gt;
&lt;br /&gt;
 # wifi-menu&lt;br /&gt;
&lt;br /&gt;
コンピュータに接続されている Wi-Fi デバイスが一つしかない (ノートパソコンなど) 場合は wifi ネットワークのメニューが表示されます。&lt;br /&gt;
&lt;br /&gt;
コンピュータに複数の Wi-Fi デバイスが存在するときは、そのどれか一つを選択して &#039;&#039;wifi-menu&#039;&#039; にインターフェイスの名前を指定する必要があります。まず、インターフェイスの名前を確かめて下さい:&lt;br /&gt;
&lt;br /&gt;
{{hc|# iw dev|2=&lt;br /&gt;
phy#0&lt;br /&gt;
        Interface wlp3s0&lt;br /&gt;
                ifindex 3&lt;br /&gt;
                wdev 0x1&lt;br /&gt;
                addr 00:11:22:33:44:55&lt;br /&gt;
                type managed&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
上の例では、{{ic|wlp3s0}} が有効なワイヤレスインターフェースです。どれかわからないときは、おそらく &amp;quot;w&amp;quot; から始まるのがあなたのワイヤレスインターフェースです。&amp;quot;lo&amp;quot; や &amp;quot;e&amp;quot; から始まるインターフェースは違います。&lt;br /&gt;
&lt;br /&gt;
インターフェイスの名前がわかったら、インターフェイスの名前を指定して &#039;&#039;wifi-menu&#039;&#039; を起動します:&lt;br /&gt;
&lt;br /&gt;
 # wifi-menu wlp3s0&lt;br /&gt;
&lt;br /&gt;
ユーザー名やパスワードの設定を必要とするネットワークを使う場合は [[WPA2 Enterprise#netctl]] にあるサンプル設定を見て下さい。&lt;br /&gt;
&lt;br /&gt;
これでネットワークは有効になるはずです。接続されないときは、下の [[#wifi-menu を使わない方法|wifi-menu を使わない方法]]や、詳しい説明が載っている[[ワイヤレス設定]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
==== wifi-menu を使わない方法 ====&lt;br /&gt;
&lt;br /&gt;
インターフェースを立ち上げます:&lt;br /&gt;
&lt;br /&gt;
 # ip link set wlp3s0 up&lt;br /&gt;
&lt;br /&gt;
インターフェイスが立ち上がっているか確認するには、次のコマンドの出力を見て下さい:&lt;br /&gt;
&lt;br /&gt;
{{hc|# ip link show wlp3s0|&lt;br /&gt;
3: wlp3s0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000&lt;br /&gt;
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|&amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt;}} の中にある {{ic|UP}} がインターフェイスが立ち上がっている印です。後ろの {{ic|state DOWN}} は違います。&lt;br /&gt;
&lt;br /&gt;
ほとんどのワイヤレスチップセットには、対応するドライバに加えて、ファームウェアが必要です。カーネルが自動で検知してロードを試みます。{{ic|SIOCSIFFLAGS: No such file or directory}} のようなエラーが出た場合、ファームウェアを手動でロードする必要があることを意味しています。必要なファームウェアがわからないときは、{{ic|dmesg}} を使いカーネルログからワイヤレスチップセットのファームウェア要求をさがします。例えば、カーネルの起動時に Intel チップセットが出力するファームウェア要求の例:&lt;br /&gt;
&lt;br /&gt;
{{hc|# dmesg &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep firmware|&lt;br /&gt;
firmware: requesting iwlwifi-5000-1.ucode}}&lt;br /&gt;
&lt;br /&gt;
なにも表示されないなら、あなたのワイヤレスチップセットにはファームウェアが要らないと判断できます。&lt;br /&gt;
&lt;br /&gt;
{{ic|iw dev wlp3s0 scan &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep SSID}} を使って利用可能なネットワークをスキャンして、それからネットワークに接続してください:&lt;br /&gt;
&lt;br /&gt;
 # wpa_supplicant -B -i wlp3s0 -c &amp;lt;(wpa_passphrase &amp;quot;&#039;&#039;ssid&#039;&#039;&amp;quot; &amp;quot;&#039;&#039;psk&#039;&#039;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;ssid&#039;&#039; はネットワークの名前に (例: &amp;quot;Linksys etc...&amp;quot;)、&#039;&#039;psk&#039;&#039; はパスワードに置き換える必要があります (ネットワークの名前とパスワードを囲っているダブルクォートは消さないで下さい, 例: ネットワークのパスワードが dog の場合、&amp;quot;dog&amp;quot; と入力)。&lt;br /&gt;
&lt;br /&gt;
最後に、インターフェースに IP アドレスを与える必要があります。手動で設定するか dhcp を使ってこれを行なって下さい:&lt;br /&gt;
 # dhcpcd wlp3s0&lt;br /&gt;
&lt;br /&gt;
上のコマンドでうまくいかない場合、以下のコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
 # echo &#039;ctrl_interface=DIR=/run/wpa_supplicant&#039; &amp;gt; /etc/wpa_supplicant.conf&lt;br /&gt;
 # wpa_passphrase &amp;lt;ssid&amp;gt; &amp;lt;passphrase&amp;gt; &amp;gt;&amp;gt; /etc/wpa_supplicant.conf&lt;br /&gt;
 # ip link set &amp;lt;interface&amp;gt; up # May not be needed, but does no harm in any case&lt;br /&gt;
 # wpa_supplicant -B -D nl80211 -c /etc/wpa_supplicant.conf -i &amp;lt;interface name&amp;gt;&lt;br /&gt;
 # dhcpcd -A &amp;lt;interface name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== アナログモデム, ISDN, PPPoE DSL ===&lt;br /&gt;
&lt;br /&gt;
xDSL・ダイアルアップ・ISDN接続については、[[モデムに直接接続]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== プロキシサーバを使う ===&lt;br /&gt;
&lt;br /&gt;
プロキシサーバを使うには、{{ic|http_proxy}}, {{ic|ftp_proxy}} 環境変数を設定しなくてはなりません。詳しい情報は[[プロキシ設定]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
== 時計を合わせる ==&lt;br /&gt;
&lt;br /&gt;
[[systemd-timesyncd]] を使ってシステムクロックを正確な時刻に合わせて下さい。起動するには:&lt;br /&gt;
 # timedatectl set-ntp true&lt;br /&gt;
&lt;br /&gt;
サービスの状態を確認したいときは {{ic|timedatectl status}} を使って下さい。&lt;br /&gt;
&lt;br /&gt;
詳しくは、[[時刻]]を参照。&lt;br /&gt;
&lt;br /&gt;
== ドライブの準備 ==&lt;br /&gt;
&lt;br /&gt;
{{Warning|&lt;br /&gt;
* パーティショニングを行うと既存のデータが消去されます。実施する前に、必要なデータはバックアップしてください。&lt;br /&gt;
* UEFI/GPT 環境でインストールした Windows とデュアルブートしたい場合、Windows を起動するのに必要な Windows の &#039;&#039;.efi&#039;&#039; ファイルが含まれている UEFI パーティションを再フォーマットしてはいけません。さらに、Arch のブートモードとパーティションの組み合わせを Windows と同一に設定する必要があります。[[Windows と Arch のデュアルブート#重要情報]]を参照。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
このステップでは、新しいシステムをインストールするためにストレージデバイスの準備を行います。詳しい情報は[[パーティショニング]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
[[LVM]], [[ディスク暗号化]], [[RAID]] などのスタックブロックデバイスを作成したい場合は、この段階で行います。USB フラッシュキーにインストールする場合は、[[USB キーに Arch Linux をインストール]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== デバイスの確認 ===&lt;br /&gt;
&lt;br /&gt;
まず新しいシステムをインストールするデバイスを確認します。次のコマンドを実行すると全てのデバイスが表示されます:&lt;br /&gt;
&lt;br /&gt;
 # lsblk&lt;br /&gt;
&lt;br /&gt;
このコマンドはシステムに接続されたデバイスとパーティションを表示しますが、Arch インストールメディアを起動するのに使われているデバイスも含まれています。したがって、どのデバイスでもインストールが行えるというわけではありません。不必要なデバイスを表示しないようにするには、以下のようにコマンドを実行します:&lt;br /&gt;
&lt;br /&gt;
 # lsblk | grep -v &amp;quot;rom\|loop\|airoot&amp;quot;&lt;br /&gt;
&lt;br /&gt;
デバイス (ハードディスク) は {{ic|sd&#039;&#039;x&#039;&#039;}} と示されます。{{ic|&#039;&#039;x&#039;&#039;}} は {{ic|a}} から始まる小文字のアルファベットで、一番目のデバイスは {{ic|sda}}、二番目のデバイスは {{ic|sdb}} と割り当てられます。既存のパーティションは {{ic|sd&#039;&#039;xY&#039;&#039;}} と示され、{{ic|&#039;&#039;Y&#039;&#039;}} は {{ic|1}} から始まる数字です。一番目のパーティションは {{ic|1}}、二番目のパーティションは {{ic|2}} と続きます。下の例では、一つのデバイスが存在し ({{ic|sda}})、一つのパーティションが使われています ({{ic|sda1}}):&lt;br /&gt;
&lt;br /&gt;
 NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 sda               8:0    0    80G  0 disk&lt;br /&gt;
 └─sda1            8:1    0    80G  0 part&lt;br /&gt;
&lt;br /&gt;
パーティションテーブル、パーティション、ファイルシステムでは {{ic|sd&#039;&#039;xY&#039;&#039;}} という名前を例として使います。あくまでこの名前は例なので、実際にコマンドを実行したりするときは、デバイスの名前とパーティションの番号を変える必要があります。コマンドをコピーしてそのまま貼り付けても動作しません。&lt;br /&gt;
&lt;br /&gt;
パーティションをそのまま変更しない場合は、[[#ファイルシステムの作成|ファイルシステムの作成]]まで進んでください。パーティショニングを行う場合は、次のセクションを読んで下さい。&lt;br /&gt;
&lt;br /&gt;
=== パーティションテーブルのタイプの選択 ===&lt;br /&gt;
&lt;br /&gt;
既に何らかの OS がインストールされているところに Arch をインストールする場合、既存のパーティションテーブルを使用します。デバイスがパーティショニングされてなかったり、現在のパーティションテーブルを変更する必要があるときは、まず使用されているパーティションテーブルを確認しなくてはなりません。&lt;br /&gt;
&lt;br /&gt;
パーティションテーブルには2種類あります:&lt;br /&gt;
&lt;br /&gt;
* [[Master Boot Record|MBR]]&lt;br /&gt;
* [[GUID Partition Table|GPT]]&lt;br /&gt;
&lt;br /&gt;
既存のパーティションテーブルは、次のコマンドを実行することで確認できます:&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sd&#039;&#039;x&#039;&#039; print&lt;br /&gt;
&lt;br /&gt;
=== パーティショニングツール ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|使用しているパーティショニングテーブルと互換性がないパーティショニングツールを使ってしまうと、テーブルが破壊されて、既存のパーティションやデータが消えてしまいます。}}&lt;br /&gt;
&lt;br /&gt;
デバイスをパーティショニングするには、使用されるパーティションテーブルにあわせて適切なツールを選ぶ必要があります。Arch のインストールメディアには複数のパーティショニングツールが入っています:&lt;br /&gt;
&lt;br /&gt;
* [[parted]]: GPT と MBR&lt;br /&gt;
* [[パーティショニング#Fdisk の使い方|fdisk]], &#039;&#039;&#039;cfdisk&#039;&#039;&#039;, &#039;&#039;&#039;sfdisk&#039;&#039;&#039;: GPT と MBR&lt;br /&gt;
* [[パーティショニング#Gdisk の使い方|gdisk]], &#039;&#039;&#039;cgdisk&#039;&#039;&#039;, &#039;&#039;&#039;sgdisk&#039;&#039;&#039;: GPT&lt;br /&gt;
&lt;br /&gt;
Arch のインストールメディアを起動する前に、他のライブ環境に付属しているパーティションツールを使って、デバイスを予めパーティショニングしておくことも可能です。初心者にとっては [[GParted]] などのグラフィカルなパーティショニングツールが使いやすいでしょう。GParted には [http://gparted.sourceforge.net/livecd.php ライブ CD] が存在し、MBR と GPT の両方のパーティションテーブルで動作します。&lt;br /&gt;
&lt;br /&gt;
==== インタラクティブモードの parted を使用する ====&lt;br /&gt;
&lt;br /&gt;
以下で示す例では BIOS/MBR と UEFI/GPT の両方で用いることができる &#039;&#039;parted&#039;&#039; を使っています。&#039;&#039;parted&#039;&#039; は&#039;&#039;インタラクティブモード&#039;&#039;で起動して、指定したデバイスに全てのパーティショニングコマンドを自動的に適用することで、不必要な繰り返しを避けます。&lt;br /&gt;
&lt;br /&gt;
デバイスの操作を開始するには、次を実行:&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sd&#039;&#039;x&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
コマンドラインプロンプトがハッシュ ({{ic|#}}) から {{ic|(parted)}} に変わります。&lt;br /&gt;
&lt;br /&gt;
利用できるコマンドのリストを表示するには、次を入力:&lt;br /&gt;
&lt;br /&gt;
 (parted) help&lt;br /&gt;
&lt;br /&gt;
パーティションの操作が完了した場合は、次のコマンドで parted を終了します:&lt;br /&gt;
&lt;br /&gt;
 (parted) quit&lt;br /&gt;
&lt;br /&gt;
終了後、コマンドラインプロンプトは {{ic|#}} に戻ります。&lt;br /&gt;
&lt;br /&gt;
=== 新しいパーティションテーブルの作成 ===&lt;br /&gt;
&lt;br /&gt;
パーティションテーブルのタイプを変更したい場合や、デバイスがまだパーティションされていない場合、パーティションテーブルの（再）作成が必要です。デバイスのパーティションテーブルの再作成はパーティションスキームを最初からやり直したい場合にも有用です。&lt;br /&gt;
&lt;br /&gt;
{{Warning|&lt;br /&gt;
* UEFI/GPT で Windows がインストールされている環境でデュアルブートをしたい場合は、パーティションテーブルを消去しないでください。パーティションテーブルを消去すると、Windows を起動するのに必要な &#039;&#039;.efi&#039;&#039; ファイルが入っている UEFI パーティションを含め、デバイス上の既存のデータが全て削除されます。&lt;br /&gt;
* MBR は BIOS 環境で使用するように作られており、GPT は UEFI と一緒に使われることが想定されています。ハードウェアと互換性がない機能や制限があるため、この組み合わせを使わないというのは初心者にはおすすめできません (例: MBR は 2 TiB 以上のデバイスを扱えません) [https://www.happyassassin.net/2014/01/25/uefi-boot-how-does-that-actually-work-then/]。何らかの理由でこの組み合わせを使いたくないという場合は、[http://mjg59.dreamwidth.org/8035.html] や [http://rodsbooks.com/gdisk/bios.html] に詳しい情報や対処方法が載っています。}}&lt;br /&gt;
&lt;br /&gt;
パーティションテーブルを（再）作成するデバイスを次のコマンドで開いてください:&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sd&#039;&#039;x&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
そして BIOS 環境の場合、MBR/msdos パーティションテーブルを新しく作成するために、次のコマンドを実行します:&lt;br /&gt;
&lt;br /&gt;
 (parted) mklabel msdos&lt;br /&gt;
&lt;br /&gt;
UEFI 環境で GPT パーティションテーブルを新しく作成するには、次のコマンドを使います:&lt;br /&gt;
&lt;br /&gt;
 (parted) mklabel gpt&lt;br /&gt;
&lt;br /&gt;
=== パーティションの分け方 ===&lt;br /&gt;
&lt;br /&gt;
ディスクをいくつのパーティションに分けるか決めて、それぞれのパーティションにシステム上のディレクトリを割り振ることができます。パーティションからディレクトリへのマッピング (しばしば &#039;マウントポイント&#039; と呼ばれます) が[[パーティショニング#パーティション形態|パーティションの分け方]]になります。パーティションスキームは以下の要件を満たさなければなりません:&lt;br /&gt;
&lt;br /&gt;
* 少なくとも {{ic|/}} (&#039;&#039;root&#039;&#039;) ディレクトリのパーティションは必ず作成する必要があります。&lt;br /&gt;
* マザーボードのファームウェアインターフェイスや、選択した[[#パーティションテーブルのタイプの選択|パーティションテーブルのタイプ]]によって、また、時には選択した[[ブートローダー]]にあわせて、以下のパーティションを追加で作成する必要が出てきます:&lt;br /&gt;
** &#039;&#039;&#039;BIOS/MBR&#039;&#039;&#039;: 追加のパーティションは必要ありません。&lt;br /&gt;
** &#039;&#039;&#039;BIOS/GPT&#039;&#039;&#039;:&lt;br /&gt;
*** [[Syslinux]] を使用する場合: 追加のパーティションは必要ありません。&lt;br /&gt;
*** [[GRUB]] を使用する場合: タイプが {{ic|EF02}} で容量が 1MiB または 2MiB の [[GRUB#GUID Partition Table (GPT) 特有の手順|BIOS Boot Partition]]。&lt;br /&gt;
** &#039;&#039;&#039;UEFI/GPT&#039;&#039;&#039;: [[Unified Extensible Firmware Interface#EFI System Partition|EFI System Partition]]。&lt;br /&gt;
** &#039;&#039;&#039;UEFI/MBR&#039;&#039;&#039;: [[Unified Extensible Firmware Interface#EFI System Partition|EFI System Partition]]。&lt;br /&gt;
&lt;br /&gt;
以下の例では、新しい、連続するパーティションスキームを1つのデバイスに適用します。任意の {{ic|/boot}} や {{ic|/home}} ディレクトリのパーティションも作成しています。それぞれのディレクトリの目的については [[Arch ファイルシステム階層]]を見て下さい。{{ic|/boot}} や {{ic|/home}} などのディレクトリのパーティションを別に作成しない場合、{{ic|/}} パーティションに含まれることになります。また、[[スワップ|スワップ領域]]用のパーティションについても説明します。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;parted&#039;&#039; のインタラクティブセッションをまだ開いてない場合は、パーティションするデバイスを指定して起動してください:&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sd&#039;&#039;x&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
次のコマンドを使用してパーティションを作成します:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart &#039;&#039;part-type&#039;&#039; &#039;&#039;fs-type&#039;&#039; &#039;&#039;start&#039;&#039; &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* {{ic|&#039;&#039;part-type&#039;&#039;}} は {{ic|primary}}, {{ic|extended}}, {{ic|logical}} のうちどれか一つから選びます。MBR パーティションテーブルでのみ意味があります。&lt;br /&gt;
* {{ic|&#039;&#039;fs-type&#039;&#039;}} は [http://www.gnu.org/software/parted/manual/parted.html#mkpart マニュアル] に記載されているサポートがあるファイルシステムの中から選びます。パーティションは[[#ファイルシステムの作成|ファイルシステム作成]]でフォーマットします。&lt;br /&gt;
* {{ic|&#039;&#039;start&#039;&#039;}} はデバイスの先頭からのパーティションの開始位置です。[http://www.gnu.org/software/parted/manual/parted.html#unit 単位] をつけた数値で指定し、例えば {{ic|1M}} なら 1MiB が開始位置になります。&lt;br /&gt;
* {{ic|&#039;&#039;end&#039;&#039;}} はデバイスの先頭からのパーティションの終末位置です ({{ic|&#039;&#039;start&#039;&#039;}} から計算するわけではありません)。{{ic|&#039;&#039;start&#039;&#039;}} と同じ構文を使うことができ、例えば {{ic|100%}} と指定するとデバイスの終端を意味します (残り領域全てを使う)。&lt;br /&gt;
&lt;br /&gt;
{{Warning|パーティションは重ならないように注意してください。デバイスに未使用のスペースを残さないようにするには、それぞれのパーティションが前のパーティションの終末から開始するようにしてください。}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&#039;&#039;parted&#039;&#039; は以下のような警告を表示することがあります:&lt;br /&gt;
&lt;br /&gt;
 Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
 Ignore/Cancel?&lt;br /&gt;
&lt;br /&gt;
この表示がでたときは、[[パーティショニング#パーティションアライメント]]を見て [[GNU Parted#アライメント]] にしたがって修正してください。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|/boot}} ディレクトリを含むパーティションが起動できるようにフラグを立てるには次のコマンドを使います:&lt;br /&gt;
&lt;br /&gt;
 (parted) set &#039;&#039;partition&#039;&#039; boot on&lt;br /&gt;
&lt;br /&gt;
* {{ic|&#039;&#039;partition&#039;&#039;}} はフラグを立てるパーティションの番号に置き換えて下さい ({{ic|print}} コマンドの出力を参照しましょう)。&lt;br /&gt;
&lt;br /&gt;
==== UEFI/GPT の例 ====&lt;br /&gt;
&lt;br /&gt;
どんなふうにパーティショニングするにせよ、特別な [[Unified Extensible Firmware Interface#EFI System Partition|EFI System Partition]] が必要になります。&lt;br /&gt;
&lt;br /&gt;
{{Warning|UEFI/GPT で Windows がインストールされている環境でデュアルブートをしたい場合は、既存の UEFI パーティションを消去しないでください。このパーティションを消去すると、Windows を起動するのに必要な &#039;&#039;.efi&#039;&#039; ファイルが削除されてしまいます。}}&lt;br /&gt;
&lt;br /&gt;
新しく EFI System Partition を作成する場合は、以下のコマンドを使って下さい (推奨される容量は 512MiB です):&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart ESP fat32 1MiB 513MiB&lt;br /&gt;
 (parted) set 1 boot on&lt;br /&gt;
&lt;br /&gt;
あとのパーティションスキームはあなたが自由に決めて下さい。残りのスペースを全て使用する単一のパーティションを作るには:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 513MiB 100%&lt;br /&gt;
&lt;br /&gt;
{{ic|/}} (20GiB) と {{ic|/home}} (残り容量全てを使用) パーティションを作るには:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 513MiB 20.5GiB&lt;br /&gt;
 (parted) mkpart primary ext4 20.5GiB 100%&lt;br /&gt;
&lt;br /&gt;
{{ic|/}} (20GiB), スワップ (4GiB), {{ic|/home}} (残り容量全てを使用) パーティションを作成するには:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 513MiB 20.5GiB&lt;br /&gt;
 (parted) mkpart primary linux-swap 20.5GiB 24.5GiB&lt;br /&gt;
 (parted) mkpart primary ext4 24.5GiB 100%&lt;br /&gt;
&lt;br /&gt;
==== BIOS/MBR の例 ====&lt;br /&gt;
&lt;br /&gt;
ディスク容量を全て使用する単一のプライマリパーティションを作成するには、以下のコマンドを使用します:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 1MiB 100%&lt;br /&gt;
 (parted) set 1 boot on&lt;br /&gt;
&lt;br /&gt;
以下の例では、20GiB の {{ic|/}} パーティションを作成してから、残り容量を全て使用する {{ic|/home}} パーティションを作成します:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 1MiB 20GiB&lt;br /&gt;
 (parted) set 1 boot on&lt;br /&gt;
 (parted) mkpart primary ext4 20GiB 100%&lt;br /&gt;
&lt;br /&gt;
以下の例では {{ic|/boot}} (100MiB), {{ic|/}} (20GiB), スワップ (4GiB), {{ic|/home}} (残り容量全てを使用) パーティションを作成します:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 1MiB 100MiB&lt;br /&gt;
 (parted) set 1 boot on&lt;br /&gt;
 (parted) mkpart primary ext4 100MiB 20GiB&lt;br /&gt;
 (parted) mkpart primary linux-swap 20GiB 24GiB&lt;br /&gt;
 (parted) mkpart primary ext4 24GiB 100%&lt;br /&gt;
&lt;br /&gt;
=== ファイルシステムの作成 ===&lt;br /&gt;
&lt;br /&gt;
パーティショニングはまだ終わっていません。パーティションには[[ファイルシステム]]が必要です（ただしスワップパーティションには要りません）。インストール先のデバイスに存在するパーティションを確認するには次のコマンドを使用:&lt;br /&gt;
&lt;br /&gt;
 # lsblk /dev/sd&#039;&#039;x&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
下に書かれている注意点を除いて、基本的には {{ic|ext4}} ファイルシステムを使うことを推奨します:&lt;br /&gt;
&lt;br /&gt;
 # mkfs.ext4 /dev/sd&#039;&#039;xY&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Warning|UEFI/GPT で Windows がインストールされている環境でデュアルブートをしたい場合は、UEFI パーティションをフォーマットしないでください。フォーマットしてしまうと、Windows を起動するのに必要な &#039;&#039;.efi&#039;&#039; ファイルが入っている UEFI パーティションのデータが全て削除されます。}}&lt;br /&gt;
&lt;br /&gt;
UEFI/GPT 環境で新しく UEFI システムパーティションを作成した場合は、UEFI パーティションを {{ic|fat32}} または {{ic|vfat32}} ファイルシステムでフォーマットしてください。これを行っておかないと起動できなくなります:&lt;br /&gt;
 # mkfs.vfat -F32 /dev/sd&#039;&#039;xY&#039;&#039;&lt;br /&gt;
{{Note|BIOS/GPT 環境で [[GRUB]] を使用する場合、[[GRUB#GUID Partition Table (GPT) 特有の手順|BIOS Boot Partition]] は {{ic|/boot}} マウントポイントと関係ないので注意してください。このパーティションは GRUB によって直接使用されます。BIOS Boot Partition にファイルシステムを作成したり、マウントしたりしてはいけません。}}&lt;br /&gt;
&lt;br /&gt;
=== スワップの有効化 ===&lt;br /&gt;
&lt;br /&gt;
スワップパーティションを作成した場合は、以下のコマンドで有効化する必要があります:&lt;br /&gt;
&lt;br /&gt;
 # mkswap /dev/sd&#039;&#039;xY&#039;&#039;&lt;br /&gt;
 # swapon /dev/sd&#039;&#039;xY&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== パーティションのマウント ===&lt;br /&gt;
&lt;br /&gt;
{{Note|ここではスワップパーティションをマウントしないでください。}}&lt;br /&gt;
&lt;br /&gt;
まず最初に {{ic|/}} (root) パーティションをマウントしてください。{{ic|/boot}} や {{ic|/home}} などのディレクトリは root ファイルシステムに作成する必要があるためです。ライブ環境の {{ic|/mnt}} ディレクトリを使用して root パーティションをマウントします。他のパーティションはそこをベースにします。root パーティションの名前が {{ic|sd&#039;&#039;xR&#039;&#039;}} なら、次のコマンドを実行:&lt;br /&gt;
&lt;br /&gt;
 # mount /dev/sd&#039;&#039;xR&#039;&#039; /mnt&lt;br /&gt;
&lt;br /&gt;
{{ic|/}} パーティションをマウントしたら、他のパーティションをマウントすることができます。順番は気にしなくて結構です。手順としてはまずマウントポイントを作成し、それからパーティションをそのマウントポイントにマウントします。{{ic|/boot}} パーティションを作成していたのならば:&lt;br /&gt;
&lt;br /&gt;
 # mkdir -p /mnt/boot&lt;br /&gt;
 # mount /dev/sd&#039;&#039;xB&#039;&#039; /mnt/boot&lt;br /&gt;
&lt;br /&gt;
UEFI/GPT 環境の場合、EFI システムパーティションも {{ic|/boot}} にマウントすることを推奨します。他のマウントポイントを使いたいときは、[[EFISTUB]] の記事を見て下さい。&lt;br /&gt;
&lt;br /&gt;
{{ic|/home}} パーティションを使用する場合:&lt;br /&gt;
&lt;br /&gt;
 # mkdir -p /mnt/home&lt;br /&gt;
 # mount /dev/sd&#039;&#039;xH&#039;&#039; /mnt/home&lt;br /&gt;
&lt;br /&gt;
全てのパーティションをマウントしたら、デバイスの準備は完了で Arch をインストールできます。&lt;br /&gt;
&lt;br /&gt;
== ミラーの選択 ==&lt;br /&gt;
&lt;br /&gt;
インストールの前に、{{ic|mirrorlist}} ファイルを編集し、あなたに相応しいミラーを一番上に置きましょう。このファイルのコピーが {{ic|pacstrap}} によってインストールされ、新しいシステム上でも選択したミラーが使われます。&lt;br /&gt;
&lt;br /&gt;
{{hc|# nano /etc/pacman.d/mirrorlist|&lt;br /&gt;
##&lt;br /&gt;
## Arch Linux repository mirrorlist&lt;br /&gt;
## Sorted by mirror score from mirror status page&lt;br /&gt;
## Generated on YYYY-MM-DD&lt;br /&gt;
##&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
...}}&lt;br /&gt;
&lt;br /&gt;
* {{ic|Alt+6}} で {{ic|Server}} 行をコピー。&lt;br /&gt;
* {{ic|PageUp}} キーで上にスクロール。&lt;br /&gt;
* {{ic|Ctrl+U}} でリストの一番上にペースト。&lt;br /&gt;
* {{ic|Ctrl+X}} で終了、保存するか聞かれたら、{{ic|Y}} を押し {{ic|Enter}} で上書き保存。&lt;br /&gt;
&lt;br /&gt;
他のミラーを消去 ({{ic|Ctrl+K}} を使う) してミラーを&#039;&#039;ひとつだけに&#039;&#039;絞ることもできますが、そのミラーがオフラインになったときのことを考え、ミラーを複数使用するほうが良いでしょう。&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* [https://www.archlinux.org/mirrorlist/ Mirrorlist Generator] を使って、あなたの国の最新リストを入手できます。[[Wikipedia:Keepalive|keepalive]] が存在するため、HTTP ミラーのほうが FTP よりも速度が速いです。また FTP では、pacman はパッケージをダウンロードするごとにシグナルを送信しなくてはならないため、短い停止がはさまります。ミラーリストを作る他の方法を見るには、[[ミラー#ミラーをソートする|ミラーのソート]]と [[Reflector]] を参照してください。&lt;br /&gt;
* [https://archlinux.org/mirrors/status/ Arch Linux MirrorStatus] ではミラーの状況、たとえばネットワークエラー、データ収集エラー、最終同期時間などの様々な情報を見ることができます。}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* 将来、ミラーリストを変更したときは必ず、{{ic|pacman -Syyu}} で pacman の全てのパッケージリストを更新することを覚えておいて下さい。これは良い経験則と考えられており、問題の回避につながります。詳しくは[[ミラー]]を参照。&lt;br /&gt;
* 古いインストールメディアを使っている場合、ミラーリストが古くなっているかもしれません。そのために Arch Linux のアップデート時に問題を引き起こす可能性があります。({{Bug|22510}} を参照)。上で述べたようにして最新のミラー情報を入手するべきです。}}&lt;br /&gt;
&lt;br /&gt;
== ベースシステムのインストール ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;pacstrap&#039;&#039; スクリプトを使ってベースシステムをインストールします。インストールするパッケージを選択せず、{{Grp|base}} の全てのパッケージをインストールするときは、{{ic|-i}} スイッチを省いて下さい。[[AUR]] や [[ABS]] でパッケージをビルドするときのために、{{Grp|base-devel}} グループも必要になります。&lt;br /&gt;
&lt;br /&gt;
 # pacstrap -i /mnt base base-devel&lt;br /&gt;
&lt;br /&gt;
ライブ環境に含まれているツールの中には base グループに含まれていないものもあります ([https://projects.archlinux.org/archiso.git/tree/configs/releng/packages.both packages.both] を参照)。パッケージは後で &#039;&#039;pacman&#039;&#039; を使って[[インストール]]することもできますが、&#039;&#039;pacstrap&#039;&#039; コマンドにパッケージの名前を追加することでこの場でインストールすることもできます。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* ミラーを正しく設定しているのに、&#039;&#039;pacstrap&#039;&#039; が {{ic|error: failed retrieving file &#039;core.db&#039; from mirror... : Connection time-out}} で止まる場合は、他の[[Resolv.conf|ネームサーバ]]を設定してみてください。&lt;br /&gt;
* ベースパッケージのインストール中に PGP 鍵のインポートをリクエストされたら、鍵のダウンロードを承認して先に進んで下さい。これは古い Arch ISO を使っていると発生します。PGP 鍵を追加できないときは、次のようにして {{Pkg|archlinux-keyring}} パッケージを更新してみてください: {{ic|pacman -S archlinux-keyring}}。詳しくは [[Pacman#トラブルシューティング]] や [[Pacman-key#トラブルシューティング]] を見て下さい。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== fstab の生成 ==&lt;br /&gt;
&lt;br /&gt;
以下のコマンドで [[fstab]] ファイルを生成します。いくつか有利な点がある UUID が使われます ([[fstab#ファイルシステムの識別]] を参照)。UUID ではなくラベルを使いたいときは、{{ic|-U}} オプションを {{ic|-L}} に置き換えましょう。&lt;br /&gt;
&lt;br /&gt;
 # genfstab -U /mnt &amp;gt; /mnt/etc/fstab&lt;br /&gt;
 # cat /mnt/etc/fstab&lt;br /&gt;
&lt;br /&gt;
{{Warning|生成したあとは必ず {{ic|fstab}} の中身をチェックしましょう。&#039;&#039;genfstab&#039;&#039; や後のインストール作業中にエラーが起こっても、もう一度 &#039;&#039;genfstab&#039;&#039; を実行するのはやめてください。その場合は手動で {{ic|fstab}} ファイルを編集して下さい。}}&lt;br /&gt;
&lt;br /&gt;
最後のフィールドには起動時にチェックするパーティションの順番を設定します: ({{ic|btrfs}} 以外では) root パーティションに {{ic|1}} を使って下さい、最初にチェックされます。起動時にチェックしたい他のパーティションには {{ic|2}} を使って下さい、{{ic|0}} はチェックされません ([[fstab#フィールドの定義]] を参照)。[[btrfs]] のパーティションには全て {{ic|0}} を使う必要があります。スワップパーティションも {{ic|0}} に設定してください。&lt;br /&gt;
&lt;br /&gt;
== Chroot とベースシステムの設定 ==&lt;br /&gt;
&lt;br /&gt;
次に、[[Change Root|chroot]] を使って新しくインストールされたシステムに入ります:&lt;br /&gt;
&lt;br /&gt;
 # arch-chroot /mnt /bin/bash&lt;br /&gt;
&lt;br /&gt;
この段階では、Arch Linux ベースシステムの重要な設定ファイルを作ります。ファイルが存在していないときや、デフォルト設定を使いたくないときは、その都度ファイルを作成したり編集してください。&lt;br /&gt;
&lt;br /&gt;
正確に、手順をよく踏まえてから設定してください。システムを正しく設定するのにとても重要なステップです。&lt;br /&gt;
&lt;br /&gt;
{{Warning|ISO で使用しているツールは自動的にインストールされるわけではありません。例えば、インストールの一環としてネットワークに接続するために &#039;&#039;wifi-menu&#039;&#039; を使っている場合、インストールを完了した後も &#039;&#039;wifi-menu&#039;&#039; を使うためには、{{Pkg|dialog}} をインストールしておく必要があります。以下のセクションではそういったケースについて説明をしているので、後で困った事態にならないようにちゃんと指示に従って下さい。}}&lt;br /&gt;
&lt;br /&gt;
=== ロケール ===&lt;br /&gt;
&lt;br /&gt;
ロケールを設定することによって、{{Pkg|glibc}} やその他のロケールを使うプログラムやライブラリで、テキストのレンダリング、正しい通貨単位の表示、時間と月日のフォーマット、アルファベットの特有表現、地域特有の単位の表示などができるようになります。&lt;br /&gt;
&lt;br /&gt;
2つのファイルを編集する必要があります: 使用可能なロケールを記述する {{ic|locale.gen}} と実際に使用するロケールを定義する {{ic|locale.conf}}。&lt;br /&gt;
&lt;br /&gt;
{{ic|locale.gen}} ファイルはデフォルトでは全てコメントアウト ({{ic|#}} で無効化) されています。{{ic|en_US.UTF-8 UTF-8}} の行と、必要なロケールをアンコメント (行の前の {{ic|#}} を削除) してください。選択肢がいくつかある場合 {{ic|UTF-8}} を推奨します。&lt;br /&gt;
&lt;br /&gt;
{{hc|# nano /etc/locale.gen|&lt;br /&gt;
...&lt;br /&gt;
#en_SG ISO-8859-1&lt;br /&gt;
en_US.UTF-8 UTF-8&lt;br /&gt;
#en_US ISO-8859-1&lt;br /&gt;
...&lt;br /&gt;
#ja_JP.EUC-JP EUC-JP&lt;br /&gt;
ja_JP.UTF-8 UTF-8&lt;br /&gt;
#ka_GE.UTF-8 UTF-8&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
ロケールは有効にする前に、&#039;&#039;生成&#039;&#039;する必要があります:&lt;br /&gt;
&lt;br /&gt;
 # locale-gen&lt;br /&gt;
&lt;br /&gt;
{{ic|locale.conf}} ファイルはデフォルトで存在しません。ファイルを作成して、他の全ての変数のデフォルト値として扱われる {{ic|LANG}} のみ設定してください。{{ic|LANG}} 変数に指定するロケールは {{ic|/etc/locale.gen}} でアンコメントされている必要があります:&lt;br /&gt;
&lt;br /&gt;
 # echo LANG=&#039;&#039;en_US.UTF-8&#039;&#039; &amp;gt; /etc/locale.conf&lt;br /&gt;
&lt;br /&gt;
ロケールを export してください:&lt;br /&gt;
&lt;br /&gt;
 # export LANG=&#039;&#039;en_US.UTF-8&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* この段階でロケールを日本語に設定してしまうと、日本語を表示するためのフォントなどの環境が整っていないため、コンソールの出力が文字化けして判読できなくなってしまいます。GUI 環境を設定してから、以下を実行することで言語を日本語に設定できます:&lt;br /&gt;
 # echo LANG&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&#039;&#039;ja_JP.UTF-8&#039;&#039; &amp;gt; /etc/locale.conf&lt;br /&gt;
 # export LANG&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&#039;&#039;ja_JP.UTF-8&#039;&#039;&lt;br /&gt;
* システム全体のロケールを {{ic|en_US.UTF-8}} に設定してシステムログを英語で保存するとトラブルシューティングが楽になります。この設定は[[ロケール#ユーザーごとにロケールを設定]]で書かれているようにしてユーザー個別で上書きできます。&lt;br /&gt;
* 他の {{ic|LC_*}} 変数を使いたいときは、まず {{ic|locale}} を実行してオプションを確認してから、{{ic|locale.conf}} に追加してください。{{ic|LC_ALL}} 変数を使うことは推奨されません。詳しくは[[ロケール]]を参照してください。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== コンソールフォントとキーマップ ===&lt;br /&gt;
&lt;br /&gt;
[[#言語の選択|言語の選択]]でデフォルトのキーマップとフォントを変更していた場合、再起動後もキーマップ設定が適用されるように、{{ic|/etc/vconsole.conf}} を編集 (ファイルがなかったら作成) してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|# nano /etc/vconsole.conf|2=&lt;br /&gt;
KEYMAP=&#039;&#039;jp106&#039;&#039;&lt;br /&gt;
FONT=&#039;&#039;lat9w-16&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
詳しくは[[フォント#コンソールフォント|コンソールフォント]]や {{ic|man vconsole.conf}} を参照。&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|KEYMAP}} を最初に &#039;&#039;loadkeys&#039;&#039; で設定した値と異なる値に設定してから、[[#root パスワードの設定|root パスワードを設定]]してしまうと、新しいシステムにログインするときにキーマップが変わっていてログインできなくなる可能性があります。}}&lt;br /&gt;
&lt;br /&gt;
以上の設定は仮想端末においてのみ適用されます。[[Xorg]] ではまた異なる設定をする必要があります。詳しくは[[フォント#コンソールフォント]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== タイムゾーン ===&lt;br /&gt;
&lt;br /&gt;
利用可能なタイムゾーンとサブゾーンは {{ic|/usr/share/zoneinfo/&#039;&#039;ゾーン&#039;&#039;/&#039;&#039;サブゾーン&#039;&#039;}} ディレクトリで見つかります。{{ic|ls}} コマンドでゾーンの一覧を表示できます:&lt;br /&gt;
 $ ls -l /usr/share/zoneinfo&lt;br /&gt;
&lt;br /&gt;
{{Tip|[http://tldp.org/LDP/abs/html/tabexpansion.html タブ補完] を使うことでも利用できるゾーンとサブゾーンを表示できます。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/localtime}} から適切なゾーンファイル {{ic|/usr/share/zoneinfo/&#039;&#039;ゾーン&#039;&#039;/&#039;&#039;サブゾーン&#039;&#039;}} へのシンボリックリンクを作って下さい:&lt;br /&gt;
&lt;br /&gt;
 # ln -s /usr/share/zoneinfo/&#039;&#039;ゾーン&#039;&#039;/&#039;&#039;サブゾーン&#039;&#039; /etc/localtime&lt;br /&gt;
&lt;br /&gt;
例:&lt;br /&gt;
&lt;br /&gt;
 # ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime&lt;br /&gt;
&lt;br /&gt;
{{ic|ln: failed to create symbolic link &#039;/etc/localtime&#039;: File exists}} と表示される場合は、{{ic|ls -l /etc/localtime}} で既存のファイルを確認してから、&#039;&#039;ln&#039;&#039; コマンドに {{ic|-f}} オプションを追加して上書きしてください。&lt;br /&gt;
&lt;br /&gt;
=== ハードウェアクロック ===&lt;br /&gt;
&lt;br /&gt;
ハードウェアクロックモードを全ての OS で同じになるように設定します。さもないと、ハードウェアクロックが上書きされ時刻がずれてしまう可能性があります。&#039;&#039;hwclock&#039;&#039; コマンドは {{ic|/etc/adjtime}} ファイルを生成します。[[Wikipedia:ja:協定世界時|UTC]] に設定するには、次を実行:&lt;br /&gt;
&lt;br /&gt;
 # hwclock --systohc --utc&lt;br /&gt;
&lt;br /&gt;
{{Note|ハードウェアクロックに [[Wikipedia:ja:協定世界時|UTC]] を使ったからといって、ソフトウェアが時刻を UTC で表示するわけではありません。}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|Windows はデフォルトで &#039;&#039;localtime&#039;&#039; を使っています。Arch で &#039;&#039;localtime&#039;&#039; を使用すると既知の問題や容易に修復できないバグを引き起こす可能性があります。しかしながら、&#039;&#039;localtime&#039;&#039; のサポートを終了する計画はありません。&#039;&#039;localtime&#039;&#039; を使用する場合は、root で {{ic|hwclock --systohc --localtime}} を実行してください。Windows 7 以降を使用する場合、Arch を &#039;&#039;localtime&#039;&#039; に設定するのではなく、Windows に UTC を使わせて、Windows の時刻同期を無効にすることが推奨されています。詳しくは[[時刻#Windows で UTC を使う]]を見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
=== カーネルモジュール ===&lt;br /&gt;
&lt;br /&gt;
必要なカーネルモジュールは基本的に [[udev]] によって自動ロードされるため、手動でモジュールをロードする必要があるのは稀です。詳しくは[[カーネルモジュール]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== ホスト名 ===&lt;br /&gt;
&lt;br /&gt;
お好きな名前を[[Wikipedia:ja:ホスト名|ホスト名]]に設定してください (例: &#039;&#039;arch&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
 # echo &#039;&#039;ホスト名&#039;&#039; &amp;gt; /etc/hostname&lt;br /&gt;
&lt;br /&gt;
同じホスト名を {{ic|/etc/hosts}} に追加します:&lt;br /&gt;
&lt;br /&gt;
 #&amp;lt;ip-address&amp;gt; &amp;lt;hostname.domain.org&amp;gt; &amp;lt;hostname&amp;gt;&lt;br /&gt;
 127.0.0.1 localhost.localdomain localhost &#039;&#039;ホスト名&#039;&#039;&lt;br /&gt;
 ::1   localhost.localdomain localhost &#039;&#039;ホスト名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== ネットワークの設定 ===&lt;br /&gt;
&lt;br /&gt;
ネットワークの設定をもう一度行います。今回は新しくインストールされる環境のネットワーク設定です。[[#インターネット接続の確立|上で説明した]]のと方法はほとんど同じですが、今回の設定では、設定が消えないように、ブート時に自動的に起動するように設定します。&lt;br /&gt;
&lt;br /&gt;
まず最初に、{{ic|ip link}} で接続を設定するネットワークインターフェイスの名前を確認してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* ネットワーク設定の詳しい情報は、[[ネットワーク設定]]や[[ワイヤレス設定]]を参照してください。&lt;br /&gt;
* インターフェースについて古い命名規則 ({{ic|eth&#039;&#039;X&#039;&#039;}} や {{ic|wlan&#039;&#039;X&#039;&#039;}}) を使って欲しい時は {{ic|/etc/udev/rules.d/80-net-setup-link.rules}} に空のファイルを作成してください。これによって {{ic|/usr/lib/udev/rules.d}} 下の同じ名前のファイルがマスクされます (空のファイルを使う代わりに、{{ic|/dev/null}} へのシンボリックリンクを使うことでも命名規則を戻せます: {{ic|# ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules}})。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== 有線 ====&lt;br /&gt;
&lt;br /&gt;
===== 動的 IP =====&lt;br /&gt;
&lt;br /&gt;
; dhcpcd を使う&lt;br /&gt;
&lt;br /&gt;
固定された有線ネットワーク接続が1つだけあるという環境の場合、ネットワーク管理サービスを使う必要はなく、単純に {{ic|dhcpcd}} サービスを有効にするだけで足ります:&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable dhcpcd@&#039;&#039;インターフェイス名&#039;&#039;.service&lt;br /&gt;
&lt;br /&gt;
; netctl を使う&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/netctl/examples}} からサンプルプロファイルを {{ic|/etc/netctl/}} にコピーしてください:&lt;br /&gt;
&lt;br /&gt;
 # cd /etc/netctl&lt;br /&gt;
 # cp examples/ethernet-dhcp my_network&lt;br /&gt;
&lt;br /&gt;
プロファイルを編集して下さい ({{ic|Interface}} を {{ic|eth0}} から {{ic|ip link}} を実行したときに確認したインターフェイス名に修正する):&lt;br /&gt;
&lt;br /&gt;
 # nano my_network&lt;br /&gt;
&lt;br /&gt;
{{ic|my_network}} プロファイルを有効にしてください:&lt;br /&gt;
&lt;br /&gt;
 # netctl enable my_network&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|Running in chroot, ignoring request.}} というメッセージが表示されることがありますが、いまのところは無視してかまいません。}}&lt;br /&gt;
&lt;br /&gt;
; netctl-ifplugd を使う&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|netctl enable &#039;&#039;プロファイル名&#039;&#039;}} のようにしてプロファイルを有効にする方法と netctl-ifplugd を使う方法を一緒に用いることはできません。}}&lt;br /&gt;
&lt;br /&gt;
{{Pkg|netctl}} の {{ic|netctl-ifplugd}} を使って動的に接続を管理することもできます。&lt;br /&gt;
&lt;br /&gt;
まず {{Pkg|ifplugd}} をインストールしてください、{{ic|netctl-ifplugd}} を使うために必要なパッケージです:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S ifplugd&lt;br /&gt;
&lt;br /&gt;
そしてサービスを有効にしてください:&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable netctl-ifplugd@&#039;&#039;インターフェイス名&#039;&#039;.service&lt;br /&gt;
&lt;br /&gt;
{{Note|[[netctl]] には {{ic|netctl-auto}} もあり、{{ic|netctl-ifplugd}} と一緒に無線プロファイルを管理するのに使うことができます。}}&lt;br /&gt;
&lt;br /&gt;
===== 固定 IP =====&lt;br /&gt;
&lt;br /&gt;
; netctl を使う&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/network.d/examples}} から {{ic|/etc/netctl}} にサンプルプロファイルをコピーします:&lt;br /&gt;
&lt;br /&gt;
 # cd /etc/netctl&lt;br /&gt;
 # cp examples/ethernet-static my_network&lt;br /&gt;
&lt;br /&gt;
必要に応じてプロファイルを編集 ({{ic|Interface}}, {{ic|Address}}, {{ic|Gateway}}, {{ic|DNS}} を修正):&lt;br /&gt;
&lt;br /&gt;
 # nano my_network&lt;br /&gt;
&lt;br /&gt;
{{ic|Address}} の中の {{ic|/24}} は {{ic|255.255.255.0}} ネットマスクの [[wikipedia:Classless Inter-Domain Routing#CIDR notation|CIDR notation]] です。&lt;br /&gt;
&lt;br /&gt;
そして作成したプロファイルを有効にしてください:&lt;br /&gt;
&lt;br /&gt;
 # netctl enable my_network&lt;br /&gt;
&lt;br /&gt;
; systemd-networkd を使う&lt;br /&gt;
&lt;br /&gt;
[[systemd-networkd]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==== 無線 ====&lt;br /&gt;
&lt;br /&gt;
{{Note|あなたの使っているワイヤレスアダプタにファームウェアが必要な場合 (上の[[#インターネット接続の確立|インターネット接続の確立]]セクションと[[ワイヤレス設定#ドライバとファームウェア|ここ]]に記述あり)、ファームウェアを含んだパッケージをインストールしてください。ほとんどの場合、{{Pkg|linux-firmware}} パッケージに必要なファームウェアが含まれていますが、機器によっては個別のパッケージにファームウェアが存在します。例えば: {{ic|# pacman -S zd1211-firmware}}。詳しくは[[ワイヤレス設定]]を見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
ネットワークに接続するために {{pkg|iw}} と {{pkg|wpa_supplicant}} をインストールしてください:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S iw wpa_supplicant&lt;br /&gt;
&lt;br /&gt;
===== 無線ネットワークの追加 =====&lt;br /&gt;
; wifi-menu を使う&lt;br /&gt;
&lt;br /&gt;
{{ic|wifi-menu}} に必要な {{pkg|dialog}} をインストールしてください:&lt;br /&gt;
 # pacman -S dialog&lt;br /&gt;
&lt;br /&gt;
このインストールと再起動が終わった後 {{ic|wifi-menu &#039;&#039;インターフェイス名&#039;&#039;}} ({{ic|&#039;&#039;インターフェイス名&#039;&#039;}} はあなたの無線インターフェースに置き換えてください) でネットワークに接続することができます。&lt;br /&gt;
&lt;br /&gt;
 # wifi-menu &#039;&#039;インターフェイス名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|wifi-menu}} を使う時は、絶対に chroot を終了して再起動した&#039;&#039;後&#039;&#039;にしてください。このコマンドを使って作成されたものが chroot の外で動作させているものと衝突してしまう恐れがあるからです。また、上で書かれているようにテンプレートを使って手動でネットワークプロファイルを設定することもできます、その場合は {{ic|wifi-menu}} を使うことについての心配はいりません。}}&lt;br /&gt;
&lt;br /&gt;
; 手動の netctl プロファイルを使う&lt;br /&gt;
&lt;br /&gt;
ネットワークプロファイルを {{ic|/etc/netctl/examples}} から {{ic|/etc/netctl}} にコピーしてください:&lt;br /&gt;
&lt;br /&gt;
 # cd /etc/netctl&lt;br /&gt;
 # cp examples/wireless-wpa my_network&lt;br /&gt;
&lt;br /&gt;
接続するネットワークにあわせてプロファイルを編集してください ({{ic|Interface}}, {{ic|ESSID}}, {{ic|Key}} を修正):&lt;br /&gt;
&lt;br /&gt;
 # nano my_network&lt;br /&gt;
&lt;br /&gt;
作成したプロファイルがブート毎に実行されるよう有効にしてください:&lt;br /&gt;
&lt;br /&gt;
 # netctl enable my_network&lt;br /&gt;
&lt;br /&gt;
===== 既知のネットワークに自動で接続する =====&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|netctl enable &#039;&#039;プロファイル名&#039;&#039;}} のようにしてプロファイルを有効にする方法とこの方法を一緒に使うことはできません。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|netctl-auto}} に必要な {{Pkg|wpa_actiond}} をインストールしてください:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S wpa_actiond&lt;br /&gt;
&lt;br /&gt;
{{ic|netctl-auto}} サービスを有効にすれば、既知のネットワークに接続しローミングや切断を管理します:&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable netctl-auto@&#039;&#039;インターフェイス名&#039;&#039;.service&lt;br /&gt;
&lt;br /&gt;
{{Note|[[netctl]] には {{ic|netctl-ifplugd}} もあり、{{ic|netctl-auto}} と一緒に有線プロファイルを管理するのに使われます。}}&lt;br /&gt;
&lt;br /&gt;
==== xDSL (PPPoE), アナログモデム, ISDN ====&lt;br /&gt;
&lt;br /&gt;
xDSL、ダイアルアップ・ISDN 接続は、[[モデムに直接接続]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== Initial ramdisk 環境の作成 ===&lt;br /&gt;
&lt;br /&gt;
{{Tip|ほとんどのユーザーはこの手順をスキップし、{{ic|mkinitcpio.conf}} のデフォルト設定を使って問題ありません。initramfs イメージ ({{ic|/boot}} フォルダ内) は {{ic|pacstrap}} によって {{Pkg|linux}} パッケージ (Linux カーネル) をインストールしたときに、{{ic|mkinitcpio.conf}} に基づいて既に生成されています。}}&lt;br /&gt;
&lt;br /&gt;
root が USB ドライブにあったり、RAID や LVM を使っていたり、{{ic|/usr}} が分割されたパーティション上にある場合は、ここで正しい [[Mkinitcpio#HOOKS|hooks]] を設定しなくてはなりません。&lt;br /&gt;
&lt;br /&gt;
必要に応じて {{ic|/etc/mkinitcpio.conf}} を編集し、initramfs イメージを再形成します:&lt;br /&gt;
&lt;br /&gt;
 # mkinitcpio -p linux&lt;br /&gt;
&lt;br /&gt;
=== root パスワードの設定 ===&lt;br /&gt;
&lt;br /&gt;
root パスワードを設定します:&lt;br /&gt;
&lt;br /&gt;
 # passwd&lt;br /&gt;
&lt;br /&gt;
=== ブートローダのインストールと設定 ===&lt;br /&gt;
&lt;br /&gt;
Intel の CPU を使っている場合、{{Pkg|intel-ucode}} パッケージをインストールして[[マイクロコード#Intel のマイクロコードのアップデートを有効にする|マイクロコードのアップデートを有効化]]してください。&lt;br /&gt;
&lt;br /&gt;
==== BIOS マザーボードの場合 ====&lt;br /&gt;
&lt;br /&gt;
BIOS システムでは、複数のブートローダが使えます。ブートローダの完全なリストは[[ブートローダー]]にあります。あなたの都合に合わせてどれか一つを選んで下さい。よく使われるブートローダーは:&lt;br /&gt;
&lt;br /&gt;
* [[Syslinux]] は現在 Syslinux がインストールされたパーティションのファイルのみをロードするように制限されています。設定ファイルはわかりやすいものになっています。設定サンプルは [[Syslinux#サンプル|Syslinux]] の記事にあります。&lt;br /&gt;
&lt;br /&gt;
* [[GRUB]] はより多くの機能を備えた複雑なブートローダです。設定ファイルはスクリプト言語 (sh) に似ていて、初心者が手動で設定するには難しいかもしれません。自動で設定を生成するのが推奨されます。&lt;br /&gt;
&lt;br /&gt;
ここからは、GRUB と MBR の組み合わせでのインストールを説明します。まず {{Pkg|grub}} パッケージをインストールします。GRUB が他のオペレーティングシステムも検索できるように、{{Pkg|os-prober}} もインストールしておきます:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S grub os-prober&lt;br /&gt;
&lt;br /&gt;
{{ic|grub-install}} を実行してブートローダをインストールしてください:&lt;br /&gt;
&lt;br /&gt;
 # grub-install --recheck &#039;&#039;/dev/sda&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* {{ic|/dev/sda}} はあなたが Arch をインストールしたドライブに書き換えてください。パーティション番号を加えてはいけません ({{ic|sda&#039;&#039;X&#039;&#039;}} を使ってはいけません)。&lt;br /&gt;
* サンプルの {{ic|/boot/grub/grub.cfg}} は grub パッケージの一部としてインストールされ、後の {{ic|grub-*}} コマンドでは上書きされません。変更を加えるときは {{ic|grub.cfg.new}} などのファイルではなく {{ic|grub.cfg}} を編集してください。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
次に {{ic|grub.cfg}} を作ります。手動で作る方が細かい設定ができますが、初心者は自動で生成するのが推奨されています:&lt;br /&gt;
&lt;br /&gt;
 # grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
GRUB の使用・設定の詳しい情報は、[[GRUB]] を参照。&lt;br /&gt;
&lt;br /&gt;
==== UEFI マザーボードの場合 ====&lt;br /&gt;
&lt;br /&gt;
{{Note|UEFI ファームウェアによってはインストールしたブートローダーの {{ic|.efi}} ブータブルスタブを特定の名前で特定の場所に配置する必要があります: {{ic|$esp/EFI/boot/bootx64.efi}} ({{ic|$esp}} は EFI System Partition のマウントポイントに置き換えて下さい)。これをしていないと場合によっては、インストールした環境を起動できなくなることがあります。詳しくはそれぞれのブートローダーのセクションを見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
UEFI システムでも、複数のブートローダが使えます。利用できるブートローダの完全なリストは[[ブートローダー]]にあります。あなたの都合にあわせて選んで下さい。ここでは、2つのブートローダを例として提示します:&lt;br /&gt;
&lt;br /&gt;
* [[systemd-boot]] は最小主義の UEFI ブートマネージャで、[[EFISTUB]] カーネルや他の UEFI アプリケーションのためのメニューを提供します。初心者、特に Windows 8 などの別のオペレーティングシステムとデュアルブートをしたいユーザーに推奨です。&lt;br /&gt;
* [[GRUB]] は完全なブートローダーで、systemd-boot で問題が起きた時に役に立ちます。&lt;br /&gt;
&lt;br /&gt;
ここからは systemd-boot のインストールを説明します。まず、インストール後に EFI System Partition を操作するための {{Pkg|dosfstools}} パッケージをインストールしてください:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S dosfstools&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* UEFI でブートするには、ドライブは GPT でパーティションされている必要があり、[[Unified Extensible Firmware Interface#EFI System Partition|EFI System Partition]] (512 MiB 以上, FAT32, gdisk タイプ {{ic|EF00}}) が存在しなければなりません。このガイドを初めから実行しているのなら、すでに全て行われているはずです。&lt;br /&gt;
* systemd-boot が自動的にアップデートされるように EFI System Partition は {{ic|/boot}} にマウントすることを強く推奨します。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
自動インストールスクリプトを実行してブートローダを EFI System Partition にインストールしてください ({{ic|$esp}} は EFI System Partiton の場所に置き換えて下さい、通常は {{ic|/boot}} です):&lt;br /&gt;
&lt;br /&gt;
 # bootctl --path=&#039;&#039;$esp&#039;&#039; install&lt;br /&gt;
&lt;br /&gt;
Bootctl はファームウェアによって自動で検出され、{{ic|bootx64.efi}} ブータブルスタブが {{ic|$esp/EFI/boot}} にあることを必要とします。そして {{ic|.efi}} スタブを使ってインストールされている別のオペレーティングシステムを自動で検出します。ただし、bootctl の設定ファイルは手動で作成する必要があります。&lt;br /&gt;
&lt;br /&gt;
まず、{{ic|&#039;&#039;$esp&#039;&#039;/loader/entries/arch.conf}} を作成して以下を記述します、{{ic|/dev/sdaX}} は &#039;&#039;root&#039;&#039; パーティションに置き換えて下さい (例: {{ic|/dev/sda2}}):&lt;br /&gt;
{{hc|# nano &#039;&#039;$esp&#039;&#039;/loader/entries/arch.conf|2=&lt;br /&gt;
title          Arch Linux&lt;br /&gt;
linux          /vmlinuz-linux&lt;br /&gt;
initrd         /initramfs-linux.img&lt;br /&gt;
options        root=&#039;&#039;&#039;/dev/sdaX&#039;&#039;&#039; rw&lt;br /&gt;
}}&lt;br /&gt;
次に、{{ic|&#039;&#039;$esp&#039;&#039;/loader/loader.conf}} を作成して以下を記述します、timeout の値は自由に変更できます (秒数):&lt;br /&gt;
{{hc|# nano &#039;&#039;$esp&#039;&#039;/loader/loader.conf|2=&lt;br /&gt;
default  arch&lt;br /&gt;
timeout  5&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
詳しい情報は [[systemd-boot]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
== パーティションのアンマウントと再起動 ==&lt;br /&gt;
&lt;br /&gt;
chroot 環境を脱出します:&lt;br /&gt;
&lt;br /&gt;
 # exit&lt;br /&gt;
&lt;br /&gt;
{{Note|パーティションは &#039;&#039;systemd&#039;&#039; によってシャットダウン時に自動的にアンマウントされますが、安全対策として {{ic|umount -R /mnt}} を使って手動でアンマウントすることもできます。パーティションがビジー状態の場合、[[Wikipedia:fuser_(Unix)|fuser]] で原因を特定できます。}}&lt;br /&gt;
&lt;br /&gt;
コンピュータを再起動:&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
{{Tip|インストールメディアを取り出してください、そうしないともう一度セットアップが起動してしまいます。マシンにログインするときはユーザー &amp;quot;root&amp;quot; と前に passwd コマンドで設定したパスワードを使います。デフォルトのパスワードは &amp;quot;root&amp;quot; です。}}&lt;br /&gt;
&lt;br /&gt;
== インストールのその先 ==&lt;br /&gt;
&lt;br /&gt;
あなたの新しい Arch Linux ベースシステムは今、あなたの目的や希望のために必要な全てを入れる準備ができた GNU/Linux になっています。ここからは[[一般的な推奨事項]]のページを見ることを推奨します。特に最初の2つのセクションは必読です。また、他のセクションには、グラフィカルユーザーインターフェイス (GUI) やサウンド、タッチパッドの設定などのチュートリアルが書かれたページヘのリンクが載っています。&lt;br /&gt;
&lt;br /&gt;
あなたの興味を引くであろうアプリケーションの一覧は、[[アプリケーション一覧]]を参照。&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%83%93%E3%82%AE%E3%83%8A%E3%83%BC%E3%82%BA%E3%82%AC%E3%82%A4%E3%83%89&amp;diff=4574</id>
		<title>ビギナーズガイド</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%83%93%E3%82%AE%E3%83%8A%E3%83%BC%E3%82%BA%E3%82%AC%E3%82%A4%E3%83%89&amp;diff=4574"/>
		<updated>2015-12-28T21:06:47Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: /* パーティションテーブルのタイプの選択 */  MBR/GPTはそれぞれBIOS/UEFI専用というわけではないので。英語版では既に削除されている。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Arch の入手とインストール]]&lt;br /&gt;
[[Category:Arch について]]&lt;br /&gt;
[[ar:Beginners&#039; guide]]&lt;br /&gt;
[[bg:Beginners&#039; guide]]&lt;br /&gt;
[[cs:Beginners&#039; guide]]&lt;br /&gt;
[[da:Beginners&#039; guide]]&lt;br /&gt;
[[de:Anleitung für Einsteiger]]&lt;br /&gt;
[[el:Beginners&#039; guide]]&lt;br /&gt;
[[en:Beginners&#039; guide]]&lt;br /&gt;
[[es:Beginners&#039; guide]]&lt;br /&gt;
[[fa:راهنمای_تازه‌کاران]]&lt;br /&gt;
[[fr:Installation]]&lt;br /&gt;
[[he:Beginners&#039; guide]]&lt;br /&gt;
[[hr:Beginners&#039; guide]]&lt;br /&gt;
[[hu:Beginners&#039; guide]]&lt;br /&gt;
[[id:Beginners&#039; guide]]&lt;br /&gt;
[[it:Beginners&#039; guide]]&lt;br /&gt;
[[ko:Beginners&#039; guide]]&lt;br /&gt;
[[lt:Beginners&#039; guide]]&lt;br /&gt;
[[nl:Beginners&#039; guide]]&lt;br /&gt;
[[pl:Beginners&#039; guide]]&lt;br /&gt;
[[pt:Beginners&#039; guide]]&lt;br /&gt;
[[ro:Ghidul începătorilor]]&lt;br /&gt;
[[ru:Beginners&#039; guide]]&lt;br /&gt;
[[sk:Beginners&#039; guide]]&lt;br /&gt;
[[sr:Beginners&#039; guide]]&lt;br /&gt;
[[sv:Nybörjarguiden]]&lt;br /&gt;
[[tr:Yeni başlayanlar rehberi]]&lt;br /&gt;
[[uk:Beginners&#039; guide]]&lt;br /&gt;
[[zh-cn:Beginners&#039; guide]]&lt;br /&gt;
[[zh-tw:Beginners&#039; guide]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|:カテゴリ:アクセシビリティ}}&lt;br /&gt;
{{Related|インストールガイド}}&lt;br /&gt;
{{Related|ディスクレスシステム}}&lt;br /&gt;
{{Related|SSH からインストール}}&lt;br /&gt;
{{Related|一般的な推奨事項}}&lt;br /&gt;
{{Related|一般的なトラブルシューティング}}&lt;br /&gt;
{{Related|ブートデバッグ}}&lt;br /&gt;
{{Related|pacman#トラブルシューティング}}&lt;br /&gt;
{{Related|pacman-key#トラブルシューティング}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&amp;lt;!-- Include the different sub pages --&amp;gt;&lt;br /&gt;
この文章では [https://projects.archlinux.org/arch-install-scripts.git/ Arch Install Scripts] を使って [[Arch Linux]] をインストールする方法を解説します。インストールする前に、[[FAQ]] を一読することをおすすめします。&lt;br /&gt;
&lt;br /&gt;
コミュニティによって管理されている [[メインページ|ArchWiki]] は有用な資料であり、問題が発生したらまず wiki を読んでみましょう。wiki で答えが見つからないときは、[https://archlinuxjp-slack.herokuapp.com/ Slack] や [https://bbs.archlinuxjp.org/ フォーラム] を使って下さい。また、[[The Arch Way|Arch Way]] に従って、知らないコマンドの {{ic|man}} ページを見るようにしましょう。{{ic|man &#039;&#039;コマンド&#039;&#039;}} で見ることができます。&lt;br /&gt;
&lt;br /&gt;
== 動作環境 ==&lt;br /&gt;
&lt;br /&gt;
Arch Linux は i686 互換の、最低 256MB の RAM を積んだマシンで動作します。また、基本的なインストールに必要な {{Grp|base}} グループに含まれる全てのパッケージをインストールするには約 800MB のディスク容量が必要です。使える容量が少ない場合、この数値をかなり切り詰めることが可能ですが、どうやるかは調べる必要があります。&lt;br /&gt;
&lt;br /&gt;
== 最新のインストールメディアを準備する ==&lt;br /&gt;
&lt;br /&gt;
Arch の公式インストールメディアは[https://www.archlinuxjp.org/download/ ダウンロードページ]から入手できます。ひとつの ISO で32ビットと64ビット両方のアーキテクチャをサポートしています。出来るだけ一番新しい ISO を使って下さい。&lt;br /&gt;
&lt;br /&gt;
インストールイメージには署名がされており、使用する前に署名を検証するのが推奨されています (特に HTTP ミラーからダウンロードした場合)。[[GnuPG]] をインストールした環境で、ダウンロードした &#039;&#039;PGP 署名&#039;&#039;を ISO のディレクトリに配置して、次を実行してください:&lt;br /&gt;
 $ gpg --verify archlinux-&amp;lt;version&amp;gt;-dual.iso.sig&lt;br /&gt;
公開鍵が見つからない場合、{{ic|gpg --recv-keys &#039;&#039;key-id&#039;&#039;}} で[[GnuPG#鍵のインポート|インポート]]できます [http://sparewotw.wordpress.com/2012/10/31/how-to-verify-signature-using-sig-file/]。もしくは、既存の Arch Linux 環境から次を実行:&lt;br /&gt;
 $ pacman-key -v archlinux-&amp;lt;version&amp;gt;-dual.iso.sig&lt;br /&gt;
{{ic|md5}} と {{ic|sha1}} チェックサムはそれぞれ &#039;&#039;md5sum&#039;&#039; と &#039;&#039;sha256sum&#039;&#039; でチェックできます。&lt;br /&gt;
&lt;br /&gt;
=== USB と光学ドライブ ===&lt;br /&gt;
&lt;br /&gt;
[[光学ディスクドライブ#焼き込み]] (CD/DVD) や [[USB インストールメディア]] (USB) を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== ネットワーク経由でのインストール ===&lt;br /&gt;
&lt;br /&gt;
[[PXE]] の記事を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== 既存の Linux 環境からインストール ===&lt;br /&gt;
&lt;br /&gt;
[[既存の Linux からインストール]]を見て下さい。[[VNC]] や [[SSH]] を使って Arch をリモートでインストールするときに特に便利です。[[SSH からインストール]]も参照。&lt;br /&gt;
&lt;br /&gt;
=== 仮想マシンへのインストール ===&lt;br /&gt;
&lt;br /&gt;
現在使用しているオペレーティングシステムを残したまま、[[Wikipedia:ja:仮想機械|仮想マシン]]上でインストール手順を実行することで、ストレージのパーティションを行う必要なく Arch Linux に慣れることができます。また、ブラウザでこのビギナーズガイドを開いたままインストールが可能です。独立した Arch Linux システムを使用できるということは、テストを行いたいという一部のユーザーにとって有益なことでしょう。&lt;br /&gt;
&lt;br /&gt;
仮想化ソフトウェアの例としては、[[VirtualBox]], [[VMware]], [[QEMU]], [[Xen]], [[Parallels]] があります。&lt;br /&gt;
&lt;br /&gt;
仮想マシンを準備するための正確な手順は、ソフトウェアによって異なりますが、一般的に次の手順に従います:&lt;br /&gt;
&lt;br /&gt;
# オペレーティングシステムのホストにて、仮想ディスクイメージを作成します。 &lt;br /&gt;
# 仮想マシンの設定を最適化します。 &lt;br /&gt;
# 仮想 CD ドライブでダウンロードした ISO イメージを起動します。  &lt;br /&gt;
# [[#インストールメディアの起動|インストールメディアの起動]]に進みます。&lt;br /&gt;
&lt;br /&gt;
== インストールメディアの起動 ==&lt;br /&gt;
&lt;br /&gt;
最初に、あなたのコンピュータの BIOS セットアップで起動順序を変更する必要があるかもしれません。それには、POST ([[Wikipedia:ja:Power On Self Test|Power On Self-Test]]) の間にキー (多くの場合 {{ic|Delete}}、{{ic|F1}}、{{ic|F2}}、{{ic|F11}} や {{ic|F12}}) を押します。これで BIOS の設定画面が表示されるので、ここでシステムが起動するデバイスを探す順番を設定できます。&amp;quot;Save &amp;amp; Exit&amp;quot; (もしくはそれに準ずるもの) を選択すればコンピュータは通常通り起動するはずです。&lt;br /&gt;
&lt;br /&gt;
Arch のメニューが表示されたら、インストールを行うライブ環境を開始するために &amp;quot;Boot Arch Linux&amp;quot; をメニューから選択し、{{ic|Enter}} キーを押します (UEFI ブートディスクから起動した場合は、次のオプションを選択: &amp;quot;Arch Linux archiso x86_64 UEFI&amp;quot;)。ブートエントリを編集することで様々なブートパラメータ ({{ic|copytoram}} など) を使うことができます。Syslinux では {{ic|tab}} を押し、systemd-boot では {{ic|e}} を押します。詳しくは [https://projects.archlinux.org/archiso.git/tree/docs/README.bootparams README.bootparams] を参照。&lt;br /&gt;
&lt;br /&gt;
起動するとシェルプロンプトが表示され、root として自動的にログインが行われます。シェルは [[Zsh]] です。高度な [http://zsh.sourceforge.net/Guide/zshguide06.html タブ補完] など、[http://grml.org/zsh/ grml の設定] の機能が使用できます。テキストファイルを編集する時は、コンソールエディタの [[nano]] を使うことが推奨されています。使い方をよく知らない場合は、[[nano#nano の使用方法]] を見て下さい。Windows とのデュアルブートをする（もしくはそうすることを計画している）場合、[[Windows と Arch のデュアルブート]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== UEFI モードでブートしているかどうかのテスト ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|将来を考えると EFI モードでインストールを行ったほうが望ましいのですが、初期の UEFI の実装には BIOS よりも大量のバグが存在しています。UEFI モードを使用する前にあなたの使用しているマザーボードのモデルについて検索をすることが推奨されます。}}&lt;br /&gt;
&lt;br /&gt;
[[Unified Extensible Firmware Interface|UEFI]] マザーボードを使用していて、UEFI ブートモードが有効になっている (そしてそれが BIOS/Legacy モードよりも優先されている) 場合、CD/USB のインストールメディアは自動で [[systemd-boot]] を使って Arch Linux カーネルを起動します。そして以下のメニューが表示されます (黒地に白字)、最初のアイテムがハイライトされます:&lt;br /&gt;
{{bc|&lt;br /&gt;
Arch Linux archiso x86_64 UEFI USB&lt;br /&gt;
UEFI Shell x86_64 v1&lt;br /&gt;
UEFI Shell x86_64 v2&lt;br /&gt;
EFI Default Loader}}&lt;br /&gt;
&lt;br /&gt;
UEFI モードで起動しているのか確認したい場合は、次を実行:&lt;br /&gt;
&lt;br /&gt;
 # efivar -l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;efivar&#039;&#039; が UEFI 変数を正しく表示したら、UEFI モードで起動されています。表示されない場合は [[Unified Extensible Firmware Interface#UEFI 変数のサポートを正しく動作させるための必要条件]] に記載されている全ての要件が満たされているか確認してください。&lt;br /&gt;
&lt;br /&gt;
=== 起動時の問題のトラブルシューティング ===&lt;br /&gt;
&lt;br /&gt;
* Intel のビデオチップセットを使用していて、ブート中にブランクスクリーン (画面が黒くなる) になった場合、おそらく Kernel Mode Setting ([[Kernel Mode Setting|KMS]]) に問題があります。回避策は、パソコンを再起動し、起動しようとしている項目 (i686 または x86_64) の上で、{{ic|Tab}} キーを押します。末尾に {{ic|nomodeset}} を追加し、{{ic|Enter}} キーを押します。または {{ic|1=video=SVIDEO-1:d}} (KMS は無効にされません) を設定します。もしくは、{{ic|i915.modeset&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;0}} を試して下さい。詳細は [[Intel Graphics|Intel]] ページを参照してください。&lt;br /&gt;
&lt;br /&gt;
* ブランクスクリーンに&#039;&#039;ならず&#039;&#039;、カーネルのロード中に固まる場合は、{{ic|Tab}} キーをメニューの項目上で押し、末尾に {{ic|1=acpi=off}} を追加し、{{ic|Enter}} キーを押します。&lt;br /&gt;
&lt;br /&gt;
== 言語の選択 ==&lt;br /&gt;
&lt;br /&gt;
{{Tip|以下の設定は必須ではありません。設定ファイルをあなたの使う言語で書いたり、Wi-Fi パスワードで区別的発音符を使ったり、もしくはあなたの言語でシステムメッセージ(例えばエラー)を見たいときだけに役に立ちます。ここでの変更はインストールプロセスに&#039;&#039;だけ&#039;&#039;適用されます。}}&lt;br /&gt;
&lt;br /&gt;
標準で、キーボードのレイアウトは {{ic|us}} に設定されています。もし、[[Wikipedia:File:KB United States-NoAltGr.svg|US]] キーボード以外のレイアウトを使用している場合は、&lt;br /&gt;
&lt;br /&gt;
 # loadkeys &#039;&#039;レイアウト名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
で変更できます。&#039;&#039;レイアウト名&#039;&#039;の部分は {{ic|jp106}}、{{ic|fr}}、{{ic|uk}}、{{ic|be-latin1}} などに置き換えます。[[コンソールでのキーボード設定#キーボードレイアウトの設定|ここ]]から一般的なレイアウトのリストを見ることができます。利用可能なキーマップを表示するには {{ic|localectl list-keymaps}} コマンドを使って下さい。&lt;br /&gt;
&lt;br /&gt;
{{Warning|以下はフォントと言語の設定ですが、この段階では、日本語を表示することはできません。}}&lt;br /&gt;
&lt;br /&gt;
フォントも変える必要があるかもしれません。ほとんどの言語は[[Wikipedia:ja:アルファベット|アルファベット]]の26字よりも多くの文字を使っているからです。さもなければ文字が□（豆腐）になったり全く異なって表示されることがあります。フォントの名前は大文字・小文字を区別するので、&#039;&#039;正確に&#039;&#039;入力してください:&lt;br /&gt;
&lt;br /&gt;
 # setfont lat9w-16&lt;br /&gt;
&lt;br /&gt;
標準では、言語は英語 (US) に設定されています。インストール中の言語を変更したい場合 &#039;&#039;(例: 日本語)&#039;&#039;、{{ic|/etc/locale.gen}} 内のあなたの設定したい[[ロケール]]の行と、英語 (US) の行から行頭の {{ic|#}} を削除します。{{ic|UTF-8}} を選択してください。&lt;br /&gt;
&lt;br /&gt;
シンプルな Nano エディタで編集するには、{{ic|nano /etc/locale.gen}} と入力してください。{{ic|Ctrl+X}} で終了し、変更を保存するか聞かれたら {{ic|Y}} と、 {{ic|Enter}} を押せば同じファイル名で上書き保存します。&lt;br /&gt;
&lt;br /&gt;
{{hc|# nano /etc/locale.gen|&lt;br /&gt;
en_US.UTF-8 UTF-8&lt;br /&gt;
ja_JP.UTF-8 UTF-8}}&lt;br /&gt;
&lt;br /&gt;
 # locale-gen&lt;br /&gt;
 # export LANG=ja_JP.UTF-8&lt;br /&gt;
&lt;br /&gt;
== インターネット接続の確立 ==&lt;br /&gt;
&lt;br /&gt;
{{Warning|[http://cgit.freedesktop.org/systemd/systemd/tree/NEWS?id&amp;amp;#61;dee4c244254bb49d1ffa8bd7171ae9cce596d2d0 v197] 以降、udev はネットワークインターフェースの名前を wlanX や ethX といった風に名づけません。あなたが他のディストリビューションを使っているなどの理由で、新しい命名規則を知らないのならば、あなたの無線インターフェースの名前が wlan0 だとか、有線インターフェースの名前が eth0 ではない可能性があることを予め覚えておいて下さい。{{ic|ip link}} コマンドでインターフェースの名前を調べることができます。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|dhcpcd}} ネットワークデーモンはブート時に自動で起動して、可能であれば有線での接続を試みます。接続できているかウェブサイトに ping をして確かめて下さい。例えば Google のサーバーに ping します:&lt;br /&gt;
&lt;br /&gt;
{{hc|# ping -c 3 www.google.com|2=&lt;br /&gt;
PING www.l.google.com (74.125.132.105) 56(84) bytes of data.&lt;br /&gt;
64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=1 ttl=50 time=17.0 ms&lt;br /&gt;
64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=2 ttl=50 time=18.2 ms&lt;br /&gt;
64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=3 ttl=50 time=16.6 ms&lt;br /&gt;
&lt;br /&gt;
--- www.l.google.com ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2003ms&lt;br /&gt;
rtt min/avg/max/mdev = 16.660/17.320/18.254/0.678 ms}}&lt;br /&gt;
&lt;br /&gt;
{{ic|ping: unknown host}} のエラーが出た場合は下に記述されている方法を試して手動で接続をセットアップする必要があります。ネットワークへの接続が問題ないようでしたら、[[#ドライブの準備|ドライブの準備]]へ進んでください。&lt;br /&gt;
&lt;br /&gt;
=== 有線 ===&lt;br /&gt;
&lt;br /&gt;
固定 IP アドレスを使用して有線の接続をセットアップする場合は次の手順に従ってください。&lt;br /&gt;
&lt;br /&gt;
あなたのイーサネットインターフェースの名前を確かめて下さい:&lt;br /&gt;
&lt;br /&gt;
{{hc|# ip link|&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT &lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
2: enp2s0f0: &amp;lt;BROADCAST,MULTICAST&amp;gt; mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000&lt;br /&gt;
    link/ether 00:11:25:31:69:20 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
3: wlp3s0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state UP mode DORMANT qlen 1000&lt;br /&gt;
    link/ether 01:02:03:04:05:06 brd ff:ff:ff:ff:ff:ff}}&lt;br /&gt;
&lt;br /&gt;
上記の例の場合、イーサネットインターフェースは {{ic|enp2s0f0}} です。よくわからない場合、あなたのイーサネットインターフェースはおそらく &amp;quot;e&amp;quot; から始まっているインターフェイスです。&amp;quot;w&amp;quot; で始まっているものや &amp;quot;lo&amp;quot; ではないということです。&lt;br /&gt;
&lt;br /&gt;
[[ネットワーク設定#固定 IP アドレス]]を見て必要な設定を確認してください。{{ic|/etc/dhcpcd.conf}} に以下のような設定を使って、dhcpcd の static プロファイルを設定します:&lt;br /&gt;
&lt;br /&gt;
 interface enp2s0f0&lt;br /&gt;
 static ip_address=192.168.0.10/24&lt;br /&gt;
 static routers=192.168.0.1&lt;br /&gt;
 static domain_name_servers=192.168.0.1 8.8.8.8&lt;br /&gt;
&lt;br /&gt;
{{ic|dhcpcd.service}} を再起動してください:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart dhcpcd.service&lt;br /&gt;
&lt;br /&gt;
これでネットワークに接続されるはずです。されない場合は、[[ネットワーク設定]]のページを見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== 無線 ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|(CD・USB スティックの) ライブ環境では、(ワイヤレスカードを使うのに必要な) ワイヤレスチップセットのファームウェアのパッケージは {{ic|/usr/lib/firmware}} の下にあらかじめインストールされていますが、再起動後にも無線を使うには、ユーザーがちゃんとパッケージをインストールする必要があります。パッケージのインストールはこのガイドの後ろで触れています。再起動する前にワイヤレスモジュール・ファームウェアを必ずインストールしてください。もし、あなたのチップセットがファームウェアのインストールを必要としているか不明な場合は[[ワイヤレス設定]]を見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
[[netctl]] の {{ic|wifi-menu}} を使いネットワークに接続します:&lt;br /&gt;
&lt;br /&gt;
 # wifi-menu&lt;br /&gt;
&lt;br /&gt;
コンピュータに接続されている Wi-Fi デバイスが一つしかない (ノートパソコンなど) 場合は wifi ネットワークのメニューが表示されます。&lt;br /&gt;
&lt;br /&gt;
コンピュータに複数の Wi-Fi デバイスが存在するときは、そのどれか一つを選択して &#039;&#039;wifi-menu&#039;&#039; にインターフェイスの名前を指定する必要があります。まず、インターフェイスの名前を確かめて下さい:&lt;br /&gt;
&lt;br /&gt;
{{hc|# iw dev|2=&lt;br /&gt;
phy#0&lt;br /&gt;
        Interface wlp3s0&lt;br /&gt;
                ifindex 3&lt;br /&gt;
                wdev 0x1&lt;br /&gt;
                addr 00:11:22:33:44:55&lt;br /&gt;
                type managed&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
上の例では、{{ic|wlp3s0}} が有効なワイヤレスインターフェースです。どれかわからないときは、おそらく &amp;quot;w&amp;quot; から始まるのがあなたのワイヤレスインターフェースです。&amp;quot;lo&amp;quot; や &amp;quot;e&amp;quot; から始まるインターフェースは違います。&lt;br /&gt;
&lt;br /&gt;
インターフェイスの名前がわかったら、インターフェイスの名前を指定して &#039;&#039;wifi-menu&#039;&#039; を起動します:&lt;br /&gt;
&lt;br /&gt;
 # wifi-menu wlp3s0&lt;br /&gt;
&lt;br /&gt;
ユーザー名やパスワードの設定を必要とするネットワークを使う場合は [[WPA2 Enterprise#netctl]] にあるサンプル設定を見て下さい。&lt;br /&gt;
&lt;br /&gt;
これでネットワークは有効になるはずです。接続されないときは、下の [[#wifi-menu を使わない方法|wifi-menu を使わない方法]]や、詳しい説明が載っている[[ワイヤレス設定]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
==== wifi-menu を使わない方法 ====&lt;br /&gt;
&lt;br /&gt;
インターフェースを立ち上げます:&lt;br /&gt;
&lt;br /&gt;
 # ip link set wlp3s0 up&lt;br /&gt;
&lt;br /&gt;
インターフェイスが立ち上がっているか確認するには、次のコマンドの出力を見て下さい:&lt;br /&gt;
&lt;br /&gt;
{{hc|# ip link show wlp3s0|&lt;br /&gt;
3: wlp3s0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000&lt;br /&gt;
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|&amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt;}} の中にある {{ic|UP}} がインターフェイスが立ち上がっている印です。後ろの {{ic|state DOWN}} は違います。&lt;br /&gt;
&lt;br /&gt;
ほとんどのワイヤレスチップセットには、対応するドライバに加えて、ファームウェアが必要です。カーネルが自動で検知してロードを試みます。{{ic|SIOCSIFFLAGS: No such file or directory}} のようなエラーが出た場合、ファームウェアを手動でロードする必要があることを意味しています。必要なファームウェアがわからないときは、{{ic|dmesg}} を使いカーネルログからワイヤレスチップセットのファームウェア要求をさがします。例えば、カーネルの起動時に Intel チップセットが出力するファームウェア要求の例:&lt;br /&gt;
&lt;br /&gt;
{{hc|# dmesg &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep firmware|&lt;br /&gt;
firmware: requesting iwlwifi-5000-1.ucode}}&lt;br /&gt;
&lt;br /&gt;
なにも表示されないなら、あなたのワイヤレスチップセットにはファームウェアが要らないと判断できます。&lt;br /&gt;
&lt;br /&gt;
{{ic|iw dev wlp3s0 scan &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep SSID}} を使って利用可能なネットワークをスキャンして、それからネットワークに接続してください:&lt;br /&gt;
&lt;br /&gt;
 # wpa_supplicant -B -i wlp3s0 -c &amp;lt;(wpa_passphrase &amp;quot;&#039;&#039;ssid&#039;&#039;&amp;quot; &amp;quot;&#039;&#039;psk&#039;&#039;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;ssid&#039;&#039; はネットワークの名前に (例: &amp;quot;Linksys etc...&amp;quot;)、&#039;&#039;psk&#039;&#039; はパスワードに置き換える必要があります (ネットワークの名前とパスワードを囲っているダブルクォートは消さないで下さい, 例: ネットワークのパスワードが dog の場合、&amp;quot;dog&amp;quot; と入力)。&lt;br /&gt;
&lt;br /&gt;
最後に、インターフェースに IP アドレスを与える必要があります。手動で設定するか dhcp を使ってこれを行なって下さい:&lt;br /&gt;
 # dhcpcd wlp3s0&lt;br /&gt;
&lt;br /&gt;
上のコマンドでうまくいかない場合、以下のコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
 # echo &#039;ctrl_interface=DIR=/run/wpa_supplicant&#039; &amp;gt; /etc/wpa_supplicant.conf&lt;br /&gt;
 # wpa_passphrase &amp;lt;ssid&amp;gt; &amp;lt;passphrase&amp;gt; &amp;gt;&amp;gt; /etc/wpa_supplicant.conf&lt;br /&gt;
 # ip link set &amp;lt;interface&amp;gt; up # May not be needed, but does no harm in any case&lt;br /&gt;
 # wpa_supplicant -B -D nl80211 -c /etc/wpa_supplicant.conf -i &amp;lt;interface name&amp;gt;&lt;br /&gt;
 # dhcpcd -A &amp;lt;interface name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== アナログモデム, ISDN, PPPoE DSL ===&lt;br /&gt;
&lt;br /&gt;
xDSL・ダイアルアップ・ISDN接続については、[[モデムに直接接続]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== プロキシサーバを使う ===&lt;br /&gt;
&lt;br /&gt;
プロキシサーバを使うには、{{ic|http_proxy}}, {{ic|ftp_proxy}} 環境変数を設定しなくてはなりません。詳しい情報は[[プロキシ設定]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
== 時計を合わせる ==&lt;br /&gt;
&lt;br /&gt;
[[systemd-timesyncd]] を使ってシステムクロックを正確な時刻に合わせて下さい。起動するには:&lt;br /&gt;
 # timedatectl set-ntp true&lt;br /&gt;
&lt;br /&gt;
サービスの状態を確認したいときは {{ic|timedatectl status}} を使って下さい。&lt;br /&gt;
&lt;br /&gt;
詳しくは、[[時刻]]を参照。&lt;br /&gt;
&lt;br /&gt;
== ドライブの準備 ==&lt;br /&gt;
&lt;br /&gt;
{{Warning|&lt;br /&gt;
* パーティショニングを行うと既存のデータが消去されます。実施する前に、必要なデータはバックアップしてください。&lt;br /&gt;
* UEFI/GPT 環境でインストールした Windows とデュアルブートしたい場合、Windows を起動するのに必要な Windows の &#039;&#039;.efi&#039;&#039; ファイルが含まれている UEFI パーティションを再フォーマットしてはいけません。さらに、Arch のブートモードとパーティションの組み合わせを Windows と同一に設定する必要があります。[[Windows と Arch のデュアルブート#重要情報]]を参照。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
このステップでは、新しいシステムをインストールするためにストレージデバイスの準備を行います。詳しい情報は[[パーティショニング]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
[[LVM]], [[ディスク暗号化]], [[RAID]] などのスタックブロックデバイスを作成したい場合は、この段階で行います。USB フラッシュキーにインストールする場合は、[[USB キーに Arch Linux をインストール]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== デバイスの確認 ===&lt;br /&gt;
&lt;br /&gt;
まず新しいシステムをインストールするデバイスを確認します。次のコマンドを実行すると全てのデバイスが表示されます:&lt;br /&gt;
&lt;br /&gt;
 # lsblk&lt;br /&gt;
&lt;br /&gt;
このコマンドはシステムに接続されたデバイスとパーティションを表示しますが、Arch インストールメディアを起動するのに使われているデバイスも含まれています。したがって、どのデバイスでもインストールが行えるというわけではありません。不必要なデバイスを表示しないようにするには、以下のようにコマンドを実行します:&lt;br /&gt;
&lt;br /&gt;
 # lsblk | grep -v &amp;quot;rom\|loop\|airoot&amp;quot;&lt;br /&gt;
&lt;br /&gt;
デバイス (ハードディスク) は {{ic|sd&#039;&#039;x&#039;&#039;}} と示されます。{{ic|&#039;&#039;x&#039;&#039;}} は {{ic|a}} から始まる小文字のアルファベットで、一番目のデバイスは {{ic|sda}}、二番目のデバイスは {{ic|sdb}} と割り当てられます。既存のパーティションは {{ic|sd&#039;&#039;xY&#039;&#039;}} と示され、{{ic|&#039;&#039;Y&#039;&#039;}} は {{ic|1}} から始まる数字です。一番目のパーティションは {{ic|1}}、二番目のパーティションは {{ic|2}} と続きます。下の例では、一つのデバイスが存在し ({{ic|sda}})、一つのパーティションが使われています ({{ic|sda1}}):&lt;br /&gt;
&lt;br /&gt;
 NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 sda               8:0    0    80G  0 disk&lt;br /&gt;
 └─sda1            8:1    0    80G  0 part&lt;br /&gt;
&lt;br /&gt;
パーティションテーブル、パーティション、ファイルシステムでは {{ic|sd&#039;&#039;xY&#039;&#039;}} という名前を例として使います。あくまでこの名前は例なので、実際にコマンドを実行したりするときは、デバイスの名前とパーティションの番号を変える必要があります。コマンドをコピーしてそのまま貼り付けても動作しません。&lt;br /&gt;
&lt;br /&gt;
パーティションをそのまま変更しない場合は、[[#ファイルシステムの作成|ファイルシステムの作成]]まで進んでください。パーティショニングを行う場合は、次のセクションを読んで下さい。&lt;br /&gt;
&lt;br /&gt;
=== パーティションテーブルのタイプの選択 ===&lt;br /&gt;
&lt;br /&gt;
既に何らかの OS がインストールされているところに Arch をインストールする場合、既存のパーティションテーブルを使用します。デバイスがパーティショニングされてなかったり、現在のパーティションテーブルを変更する必要があるときは、まず使用されているパーティションテーブルを確認しなくてはなりません。&lt;br /&gt;
&lt;br /&gt;
パーティションテーブルには2種類あります:&lt;br /&gt;
&lt;br /&gt;
* [[Master Boot Record|MBR]]&lt;br /&gt;
* [[GUID Partition Table|GPT]]&lt;br /&gt;
&lt;br /&gt;
既存のパーティションテーブルは、次のコマンドを実行することで確認できます:&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sd&#039;&#039;x&#039;&#039; print&lt;br /&gt;
&lt;br /&gt;
=== パーティショニングツール ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|使用しているパーティショニングテーブルと互換性がないパーティショニングツールを使ってしまうと、テーブルが破壊されて、既存のパーティションやデータが消えてしまいます。}}&lt;br /&gt;
&lt;br /&gt;
デバイスをパーティショニングするには、使用されるパーティションテーブルにあわせて適切なツールを選ぶ必要があります。Arch のインストールメディアには複数のパーティショニングツールが入っています:&lt;br /&gt;
&lt;br /&gt;
* [[parted]]: GPT と MBR&lt;br /&gt;
* [[パーティショニング#Fdisk の使い方|fdisk]], &#039;&#039;&#039;cfdisk&#039;&#039;&#039;, &#039;&#039;&#039;sfdisk&#039;&#039;&#039;: GPT と MBR&lt;br /&gt;
* [[パーティショニング#Gdisk の使い方|gdisk]], &#039;&#039;&#039;cgdisk&#039;&#039;&#039;, &#039;&#039;&#039;sgdisk&#039;&#039;&#039;: GPT&lt;br /&gt;
&lt;br /&gt;
Arch のインストールメディアを起動する前に、他のライブ環境に付属しているパーティションツールを使って、デバイスを予めパーティショニングしておくことも可能です。初心者にとっては [[GParted]] などのグラフィカルなパーティショニングツールが使いやすいでしょう。GParted には [http://gparted.sourceforge.net/livecd.php ライブ CD] が存在し、MBR と GPT の両方のパーティションテーブルで動作します。&lt;br /&gt;
&lt;br /&gt;
==== インタラクティブモードの parted を使用する ====&lt;br /&gt;
&lt;br /&gt;
以下で示す例では BIOS/MBR と UEFI/GPT の両方で用いることができる &#039;&#039;parted&#039;&#039; を使っています。&#039;&#039;parted&#039;&#039; は&#039;&#039;インタラクティブモード&#039;&#039;で起動して、指定したデバイスに全てのパーティショニングコマンドを自動的に適用することで、不必要な繰り返しを避けます。&lt;br /&gt;
&lt;br /&gt;
デバイスの操作を開始するには、次を実行:&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sd&#039;&#039;x&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
コマンドラインプロンプトがハッシュ ({{ic|#}}) から {{ic|(parted)}} に変わります。&lt;br /&gt;
&lt;br /&gt;
利用できるコマンドのリストを表示するには、次を入力:&lt;br /&gt;
&lt;br /&gt;
 (parted) help&lt;br /&gt;
&lt;br /&gt;
パーティションの操作が完了した場合は、次のコマンドで parted を終了します:&lt;br /&gt;
&lt;br /&gt;
 (parted) quit&lt;br /&gt;
&lt;br /&gt;
終了後、コマンドラインプロンプトは {{ic|#}} に戻ります。&lt;br /&gt;
&lt;br /&gt;
=== 新しいパーティションテーブルの作成 ===&lt;br /&gt;
&lt;br /&gt;
パーティションテーブルのタイプを変更したい場合や、デバイスがまだパーティションされていない場合、パーティションテーブルの（再）作成が必要です。デバイスのパーティションテーブルの再作成はパーティションスキームを最初からやり直したい場合にも有用です。&lt;br /&gt;
&lt;br /&gt;
{{Warning|&lt;br /&gt;
* UEFI/GPT で Windows がインストールされている環境でデュアルブートをしたい場合は、パーティションテーブルを消去しないでください。パーティションテーブルを消去すると、Windows を起動するのに必要な &#039;&#039;.efi&#039;&#039; ファイルが入っている UEFI パーティションを含め、デバイス上の既存のデータが全て削除されます。&lt;br /&gt;
* MBR は BIOS 環境で使用するように作られており、GPT は UEFI と一緒に使われることが想定されています。ハードウェアと互換性がない機能や制限があるため、この組み合わせを使わないというのは初心者にはおすすめできません (例: MBR は 2 TiB 以上のデバイスを扱えません) [https://www.happyassassin.net/2014/01/25/uefi-boot-how-does-that-actually-work-then/]。何らかの理由でこの組み合わせを使いたくないという場合は、[http://mjg59.dreamwidth.org/8035.html] や [http://rodsbooks.com/gdisk/bios.html] に詳しい情報や対処方法が載っています。}}&lt;br /&gt;
&lt;br /&gt;
パーティションテーブルを（再）作成するデバイスを次のコマンドで開いてください:&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sd&#039;&#039;x&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
そして BIOS 環境の場合、MBR/msdos パーティションテーブルを新しく作成するために、次のコマンドを実行します:&lt;br /&gt;
&lt;br /&gt;
 (parted) mklabel msdos&lt;br /&gt;
&lt;br /&gt;
UEFI 環境で GPT パーティションテーブルを新しく作成するには、次のコマンドを使います:&lt;br /&gt;
&lt;br /&gt;
 (parted) mklabel gpt&lt;br /&gt;
&lt;br /&gt;
=== パーティションスキーム ===&lt;br /&gt;
&lt;br /&gt;
ディスクをいくつのパーティションに分けるか決めて、それぞれのパーティションにシステム上のディレクトリを割り振ることができます。パーティションからディレクトリへのマッピング (しばしば &#039;マウントポイント&#039; と呼ばれます) が[[パーティショニング#パーティション形態|パーティションスキーム]]になります。パーティションスキームは以下の要件を満たさなければなりません:&lt;br /&gt;
&lt;br /&gt;
* 少なくとも {{ic|/}} (&#039;&#039;root&#039;&#039;) ディレクトリのパーティションは必ず作成する必要があります。&lt;br /&gt;
* マザーボードのファームウェアインターフェイスや、選択した[[#パーティションテーブルのタイプの選択|パーティションテーブルのタイプ]]によって、また、時には選択した[[ブートローダー]]にあわせて、以下のパーティションを追加で作成する必要が出てきます:&lt;br /&gt;
** &#039;&#039;&#039;BIOS/MBR&#039;&#039;&#039;: 追加のパーティションは必要ありません。&lt;br /&gt;
** &#039;&#039;&#039;BIOS/GPT&#039;&#039;&#039;:&lt;br /&gt;
*** [[Syslinux]] を使用する場合: 追加のパーティションは必要ありません。&lt;br /&gt;
*** [[GRUB]] を使用する場合: タイプが {{ic|EF02}} で容量が 1MiB または 2MiB の [[GRUB#GUID Partition Table (GPT) 特有の手順|BIOS Boot Partition]]。&lt;br /&gt;
** &#039;&#039;&#039;UEFI/GPT&#039;&#039;&#039;: [[Unified Extensible Firmware Interface#EFI System Partition|EFI System Partition]]。&lt;br /&gt;
** &#039;&#039;&#039;UEFI/MBR&#039;&#039;&#039;: [[Unified Extensible Firmware Interface#EFI System Partition|EFI System Partition]]。&lt;br /&gt;
&lt;br /&gt;
以下の例では、新しい、連続するパーティションスキームを1つのデバイスに適用します。任意の {{ic|/boot}} や {{ic|/home}} ディレクトリのパーティションも作成しています。それぞれのディレクトリの目的については [[Arch ファイルシステム階層]]を見て下さい。{{ic|/boot}} や {{ic|/home}} などのディレクトリのパーティションを別に作成しない場合、{{ic|/}} パーティションに含まれることになります。また、[[スワップ|スワップ領域]]用のパーティションについても説明します。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;parted&#039;&#039; のインタラクティブセッションをまだ開いてない場合は、パーティションするデバイスを指定して起動してください:&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sd&#039;&#039;x&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
次のコマンドを使用してパーティションを作成します:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart &#039;&#039;part-type&#039;&#039; &#039;&#039;fs-type&#039;&#039; &#039;&#039;start&#039;&#039; &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* {{ic|&#039;&#039;part-type&#039;&#039;}} は {{ic|primary}}, {{ic|extended}}, {{ic|logical}} のうちどれか一つから選びます。MBR パーティションテーブルでのみ意味があります。&lt;br /&gt;
* {{ic|&#039;&#039;fs-type&#039;&#039;}} は [http://www.gnu.org/software/parted/manual/parted.html#mkpart マニュアル] に記載されているサポートがあるファイルシステムの中から選びます。パーティションは[[#ファイルシステムの作成|ファイルシステム作成]]でフォーマットします。&lt;br /&gt;
* {{ic|&#039;&#039;start&#039;&#039;}} はデバイスの先頭からのパーティションの開始位置です。[http://www.gnu.org/software/parted/manual/parted.html#unit 単位] をつけた数値で指定し、例えば {{ic|1M}} なら 1MiB が開始位置になります。&lt;br /&gt;
* {{ic|&#039;&#039;end&#039;&#039;}} はデバイスの先頭からのパーティションの終末位置です ({{ic|&#039;&#039;start&#039;&#039;}} から計算するわけではありません)。{{ic|&#039;&#039;start&#039;&#039;}} と同じ構文を使うことができ、例えば {{ic|100%}} と指定するとデバイスの終端を意味します (残り領域全てを使う)。&lt;br /&gt;
&lt;br /&gt;
{{Warning|パーティションは重ならないように注意してください。デバイスに未使用のスペースを残さないようにするには、それぞれのパーティションが前のパーティションの終末から開始するようにしてください。}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&#039;&#039;parted&#039;&#039; は以下のような警告を表示することがあります:&lt;br /&gt;
&lt;br /&gt;
 Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
 Ignore/Cancel?&lt;br /&gt;
&lt;br /&gt;
この表示がでたときは、[[パーティショニング#パーティションアライメント]]を見て [[GNU Parted#アライメント]] にしたがって修正してください。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|/boot}} ディレクトリを含むパーティションが起動できるようにフラグを立てるには次のコマンドを使います:&lt;br /&gt;
&lt;br /&gt;
 (parted) set &#039;&#039;partition&#039;&#039; boot on&lt;br /&gt;
&lt;br /&gt;
* {{ic|&#039;&#039;partition&#039;&#039;}} はフラグを立てるパーティションの番号に置き換えて下さい ({{ic|print}} コマンドの出力を参照しましょう)。&lt;br /&gt;
&lt;br /&gt;
==== UEFI/GPT の例 ====&lt;br /&gt;
&lt;br /&gt;
どんなふうにパーティショニングするにせよ、特別な [[Unified Extensible Firmware Interface#EFI System Partition|EFI System Partition]] が必要になります。&lt;br /&gt;
&lt;br /&gt;
{{Warning|UEFI/GPT で Windows がインストールされている環境でデュアルブートをしたい場合は、既存の UEFI パーティションを消去しないでください。このパーティションを消去すると、Windows を起動するのに必要な &#039;&#039;.efi&#039;&#039; ファイルが削除されてしまいます。}}&lt;br /&gt;
&lt;br /&gt;
新しく EFI System Partition を作成する場合は、以下のコマンドを使って下さい (推奨される容量は 512MiB です):&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart ESP fat32 1MiB 513MiB&lt;br /&gt;
 (parted) set 1 boot on&lt;br /&gt;
&lt;br /&gt;
あとのパーティションスキームはあなたが自由に決めて下さい。残りのスペースを全て使用する単一のパーティションを作るには:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 513MiB 100%&lt;br /&gt;
&lt;br /&gt;
{{ic|/}} (20GiB) と {{ic|/home}} (残り容量全てを使用) パーティションを作るには:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 513MiB 20.5GiB&lt;br /&gt;
 (parted) mkpart primary ext4 20.5GiB 100%&lt;br /&gt;
&lt;br /&gt;
{{ic|/}} (20GiB), スワップ (4GiB), {{ic|/home}} (残り容量全てを使用) パーティションを作成するには:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 513MiB 20.5GiB&lt;br /&gt;
 (parted) mkpart primary linux-swap 20.5GiB 24.5GiB&lt;br /&gt;
 (parted) mkpart primary ext4 24.5GiB 100%&lt;br /&gt;
&lt;br /&gt;
==== BIOS/MBR の例 ====&lt;br /&gt;
&lt;br /&gt;
ディスク容量を全て使用する単一のプライマリパーティションを作成するには、以下のコマンドを使用します:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 1MiB 100%&lt;br /&gt;
 (parted) set 1 boot on&lt;br /&gt;
&lt;br /&gt;
以下の例では、20GiB の {{ic|/}} パーティションを作成してから、残り容量を全て使用する {{ic|/home}} パーティションを作成します:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 1MiB 20GiB&lt;br /&gt;
 (parted) set 1 boot on&lt;br /&gt;
 (parted) mkpart primary ext4 20GiB 100%&lt;br /&gt;
&lt;br /&gt;
以下の例では {{ic|/boot}} (100MiB), {{ic|/}} (20GiB), スワップ (4GiB), {{ic|/home}} (残り容量全てを使用) パーティションを作成します:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 1MiB 100MiB&lt;br /&gt;
 (parted) set 1 boot on&lt;br /&gt;
 (parted) mkpart primary ext4 100MiB 20GiB&lt;br /&gt;
 (parted) mkpart primary linux-swap 20GiB 24GiB&lt;br /&gt;
 (parted) mkpart primary ext4 24GiB 100%&lt;br /&gt;
&lt;br /&gt;
=== ファイルシステムの作成 ===&lt;br /&gt;
&lt;br /&gt;
パーティショニングはまだ終わっていません。パーティションには[[ファイルシステム]]が必要です（ただしスワップパーティションには要りません）。インストール先のデバイスに存在するパーティションを確認するには次のコマンドを使用:&lt;br /&gt;
&lt;br /&gt;
 # lsblk /dev/sd&#039;&#039;x&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
下に書かれている注意点を除いて、基本的には {{ic|ext4}} ファイルシステムを使うことを推奨します:&lt;br /&gt;
&lt;br /&gt;
 # mkfs.ext4 /dev/sd&#039;&#039;xY&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Warning|UEFI/GPT で Windows がインストールされている環境でデュアルブートをしたい場合は、UEFI パーティションをフォーマットしないでください。フォーマットしてしまうと、Windows を起動するのに必要な &#039;&#039;.efi&#039;&#039; ファイルが入っている UEFI パーティションのデータが全て削除されます。}}&lt;br /&gt;
&lt;br /&gt;
UEFI/GPT 環境で新しく UEFI システムパーティションを作成した場合は、UEFI パーティションを {{ic|fat32}} または {{ic|vfat32}} ファイルシステムでフォーマットしてください。これを行っておかないと起動できなくなります:&lt;br /&gt;
 # mkfs.vfat -F32 /dev/sd&#039;&#039;xY&#039;&#039;&lt;br /&gt;
{{Note|BIOS/GPT 環境で [[GRUB]] を使用する場合、[[GRUB#GUID Partition Table (GPT) 特有の手順|BIOS Boot Partition]] は {{ic|/boot}} マウントポイントと関係ないので注意してください。このパーティションは GRUB によって直接使用されます。BIOS Boot Partition にファイルシステムを作成したり、マウントしたりしてはいけません。}}&lt;br /&gt;
&lt;br /&gt;
=== スワップの有効化 ===&lt;br /&gt;
&lt;br /&gt;
スワップパーティションを作成した場合は、以下のコマンドで有効化する必要があります:&lt;br /&gt;
&lt;br /&gt;
 # mkswap /dev/sd&#039;&#039;xY&#039;&#039;&lt;br /&gt;
 # swapon /dev/sd&#039;&#039;xY&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== パーティションのマウント ===&lt;br /&gt;
&lt;br /&gt;
{{Note|ここではスワップパーティションをマウントしないでください。}}&lt;br /&gt;
&lt;br /&gt;
まず最初に {{ic|/}} (root) パーティションをマウントしてください。{{ic|/boot}} や {{ic|/home}} などのディレクトリは root ファイルシステムに作成する必要があるためです。ライブ環境の {{ic|/mnt}} ディレクトリを使用して root パーティションをマウントします。他のパーティションはそこをベースにします。root パーティションの名前が {{ic|sd&#039;&#039;xR&#039;&#039;}} なら、次のコマンドを実行:&lt;br /&gt;
&lt;br /&gt;
 # mount /dev/sd&#039;&#039;xR&#039;&#039; /mnt&lt;br /&gt;
&lt;br /&gt;
{{ic|/}} パーティションをマウントしたら、他のパーティションをマウントすることができます。順番は気にしなくて結構です。手順としてはまずマウントポイントを作成し、それからパーティションをそのマウントポイントにマウントします。{{ic|/boot}} パーティションを作成していたのならば:&lt;br /&gt;
&lt;br /&gt;
 # mkdir -p /mnt/boot&lt;br /&gt;
 # mount /dev/sd&#039;&#039;xB&#039;&#039; /mnt/boot&lt;br /&gt;
&lt;br /&gt;
UEFI/GPT 環境の場合、EFI システムパーティションも {{ic|/boot}} にマウントすることを推奨します。他のマウントポイントを使いたいときは、[[EFISTUB]] の記事を見て下さい。&lt;br /&gt;
&lt;br /&gt;
{{ic|/home}} パーティションを使用する場合:&lt;br /&gt;
&lt;br /&gt;
 # mkdir -p /mnt/home&lt;br /&gt;
 # mount /dev/sd&#039;&#039;xH&#039;&#039; /mnt/home&lt;br /&gt;
&lt;br /&gt;
全てのパーティションをマウントしたら、デバイスの準備は完了で Arch をインストールできます。&lt;br /&gt;
&lt;br /&gt;
== ミラーの選択 ==&lt;br /&gt;
&lt;br /&gt;
インストールの前に、{{ic|mirrorlist}} ファイルを編集し、あなたに相応しいミラーを一番上に置きましょう。このファイルのコピーが {{ic|pacstrap}} によってインストールされ、新しいシステム上でも選択したミラーが使われます。&lt;br /&gt;
&lt;br /&gt;
{{hc|# nano /etc/pacman.d/mirrorlist|&lt;br /&gt;
##&lt;br /&gt;
## Arch Linux repository mirrorlist&lt;br /&gt;
## Sorted by mirror score from mirror status page&lt;br /&gt;
## Generated on YYYY-MM-DD&lt;br /&gt;
##&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
...}}&lt;br /&gt;
&lt;br /&gt;
* {{ic|Alt+6}} で {{ic|Server}} 行をコピー。&lt;br /&gt;
* {{ic|PageUp}} キーで上にスクロール。&lt;br /&gt;
* {{ic|Ctrl+U}} でリストの一番上にペースト。&lt;br /&gt;
* {{ic|Ctrl+X}} で終了、保存するか聞かれたら、{{ic|Y}} を押し {{ic|Enter}} で上書き保存。&lt;br /&gt;
&lt;br /&gt;
他のミラーを消去 ({{ic|Ctrl+K}} を使う) してミラーを&#039;&#039;ひとつだけに&#039;&#039;絞ることもできますが、そのミラーがオフラインになったときのことを考え、ミラーを複数使用するほうが良いでしょう。&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* [https://www.archlinux.org/mirrorlist/ Mirrorlist Generator] を使って、あなたの国の最新リストを入手できます。[[Wikipedia:Keepalive|keepalive]] が存在するため、HTTP ミラーのほうが FTP よりも速度が速いです。また FTP では、pacman はパッケージをダウンロードするごとにシグナルを送信しなくてはならないため、短い停止がはさまります。ミラーリストを作る他の方法を見るには、[[ミラー#ミラーをソートする|ミラーのソート]]と [[Reflector]] を参照してください。&lt;br /&gt;
* [https://archlinux.org/mirrors/status/ Arch Linux MirrorStatus] ではミラーの状況、たとえばネットワークエラー、データ収集エラー、最終同期時間などの様々な情報を見ることができます。}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* 将来、ミラーリストを変更したときは必ず、{{ic|pacman -Syyu}} で pacman の全てのパッケージリストを更新することを覚えておいて下さい。これは良い経験則と考えられており、問題の回避につながります。詳しくは[[ミラー]]を参照。&lt;br /&gt;
* 古いインストールメディアを使っている場合、ミラーリストが古くなっているかもしれません。そのために Arch Linux のアップデート時に問題を引き起こす可能性があります。({{Bug|22510}} を参照)。上で述べたようにして最新のミラー情報を入手するべきです。}}&lt;br /&gt;
&lt;br /&gt;
== ベースシステムのインストール ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;pacstrap&#039;&#039; スクリプトを使ってベースシステムをインストールします。インストールするパッケージを選択せず、{{Grp|base}} の全てのパッケージをインストールするときは、{{ic|-i}} スイッチを省いて下さい。[[AUR]] や [[ABS]] でパッケージをビルドするときのために、{{Grp|base-devel}} グループも必要になります。&lt;br /&gt;
&lt;br /&gt;
 # pacstrap -i /mnt base base-devel&lt;br /&gt;
&lt;br /&gt;
ライブ環境に含まれているツールの中には base グループに含まれていないものもあります ([https://projects.archlinux.org/archiso.git/tree/configs/releng/packages.both packages.both] を参照)。パッケージは後で &#039;&#039;pacman&#039;&#039; を使って[[インストール]]することもできますが、&#039;&#039;pacstrap&#039;&#039; コマンドにパッケージの名前を追加することでこの場でインストールすることもできます。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* ミラーを正しく設定しているのに、&#039;&#039;pacstrap&#039;&#039; が {{ic|error: failed retrieving file &#039;core.db&#039; from mirror... : Connection time-out}} で止まる場合は、他の[[Resolv.conf|ネームサーバ]]を設定してみてください。&lt;br /&gt;
* ベースパッケージのインストール中に PGP 鍵のインポートをリクエストされたら、鍵のダウンロードを承認して先に進んで下さい。これは古い Arch ISO を使っていると発生します。PGP 鍵を追加できないときは、次のようにして {{Pkg|archlinux-keyring}} パッケージを更新してみてください: {{ic|pacman -S archlinux-keyring}}。詳しくは [[Pacman#トラブルシューティング]] や [[Pacman-key#トラブルシューティング]] を見て下さい。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== fstab の生成 ==&lt;br /&gt;
&lt;br /&gt;
以下のコマンドで [[fstab]] ファイルを生成します。いくつか有利な点がある UUID が使われます ([[fstab#ファイルシステムの識別]] を参照)。UUID ではなくラベルを使いたいときは、{{ic|-U}} オプションを {{ic|-L}} に置き換えましょう。&lt;br /&gt;
&lt;br /&gt;
 # genfstab -U /mnt &amp;gt; /mnt/etc/fstab&lt;br /&gt;
 # cat /mnt/etc/fstab&lt;br /&gt;
&lt;br /&gt;
{{Warning|生成したあとは必ず {{ic|fstab}} の中身をチェックしましょう。&#039;&#039;genfstab&#039;&#039; や後のインストール作業中にエラーが起こっても、もう一度 &#039;&#039;genfstab&#039;&#039; を実行するのはやめてください。その場合は手動で {{ic|fstab}} ファイルを編集して下さい。}}&lt;br /&gt;
&lt;br /&gt;
最後のフィールドには起動時にチェックするパーティションの順番を設定します: ({{ic|btrfs}} 以外では) root パーティションに {{ic|1}} を使って下さい、最初にチェックされます。起動時にチェックしたい他のパーティションには {{ic|2}} を使って下さい、{{ic|0}} はチェックされません ([[fstab#フィールドの定義]] を参照)。[[btrfs]] のパーティションには全て {{ic|0}} を使う必要があります。スワップパーティションも {{ic|0}} に設定してください。&lt;br /&gt;
&lt;br /&gt;
== Chroot とベースシステムの設定 ==&lt;br /&gt;
&lt;br /&gt;
次に、[[Change Root|chroot]] を使って新しくインストールされたシステムに入ります:&lt;br /&gt;
&lt;br /&gt;
 # arch-chroot /mnt /bin/bash&lt;br /&gt;
&lt;br /&gt;
この段階では、Arch Linux ベースシステムの重要な設定ファイルを作ります。ファイルが存在していないときや、デフォルト設定を使いたくないときは、その都度ファイルを作成したり編集してください。&lt;br /&gt;
&lt;br /&gt;
正確に、手順をよく踏まえてから設定してください。システムを正しく設定するのにとても重要なステップです。&lt;br /&gt;
&lt;br /&gt;
{{Warning|ISO で使用しているツールは自動的にインストールされるわけではありません。例えば、インストールの一環としてネットワークに接続するために &#039;&#039;wifi-menu&#039;&#039; を使っている場合、インストールを完了した後も &#039;&#039;wifi-menu&#039;&#039; を使うためには、{{Pkg|dialog}} をインストールしておく必要があります。以下のセクションではそういったケースについて説明をしているので、後で困った事態にならないようにちゃんと指示に従って下さい。}}&lt;br /&gt;
&lt;br /&gt;
=== ロケール ===&lt;br /&gt;
&lt;br /&gt;
ロケールを設定することによって、{{Pkg|glibc}} やその他のロケールを使うプログラムやライブラリで、テキストのレンダリング、正しい通貨単位の表示、時間と月日のフォーマット、アルファベットの特有表現、地域特有の単位の表示などができるようになります。&lt;br /&gt;
&lt;br /&gt;
2つのファイルを編集する必要があります: 使用可能なロケールを記述する {{ic|locale.gen}} と実際に使用するロケールを定義する {{ic|locale.conf}}。&lt;br /&gt;
&lt;br /&gt;
{{ic|locale.gen}} ファイルはデフォルトでは全てコメントアウト ({{ic|#}} で無効化) されています。{{ic|en_US.UTF-8 UTF-8}} の行と、必要なロケールをアンコメント (行の前の {{ic|#}} を削除) してください。選択肢がいくつかある場合 {{ic|UTF-8}} を推奨します。&lt;br /&gt;
&lt;br /&gt;
{{hc|# nano /etc/locale.gen|&lt;br /&gt;
...&lt;br /&gt;
#en_SG ISO-8859-1&lt;br /&gt;
en_US.UTF-8 UTF-8&lt;br /&gt;
#en_US ISO-8859-1&lt;br /&gt;
...&lt;br /&gt;
#ja_JP.EUC-JP EUC-JP&lt;br /&gt;
ja_JP.UTF-8 UTF-8&lt;br /&gt;
#ka_GE.UTF-8 UTF-8&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
ロケールは有効にする前に、&#039;&#039;生成&#039;&#039;する必要があります:&lt;br /&gt;
&lt;br /&gt;
 # locale-gen&lt;br /&gt;
&lt;br /&gt;
{{ic|locale.conf}} ファイルはデフォルトで存在しません。ファイルを作成して、他の全ての変数のデフォルト値として扱われる {{ic|LANG}} のみ設定してください。{{ic|LANG}} 変数に指定するロケールは {{ic|/etc/locale.gen}} でアンコメントされている必要があります:&lt;br /&gt;
&lt;br /&gt;
 # echo LANG=&#039;&#039;en_US.UTF-8&#039;&#039; &amp;gt; /etc/locale.conf&lt;br /&gt;
&lt;br /&gt;
ロケールを export してください:&lt;br /&gt;
&lt;br /&gt;
 # export LANG=&#039;&#039;en_US.UTF-8&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* この段階でロケールを日本語に設定してしまうと、日本語を表示するためのフォントなどの環境が整っていないため、コンソールの出力が文字化けして判読できなくなってしまいます。GUI 環境を設定してから、以下を実行することで言語を日本語に設定できます:&lt;br /&gt;
 # echo LANG&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&#039;&#039;ja_JP.UTF-8&#039;&#039; &amp;gt; /etc/locale.conf&lt;br /&gt;
 # export LANG&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&#039;&#039;ja_JP.UTF-8&#039;&#039;&lt;br /&gt;
* システム全体のロケールを {{ic|en_US.UTF-8}} に設定してシステムログを英語で保存するとトラブルシューティングが楽になります。この設定は[[ロケール#ユーザーごとにロケールを設定]]で書かれているようにしてユーザー個別で上書きできます。&lt;br /&gt;
* 他の {{ic|LC_*}} 変数を使いたいときは、まず {{ic|locale}} を実行してオプションを確認してから、{{ic|locale.conf}} に追加してください。{{ic|LC_ALL}} 変数を使うことは推奨されません。詳しくは[[ロケール]]を参照してください。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== コンソールフォントとキーマップ ===&lt;br /&gt;
&lt;br /&gt;
[[#言語の選択|言語の選択]]でデフォルトのキーマップとフォントを変更していた場合、再起動後もキーマップ設定が適用されるように、{{ic|/etc/vconsole.conf}} を編集 (ファイルがなかったら作成) してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|# nano /etc/vconsole.conf|2=&lt;br /&gt;
KEYMAP=&#039;&#039;jp106&#039;&#039;&lt;br /&gt;
FONT=&#039;&#039;lat9w-16&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
詳しくは[[フォント#コンソールフォント|コンソールフォント]]や {{ic|man vconsole.conf}} を参照。&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|KEYMAP}} を最初に &#039;&#039;loadkeys&#039;&#039; で設定した値と異なる値に設定してから、[[#root パスワードの設定|root パスワードを設定]]してしまうと、新しいシステムにログインするときにキーマップが変わっていてログインできなくなる可能性があります。}}&lt;br /&gt;
&lt;br /&gt;
以上の設定は仮想端末においてのみ適用されます。[[Xorg]] ではまた異なる設定をする必要があります。詳しくは[[フォント#コンソールフォント]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== タイムゾーン ===&lt;br /&gt;
&lt;br /&gt;
利用可能なタイムゾーンとサブゾーンは {{ic|/usr/share/zoneinfo/&#039;&#039;ゾーン&#039;&#039;/&#039;&#039;サブゾーン&#039;&#039;}} ディレクトリで見つかります。{{ic|ls}} コマンドでゾーンの一覧を表示できます:&lt;br /&gt;
 $ ls -l /usr/share/zoneinfo&lt;br /&gt;
&lt;br /&gt;
{{Tip|[http://tldp.org/LDP/abs/html/tabexpansion.html タブ補完] を使うことでも利用できるゾーンとサブゾーンを表示できます。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/localtime}} から適切なゾーンファイル {{ic|/usr/share/zoneinfo/&#039;&#039;ゾーン&#039;&#039;/&#039;&#039;サブゾーン&#039;&#039;}} へのシンボリックリンクを作って下さい:&lt;br /&gt;
&lt;br /&gt;
 # ln -s /usr/share/zoneinfo/&#039;&#039;ゾーン&#039;&#039;/&#039;&#039;サブゾーン&#039;&#039; /etc/localtime&lt;br /&gt;
&lt;br /&gt;
例:&lt;br /&gt;
&lt;br /&gt;
 # ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime&lt;br /&gt;
&lt;br /&gt;
{{ic|ln: failed to create symbolic link &#039;/etc/localtime&#039;: File exists}} と表示される場合は、{{ic|ls -l /etc/localtime}} で既存のファイルを確認してから、&#039;&#039;ln&#039;&#039; コマンドに {{ic|-f}} オプションを追加して上書きしてください。&lt;br /&gt;
&lt;br /&gt;
=== ハードウェアクロック ===&lt;br /&gt;
&lt;br /&gt;
ハードウェアクロックモードを全ての OS で同じになるように設定します。さもないと、ハードウェアクロックが上書きされ時刻がずれてしまう可能性があります。&#039;&#039;hwclock&#039;&#039; コマンドは {{ic|/etc/adjtime}} ファイルを生成します。[[Wikipedia:ja:協定世界時|UTC]] に設定するには、次を実行:&lt;br /&gt;
&lt;br /&gt;
 # hwclock --systohc --utc&lt;br /&gt;
&lt;br /&gt;
{{Note|ハードウェアクロックに [[Wikipedia:ja:協定世界時|UTC]] を使ったからといって、ソフトウェアが時刻を UTC で表示するわけではありません。}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|Windows はデフォルトで &#039;&#039;localtime&#039;&#039; を使っています。Arch で &#039;&#039;localtime&#039;&#039; を使用すると既知の問題や容易に修復できないバグを引き起こす可能性があります。しかしながら、&#039;&#039;localtime&#039;&#039; のサポートを終了する計画はありません。&#039;&#039;localtime&#039;&#039; を使用する場合は、root で {{ic|hwclock --systohc --localtime}} を実行してください。Windows 7 以降を使用する場合、Arch を &#039;&#039;localtime&#039;&#039; に設定するのではなく、Windows に UTC を使わせて、Windows の時刻同期を無効にすることが推奨されています。詳しくは[[時刻#Windows で UTC を使う]]を見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
=== カーネルモジュール ===&lt;br /&gt;
&lt;br /&gt;
必要なカーネルモジュールは基本的に [[udev]] によって自動ロードされるため、手動でモジュールをロードする必要があるのは稀です。詳しくは[[カーネルモジュール]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== ホスト名 ===&lt;br /&gt;
&lt;br /&gt;
お好きな名前を[[Wikipedia:ja:ホスト名|ホスト名]]に設定してください (例: &#039;&#039;arch&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
 # echo &#039;&#039;ホスト名&#039;&#039; &amp;gt; /etc/hostname&lt;br /&gt;
&lt;br /&gt;
同じホスト名を {{ic|/etc/hosts}} に追加します:&lt;br /&gt;
&lt;br /&gt;
 #&amp;lt;ip-address&amp;gt; &amp;lt;hostname.domain.org&amp;gt; &amp;lt;hostname&amp;gt;&lt;br /&gt;
 127.0.0.1 localhost.localdomain localhost &#039;&#039;ホスト名&#039;&#039;&lt;br /&gt;
 ::1   localhost.localdomain localhost &#039;&#039;ホスト名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== ネットワークの設定 ===&lt;br /&gt;
&lt;br /&gt;
ネットワークの設定をもう一度行います。今回は新しくインストールされる環境のネットワーク設定です。[[#インターネット接続の確立|上で説明した]]のと方法はほとんど同じですが、今回の設定では、設定が消えないように、ブート時に自動的に起動するように設定します。&lt;br /&gt;
&lt;br /&gt;
まず最初に、{{ic|ip link}} で接続を設定するネットワークインターフェイスの名前を確認してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* ネットワーク設定の詳しい情報は、[[ネットワーク設定]]や[[ワイヤレス設定]]を参照してください。&lt;br /&gt;
* インターフェースについて古い命名規則 ({{ic|eth&#039;&#039;X&#039;&#039;}} や {{ic|wlan&#039;&#039;X&#039;&#039;}}) を使って欲しい時は {{ic|/etc/udev/rules.d/80-net-setup-link.rules}} に空のファイルを作成してください。これによって {{ic|/usr/lib/udev/rules.d}} 下の同じ名前のファイルがマスクされます (空のファイルを使う代わりに、{{ic|/dev/null}} へのシンボリックリンクを使うことでも命名規則を戻せます: {{ic|# ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules}})。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== 有線 ====&lt;br /&gt;
&lt;br /&gt;
===== 動的 IP =====&lt;br /&gt;
&lt;br /&gt;
; dhcpcd を使う&lt;br /&gt;
&lt;br /&gt;
固定された有線ネットワーク接続が1つだけあるという環境の場合、ネットワーク管理サービスを使う必要はなく、単純に {{ic|dhcpcd}} サービスを有効にするだけで足ります:&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable dhcpcd@&#039;&#039;インターフェイス名&#039;&#039;.service&lt;br /&gt;
&lt;br /&gt;
; netctl を使う&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/netctl/examples}} からサンプルプロファイルを {{ic|/etc/netctl/}} にコピーしてください:&lt;br /&gt;
&lt;br /&gt;
 # cd /etc/netctl&lt;br /&gt;
 # cp examples/ethernet-dhcp my_network&lt;br /&gt;
&lt;br /&gt;
プロファイルを編集して下さい ({{ic|Interface}} を {{ic|eth0}} から {{ic|ip link}} を実行したときに確認したインターフェイス名に修正する):&lt;br /&gt;
&lt;br /&gt;
 # nano my_network&lt;br /&gt;
&lt;br /&gt;
{{ic|my_network}} プロファイルを有効にしてください:&lt;br /&gt;
&lt;br /&gt;
 # netctl enable my_network&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|Running in chroot, ignoring request.}} というメッセージが表示されることがありますが、いまのところは無視してかまいません。}}&lt;br /&gt;
&lt;br /&gt;
; netctl-ifplugd を使う&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|netctl enable &#039;&#039;プロファイル名&#039;&#039;}} のようにしてプロファイルを有効にする方法と netctl-ifplugd を使う方法を一緒に用いることはできません。}}&lt;br /&gt;
&lt;br /&gt;
{{Pkg|netctl}} の {{ic|netctl-ifplugd}} を使って動的に接続を管理することもできます。&lt;br /&gt;
&lt;br /&gt;
まず {{Pkg|ifplugd}} をインストールしてください、{{ic|netctl-ifplugd}} を使うために必要なパッケージです:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S ifplugd&lt;br /&gt;
&lt;br /&gt;
そしてサービスを有効にしてください:&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable netctl-ifplugd@&#039;&#039;インターフェイス名&#039;&#039;.service&lt;br /&gt;
&lt;br /&gt;
{{Note|[[netctl]] には {{ic|netctl-auto}} もあり、{{ic|netctl-ifplugd}} と一緒に無線プロファイルを管理するのに使うことができます。}}&lt;br /&gt;
&lt;br /&gt;
===== 固定 IP =====&lt;br /&gt;
&lt;br /&gt;
; netctl を使う&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/network.d/examples}} から {{ic|/etc/netctl}} にサンプルプロファイルをコピーします:&lt;br /&gt;
&lt;br /&gt;
 # cd /etc/netctl&lt;br /&gt;
 # cp examples/ethernet-static my_network&lt;br /&gt;
&lt;br /&gt;
必要に応じてプロファイルを編集 ({{ic|Interface}}, {{ic|Address}}, {{ic|Gateway}}, {{ic|DNS}} を修正):&lt;br /&gt;
&lt;br /&gt;
 # nano my_network&lt;br /&gt;
&lt;br /&gt;
{{ic|Address}} の中の {{ic|/24}} は {{ic|255.255.255.0}} ネットマスクの [[wikipedia:Classless Inter-Domain Routing#CIDR notation|CIDR notation]] です。&lt;br /&gt;
&lt;br /&gt;
そして作成したプロファイルを有効にしてください:&lt;br /&gt;
&lt;br /&gt;
 # netctl enable my_network&lt;br /&gt;
&lt;br /&gt;
; systemd-networkd を使う&lt;br /&gt;
&lt;br /&gt;
[[systemd-networkd]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==== 無線 ====&lt;br /&gt;
&lt;br /&gt;
{{Note|あなたの使っているワイヤレスアダプタにファームウェアが必要な場合 (上の[[#インターネット接続の確立|インターネット接続の確立]]セクションと[[ワイヤレス設定#ドライバとファームウェア|ここ]]に記述あり)、ファームウェアを含んだパッケージをインストールしてください。ほとんどの場合、{{Pkg|linux-firmware}} パッケージに必要なファームウェアが含まれていますが、機器によっては個別のパッケージにファームウェアが存在します。例えば: {{ic|# pacman -S zd1211-firmware}}。詳しくは[[ワイヤレス設定]]を見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
ネットワークに接続するために {{pkg|iw}} と {{pkg|wpa_supplicant}} をインストールしてください:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S iw wpa_supplicant&lt;br /&gt;
&lt;br /&gt;
===== 無線ネットワークの追加 =====&lt;br /&gt;
; wifi-menu を使う&lt;br /&gt;
&lt;br /&gt;
{{ic|wifi-menu}} に必要な {{pkg|dialog}} をインストールしてください:&lt;br /&gt;
 # pacman -S dialog&lt;br /&gt;
&lt;br /&gt;
このインストールと再起動が終わった後 {{ic|wifi-menu &#039;&#039;インターフェイス名&#039;&#039;}} ({{ic|&#039;&#039;インターフェイス名&#039;&#039;}} はあなたの無線インターフェースに置き換えてください) でネットワークに接続することができます。&lt;br /&gt;
&lt;br /&gt;
 # wifi-menu &#039;&#039;インターフェイス名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|wifi-menu}} を使う時は、絶対に chroot を終了して再起動した&#039;&#039;後&#039;&#039;にしてください。このコマンドを使って作成されたものが chroot の外で動作させているものと衝突してしまう恐れがあるからです。また、上で書かれているようにテンプレートを使って手動でネットワークプロファイルを設定することもできます、その場合は {{ic|wifi-menu}} を使うことについての心配はいりません。}}&lt;br /&gt;
&lt;br /&gt;
; 手動の netctl プロファイルを使う&lt;br /&gt;
&lt;br /&gt;
ネットワークプロファイルを {{ic|/etc/netctl/examples}} から {{ic|/etc/netctl}} にコピーしてください:&lt;br /&gt;
&lt;br /&gt;
 # cd /etc/netctl&lt;br /&gt;
 # cp examples/wireless-wpa my_network&lt;br /&gt;
&lt;br /&gt;
接続するネットワークにあわせてプロファイルを編集してください ({{ic|Interface}}, {{ic|ESSID}}, {{ic|Key}} を修正):&lt;br /&gt;
&lt;br /&gt;
 # nano my_network&lt;br /&gt;
&lt;br /&gt;
作成したプロファイルがブート毎に実行されるよう有効にしてください:&lt;br /&gt;
&lt;br /&gt;
 # netctl enable my_network&lt;br /&gt;
&lt;br /&gt;
===== 既知のネットワークに自動で接続する =====&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|netctl enable &#039;&#039;プロファイル名&#039;&#039;}} のようにしてプロファイルを有効にする方法とこの方法を一緒に使うことはできません。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|netctl-auto}} に必要な {{Pkg|wpa_actiond}} をインストールしてください:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S wpa_actiond&lt;br /&gt;
&lt;br /&gt;
{{ic|netctl-auto}} サービスを有効にすれば、既知のネットワークに接続しローミングや切断を管理します:&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable netctl-auto@&#039;&#039;インターフェイス名&#039;&#039;.service&lt;br /&gt;
&lt;br /&gt;
{{Note|[[netctl]] には {{ic|netctl-ifplugd}} もあり、{{ic|netctl-auto}} と一緒に有線プロファイルを管理するのに使われます。}}&lt;br /&gt;
&lt;br /&gt;
==== xDSL (PPPoE), アナログモデム, ISDN ====&lt;br /&gt;
&lt;br /&gt;
xDSL、ダイアルアップ・ISDN 接続は、[[モデムに直接接続]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== Initial ramdisk 環境の作成 ===&lt;br /&gt;
&lt;br /&gt;
{{Tip|ほとんどのユーザーはこの手順をスキップし、{{ic|mkinitcpio.conf}} のデフォルト設定を使って問題ありません。initramfs イメージ ({{ic|/boot}} フォルダ内) は {{ic|pacstrap}} によって {{Pkg|linux}} パッケージ (Linux カーネル) をインストールしたときに、{{ic|mkinitcpio.conf}} に基づいて既に生成されています。}}&lt;br /&gt;
&lt;br /&gt;
root が USB ドライブにあったり、RAID や LVM を使っていたり、{{ic|/usr}} が分割されたパーティション上にある場合は、ここで正しい [[Mkinitcpio#HOOKS|hooks]] を設定しなくてはなりません。&lt;br /&gt;
&lt;br /&gt;
必要に応じて {{ic|/etc/mkinitcpio.conf}} を編集し、initramfs イメージを再形成します:&lt;br /&gt;
&lt;br /&gt;
 # mkinitcpio -p linux&lt;br /&gt;
&lt;br /&gt;
=== root パスワードの設定 ===&lt;br /&gt;
&lt;br /&gt;
root パスワードを設定します:&lt;br /&gt;
&lt;br /&gt;
 # passwd&lt;br /&gt;
&lt;br /&gt;
=== ブートローダのインストールと設定 ===&lt;br /&gt;
&lt;br /&gt;
Intel の CPU を使っている場合、{{Pkg|intel-ucode}} パッケージをインストールして[[マイクロコード#Intel のマイクロコードのアップデートを有効にする|マイクロコードのアップデートを有効化]]してください。&lt;br /&gt;
&lt;br /&gt;
==== BIOS マザーボードの場合 ====&lt;br /&gt;
&lt;br /&gt;
BIOS システムでは、複数のブートローダが使えます。ブートローダの完全なリストは[[ブートローダー]]にあります。あなたの都合に合わせてどれか一つを選んで下さい。よく使われるブートローダーは:&lt;br /&gt;
&lt;br /&gt;
* [[Syslinux]] は現在 Syslinux がインストールされたパーティションのファイルのみをロードするように制限されています。設定ファイルはわかりやすいものになっています。設定サンプルは [[Syslinux#サンプル|Syslinux]] の記事にあります。&lt;br /&gt;
&lt;br /&gt;
* [[GRUB]] はより多くの機能を備えた複雑なブートローダです。設定ファイルはスクリプト言語 (sh) に似ていて、初心者が手動で設定するには難しいかもしれません。自動で設定を生成するのが推奨されます。&lt;br /&gt;
&lt;br /&gt;
ここからは、GRUB と MBR の組み合わせでのインストールを説明します。まず {{Pkg|grub}} パッケージをインストールします。GRUB が他のオペレーティングシステムも検索できるように、{{Pkg|os-prober}} もインストールしておきます:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S grub os-prober&lt;br /&gt;
&lt;br /&gt;
{{ic|grub-install}} を実行してブートローダをインストールしてください:&lt;br /&gt;
&lt;br /&gt;
 # grub-install --recheck &#039;&#039;/dev/sda&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* {{ic|/dev/sda}} はあなたが Arch をインストールしたドライブに書き換えてください。パーティション番号を加えてはいけません ({{ic|sda&#039;&#039;X&#039;&#039;}} を使ってはいけません)。&lt;br /&gt;
* サンプルの {{ic|/boot/grub/grub.cfg}} は grub パッケージの一部としてインストールされ、後の {{ic|grub-*}} コマンドでは上書きされません。変更を加えるときは {{ic|grub.cfg.new}} などのファイルではなく {{ic|grub.cfg}} を編集してください。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
次に {{ic|grub.cfg}} を作ります。手動で作る方が細かい設定ができますが、初心者は自動で生成するのが推奨されています:&lt;br /&gt;
&lt;br /&gt;
 # grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
GRUB の使用・設定の詳しい情報は、[[GRUB]] を参照。&lt;br /&gt;
&lt;br /&gt;
==== UEFI マザーボードの場合 ====&lt;br /&gt;
&lt;br /&gt;
{{Note|UEFI ファームウェアによってはインストールしたブートローダーの {{ic|.efi}} ブータブルスタブを特定の名前で特定の場所に配置する必要があります: {{ic|$esp/EFI/boot/bootx64.efi}} ({{ic|$esp}} は EFI System Partition のマウントポイントに置き換えて下さい)。これをしていないと場合によっては、インストールした環境を起動できなくなることがあります。詳しくはそれぞれのブートローダーのセクションを見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
UEFI システムでも、複数のブートローダが使えます。利用できるブートローダの完全なリストは[[ブートローダー]]にあります。あなたの都合にあわせて選んで下さい。ここでは、2つのブートローダを例として提示します:&lt;br /&gt;
&lt;br /&gt;
* [[systemd-boot]] は最小主義の UEFI ブートマネージャで、[[EFISTUB]] カーネルや他の UEFI アプリケーションのためのメニューを提供します。初心者、特に Windows 8 などの別のオペレーティングシステムとデュアルブートをしたいユーザーに推奨です。&lt;br /&gt;
* [[GRUB]] は完全なブートローダーで、systemd-boot で問題が起きた時に役に立ちます。&lt;br /&gt;
&lt;br /&gt;
ここからは systemd-boot のインストールを説明します。まず、インストール後に EFI System Partition を操作するための {{Pkg|dosfstools}} パッケージをインストールしてください:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S dosfstools&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* UEFI でブートするには、ドライブは GPT でパーティションされている必要があり、[[Unified Extensible Firmware Interface#EFI System Partition|EFI System Partition]] (512 MiB 以上, FAT32, gdisk タイプ {{ic|EF00}}) が存在しなければなりません。このガイドを初めから実行しているのなら、すでに全て行われているはずです。&lt;br /&gt;
* systemd-boot が自動的にアップデートされるように EFI System Partition は {{ic|/boot}} にマウントすることを強く推奨します。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
自動インストールスクリプトを実行してブートローダを EFI System Partition にインストールしてください ({{ic|$esp}} は EFI System Partiton の場所に置き換えて下さい、通常は {{ic|/boot}} です):&lt;br /&gt;
&lt;br /&gt;
 # bootctl --path=&#039;&#039;$esp&#039;&#039; install&lt;br /&gt;
&lt;br /&gt;
Bootctl はファームウェアによって自動で検出され、{{ic|bootx64.efi}} ブータブルスタブが {{ic|$esp/EFI/boot}} にあることを必要とします。そして {{ic|.efi}} スタブを使ってインストールされている別のオペレーティングシステムを自動で検出します。ただし、bootctl の設定ファイルは手動で作成する必要があります。&lt;br /&gt;
&lt;br /&gt;
まず、{{ic|&#039;&#039;$esp&#039;&#039;/loader/entries/arch.conf}} を作成して以下を記述します、{{ic|/dev/sdaX}} は &#039;&#039;root&#039;&#039; パーティションに置き換えて下さい (例: {{ic|/dev/sda2}}):&lt;br /&gt;
{{hc|# nano &#039;&#039;$esp&#039;&#039;/loader/entries/arch.conf|2=&lt;br /&gt;
title          Arch Linux&lt;br /&gt;
linux          /vmlinuz-linux&lt;br /&gt;
initrd         /initramfs-linux.img&lt;br /&gt;
options        root=&#039;&#039;&#039;/dev/sdaX&#039;&#039;&#039; rw&lt;br /&gt;
}}&lt;br /&gt;
次に、{{ic|&#039;&#039;$esp&#039;&#039;/loader/loader.conf}} を作成して以下を記述します、timeout の値は自由に変更できます (秒数):&lt;br /&gt;
{{hc|# nano &#039;&#039;$esp&#039;&#039;/loader/loader.conf|2=&lt;br /&gt;
default  arch&lt;br /&gt;
timeout  5&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
詳しい情報は [[systemd-boot]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
== パーティションのアンマウントと再起動 ==&lt;br /&gt;
&lt;br /&gt;
chroot 環境を脱出します:&lt;br /&gt;
&lt;br /&gt;
 # exit&lt;br /&gt;
&lt;br /&gt;
{{Note|パーティションは &#039;&#039;systemd&#039;&#039; によってシャットダウン時に自動的にアンマウントされますが、安全対策として {{ic|umount -R /mnt}} を使って手動でアンマウントすることもできます。パーティションがビジー状態の場合、[[Wikipedia:fuser_(Unix)|fuser]] で原因を特定できます。}}&lt;br /&gt;
&lt;br /&gt;
コンピュータを再起動:&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
{{Tip|インストールメディアを取り出してください、そうしないともう一度セットアップが起動してしまいます。マシンにログインするときはユーザー &amp;quot;root&amp;quot; と前に passwd コマンドで設定したパスワードを使います。デフォルトのパスワードは &amp;quot;root&amp;quot; です。}}&lt;br /&gt;
&lt;br /&gt;
== インストールのその先 ==&lt;br /&gt;
&lt;br /&gt;
あなたの新しい Arch Linux ベースシステムは今、あなたの目的や希望のために必要な全てを入れる準備ができた GNU/Linux になっています。ここからは[[一般的な推奨事項]]のページを見ることを推奨します。特に最初の2つのセクションは必読です。また、他のセクションには、グラフィカルユーザーインターフェイス (GUI) やサウンド、タッチパッドの設定などのチュートリアルが書かれたページヘのリンクが載っています。&lt;br /&gt;
&lt;br /&gt;
あなたの興味を引くであろうアプリケーションの一覧は、[[アプリケーション一覧]]を参照。&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%83%93%E3%82%AE%E3%83%8A%E3%83%BC%E3%82%BA%E3%82%AC%E3%82%A4%E3%83%89&amp;diff=4573</id>
		<title>ビギナーズガイド</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%83%93%E3%82%AE%E3%83%8A%E3%83%BC%E3%82%BA%E3%82%AC%E3%82%A4%E3%83%89&amp;diff=4573"/>
		<updated>2015-12-28T21:05:26Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: /* パーティショニングツール */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Arch の入手とインストール]]&lt;br /&gt;
[[Category:Arch について]]&lt;br /&gt;
[[ar:Beginners&#039; guide]]&lt;br /&gt;
[[bg:Beginners&#039; guide]]&lt;br /&gt;
[[cs:Beginners&#039; guide]]&lt;br /&gt;
[[da:Beginners&#039; guide]]&lt;br /&gt;
[[de:Anleitung für Einsteiger]]&lt;br /&gt;
[[el:Beginners&#039; guide]]&lt;br /&gt;
[[en:Beginners&#039; guide]]&lt;br /&gt;
[[es:Beginners&#039; guide]]&lt;br /&gt;
[[fa:راهنمای_تازه‌کاران]]&lt;br /&gt;
[[fr:Installation]]&lt;br /&gt;
[[he:Beginners&#039; guide]]&lt;br /&gt;
[[hr:Beginners&#039; guide]]&lt;br /&gt;
[[hu:Beginners&#039; guide]]&lt;br /&gt;
[[id:Beginners&#039; guide]]&lt;br /&gt;
[[it:Beginners&#039; guide]]&lt;br /&gt;
[[ko:Beginners&#039; guide]]&lt;br /&gt;
[[lt:Beginners&#039; guide]]&lt;br /&gt;
[[nl:Beginners&#039; guide]]&lt;br /&gt;
[[pl:Beginners&#039; guide]]&lt;br /&gt;
[[pt:Beginners&#039; guide]]&lt;br /&gt;
[[ro:Ghidul începătorilor]]&lt;br /&gt;
[[ru:Beginners&#039; guide]]&lt;br /&gt;
[[sk:Beginners&#039; guide]]&lt;br /&gt;
[[sr:Beginners&#039; guide]]&lt;br /&gt;
[[sv:Nybörjarguiden]]&lt;br /&gt;
[[tr:Yeni başlayanlar rehberi]]&lt;br /&gt;
[[uk:Beginners&#039; guide]]&lt;br /&gt;
[[zh-cn:Beginners&#039; guide]]&lt;br /&gt;
[[zh-tw:Beginners&#039; guide]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|:カテゴリ:アクセシビリティ}}&lt;br /&gt;
{{Related|インストールガイド}}&lt;br /&gt;
{{Related|ディスクレスシステム}}&lt;br /&gt;
{{Related|SSH からインストール}}&lt;br /&gt;
{{Related|一般的な推奨事項}}&lt;br /&gt;
{{Related|一般的なトラブルシューティング}}&lt;br /&gt;
{{Related|ブートデバッグ}}&lt;br /&gt;
{{Related|pacman#トラブルシューティング}}&lt;br /&gt;
{{Related|pacman-key#トラブルシューティング}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&amp;lt;!-- Include the different sub pages --&amp;gt;&lt;br /&gt;
この文章では [https://projects.archlinux.org/arch-install-scripts.git/ Arch Install Scripts] を使って [[Arch Linux]] をインストールする方法を解説します。インストールする前に、[[FAQ]] を一読することをおすすめします。&lt;br /&gt;
&lt;br /&gt;
コミュニティによって管理されている [[メインページ|ArchWiki]] は有用な資料であり、問題が発生したらまず wiki を読んでみましょう。wiki で答えが見つからないときは、[https://archlinuxjp-slack.herokuapp.com/ Slack] や [https://bbs.archlinuxjp.org/ フォーラム] を使って下さい。また、[[The Arch Way|Arch Way]] に従って、知らないコマンドの {{ic|man}} ページを見るようにしましょう。{{ic|man &#039;&#039;コマンド&#039;&#039;}} で見ることができます。&lt;br /&gt;
&lt;br /&gt;
== 動作環境 ==&lt;br /&gt;
&lt;br /&gt;
Arch Linux は i686 互換の、最低 256MB の RAM を積んだマシンで動作します。また、基本的なインストールに必要な {{Grp|base}} グループに含まれる全てのパッケージをインストールするには約 800MB のディスク容量が必要です。使える容量が少ない場合、この数値をかなり切り詰めることが可能ですが、どうやるかは調べる必要があります。&lt;br /&gt;
&lt;br /&gt;
== 最新のインストールメディアを準備する ==&lt;br /&gt;
&lt;br /&gt;
Arch の公式インストールメディアは[https://www.archlinuxjp.org/download/ ダウンロードページ]から入手できます。ひとつの ISO で32ビットと64ビット両方のアーキテクチャをサポートしています。出来るだけ一番新しい ISO を使って下さい。&lt;br /&gt;
&lt;br /&gt;
インストールイメージには署名がされており、使用する前に署名を検証するのが推奨されています (特に HTTP ミラーからダウンロードした場合)。[[GnuPG]] をインストールした環境で、ダウンロードした &#039;&#039;PGP 署名&#039;&#039;を ISO のディレクトリに配置して、次を実行してください:&lt;br /&gt;
 $ gpg --verify archlinux-&amp;lt;version&amp;gt;-dual.iso.sig&lt;br /&gt;
公開鍵が見つからない場合、{{ic|gpg --recv-keys &#039;&#039;key-id&#039;&#039;}} で[[GnuPG#鍵のインポート|インポート]]できます [http://sparewotw.wordpress.com/2012/10/31/how-to-verify-signature-using-sig-file/]。もしくは、既存の Arch Linux 環境から次を実行:&lt;br /&gt;
 $ pacman-key -v archlinux-&amp;lt;version&amp;gt;-dual.iso.sig&lt;br /&gt;
{{ic|md5}} と {{ic|sha1}} チェックサムはそれぞれ &#039;&#039;md5sum&#039;&#039; と &#039;&#039;sha256sum&#039;&#039; でチェックできます。&lt;br /&gt;
&lt;br /&gt;
=== USB と光学ドライブ ===&lt;br /&gt;
&lt;br /&gt;
[[光学ディスクドライブ#焼き込み]] (CD/DVD) や [[USB インストールメディア]] (USB) を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== ネットワーク経由でのインストール ===&lt;br /&gt;
&lt;br /&gt;
[[PXE]] の記事を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== 既存の Linux 環境からインストール ===&lt;br /&gt;
&lt;br /&gt;
[[既存の Linux からインストール]]を見て下さい。[[VNC]] や [[SSH]] を使って Arch をリモートでインストールするときに特に便利です。[[SSH からインストール]]も参照。&lt;br /&gt;
&lt;br /&gt;
=== 仮想マシンへのインストール ===&lt;br /&gt;
&lt;br /&gt;
現在使用しているオペレーティングシステムを残したまま、[[Wikipedia:ja:仮想機械|仮想マシン]]上でインストール手順を実行することで、ストレージのパーティションを行う必要なく Arch Linux に慣れることができます。また、ブラウザでこのビギナーズガイドを開いたままインストールが可能です。独立した Arch Linux システムを使用できるということは、テストを行いたいという一部のユーザーにとって有益なことでしょう。&lt;br /&gt;
&lt;br /&gt;
仮想化ソフトウェアの例としては、[[VirtualBox]], [[VMware]], [[QEMU]], [[Xen]], [[Parallels]] があります。&lt;br /&gt;
&lt;br /&gt;
仮想マシンを準備するための正確な手順は、ソフトウェアによって異なりますが、一般的に次の手順に従います:&lt;br /&gt;
&lt;br /&gt;
# オペレーティングシステムのホストにて、仮想ディスクイメージを作成します。 &lt;br /&gt;
# 仮想マシンの設定を最適化します。 &lt;br /&gt;
# 仮想 CD ドライブでダウンロードした ISO イメージを起動します。  &lt;br /&gt;
# [[#インストールメディアの起動|インストールメディアの起動]]に進みます。&lt;br /&gt;
&lt;br /&gt;
== インストールメディアの起動 ==&lt;br /&gt;
&lt;br /&gt;
最初に、あなたのコンピュータの BIOS セットアップで起動順序を変更する必要があるかもしれません。それには、POST ([[Wikipedia:ja:Power On Self Test|Power On Self-Test]]) の間にキー (多くの場合 {{ic|Delete}}、{{ic|F1}}、{{ic|F2}}、{{ic|F11}} や {{ic|F12}}) を押します。これで BIOS の設定画面が表示されるので、ここでシステムが起動するデバイスを探す順番を設定できます。&amp;quot;Save &amp;amp; Exit&amp;quot; (もしくはそれに準ずるもの) を選択すればコンピュータは通常通り起動するはずです。&lt;br /&gt;
&lt;br /&gt;
Arch のメニューが表示されたら、インストールを行うライブ環境を開始するために &amp;quot;Boot Arch Linux&amp;quot; をメニューから選択し、{{ic|Enter}} キーを押します (UEFI ブートディスクから起動した場合は、次のオプションを選択: &amp;quot;Arch Linux archiso x86_64 UEFI&amp;quot;)。ブートエントリを編集することで様々なブートパラメータ ({{ic|copytoram}} など) を使うことができます。Syslinux では {{ic|tab}} を押し、systemd-boot では {{ic|e}} を押します。詳しくは [https://projects.archlinux.org/archiso.git/tree/docs/README.bootparams README.bootparams] を参照。&lt;br /&gt;
&lt;br /&gt;
起動するとシェルプロンプトが表示され、root として自動的にログインが行われます。シェルは [[Zsh]] です。高度な [http://zsh.sourceforge.net/Guide/zshguide06.html タブ補完] など、[http://grml.org/zsh/ grml の設定] の機能が使用できます。テキストファイルを編集する時は、コンソールエディタの [[nano]] を使うことが推奨されています。使い方をよく知らない場合は、[[nano#nano の使用方法]] を見て下さい。Windows とのデュアルブートをする（もしくはそうすることを計画している）場合、[[Windows と Arch のデュアルブート]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== UEFI モードでブートしているかどうかのテスト ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|将来を考えると EFI モードでインストールを行ったほうが望ましいのですが、初期の UEFI の実装には BIOS よりも大量のバグが存在しています。UEFI モードを使用する前にあなたの使用しているマザーボードのモデルについて検索をすることが推奨されます。}}&lt;br /&gt;
&lt;br /&gt;
[[Unified Extensible Firmware Interface|UEFI]] マザーボードを使用していて、UEFI ブートモードが有効になっている (そしてそれが BIOS/Legacy モードよりも優先されている) 場合、CD/USB のインストールメディアは自動で [[systemd-boot]] を使って Arch Linux カーネルを起動します。そして以下のメニューが表示されます (黒地に白字)、最初のアイテムがハイライトされます:&lt;br /&gt;
{{bc|&lt;br /&gt;
Arch Linux archiso x86_64 UEFI USB&lt;br /&gt;
UEFI Shell x86_64 v1&lt;br /&gt;
UEFI Shell x86_64 v2&lt;br /&gt;
EFI Default Loader}}&lt;br /&gt;
&lt;br /&gt;
UEFI モードで起動しているのか確認したい場合は、次を実行:&lt;br /&gt;
&lt;br /&gt;
 # efivar -l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;efivar&#039;&#039; が UEFI 変数を正しく表示したら、UEFI モードで起動されています。表示されない場合は [[Unified Extensible Firmware Interface#UEFI 変数のサポートを正しく動作させるための必要条件]] に記載されている全ての要件が満たされているか確認してください。&lt;br /&gt;
&lt;br /&gt;
=== 起動時の問題のトラブルシューティング ===&lt;br /&gt;
&lt;br /&gt;
* Intel のビデオチップセットを使用していて、ブート中にブランクスクリーン (画面が黒くなる) になった場合、おそらく Kernel Mode Setting ([[Kernel Mode Setting|KMS]]) に問題があります。回避策は、パソコンを再起動し、起動しようとしている項目 (i686 または x86_64) の上で、{{ic|Tab}} キーを押します。末尾に {{ic|nomodeset}} を追加し、{{ic|Enter}} キーを押します。または {{ic|1=video=SVIDEO-1:d}} (KMS は無効にされません) を設定します。もしくは、{{ic|i915.modeset&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;0}} を試して下さい。詳細は [[Intel Graphics|Intel]] ページを参照してください。&lt;br /&gt;
&lt;br /&gt;
* ブランクスクリーンに&#039;&#039;ならず&#039;&#039;、カーネルのロード中に固まる場合は、{{ic|Tab}} キーをメニューの項目上で押し、末尾に {{ic|1=acpi=off}} を追加し、{{ic|Enter}} キーを押します。&lt;br /&gt;
&lt;br /&gt;
== 言語の選択 ==&lt;br /&gt;
&lt;br /&gt;
{{Tip|以下の設定は必須ではありません。設定ファイルをあなたの使う言語で書いたり、Wi-Fi パスワードで区別的発音符を使ったり、もしくはあなたの言語でシステムメッセージ(例えばエラー)を見たいときだけに役に立ちます。ここでの変更はインストールプロセスに&#039;&#039;だけ&#039;&#039;適用されます。}}&lt;br /&gt;
&lt;br /&gt;
標準で、キーボードのレイアウトは {{ic|us}} に設定されています。もし、[[Wikipedia:File:KB United States-NoAltGr.svg|US]] キーボード以外のレイアウトを使用している場合は、&lt;br /&gt;
&lt;br /&gt;
 # loadkeys &#039;&#039;レイアウト名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
で変更できます。&#039;&#039;レイアウト名&#039;&#039;の部分は {{ic|jp106}}、{{ic|fr}}、{{ic|uk}}、{{ic|be-latin1}} などに置き換えます。[[コンソールでのキーボード設定#キーボードレイアウトの設定|ここ]]から一般的なレイアウトのリストを見ることができます。利用可能なキーマップを表示するには {{ic|localectl list-keymaps}} コマンドを使って下さい。&lt;br /&gt;
&lt;br /&gt;
{{Warning|以下はフォントと言語の設定ですが、この段階では、日本語を表示することはできません。}}&lt;br /&gt;
&lt;br /&gt;
フォントも変える必要があるかもしれません。ほとんどの言語は[[Wikipedia:ja:アルファベット|アルファベット]]の26字よりも多くの文字を使っているからです。さもなければ文字が□（豆腐）になったり全く異なって表示されることがあります。フォントの名前は大文字・小文字を区別するので、&#039;&#039;正確に&#039;&#039;入力してください:&lt;br /&gt;
&lt;br /&gt;
 # setfont lat9w-16&lt;br /&gt;
&lt;br /&gt;
標準では、言語は英語 (US) に設定されています。インストール中の言語を変更したい場合 &#039;&#039;(例: 日本語)&#039;&#039;、{{ic|/etc/locale.gen}} 内のあなたの設定したい[[ロケール]]の行と、英語 (US) の行から行頭の {{ic|#}} を削除します。{{ic|UTF-8}} を選択してください。&lt;br /&gt;
&lt;br /&gt;
シンプルな Nano エディタで編集するには、{{ic|nano /etc/locale.gen}} と入力してください。{{ic|Ctrl+X}} で終了し、変更を保存するか聞かれたら {{ic|Y}} と、 {{ic|Enter}} を押せば同じファイル名で上書き保存します。&lt;br /&gt;
&lt;br /&gt;
{{hc|# nano /etc/locale.gen|&lt;br /&gt;
en_US.UTF-8 UTF-8&lt;br /&gt;
ja_JP.UTF-8 UTF-8}}&lt;br /&gt;
&lt;br /&gt;
 # locale-gen&lt;br /&gt;
 # export LANG=ja_JP.UTF-8&lt;br /&gt;
&lt;br /&gt;
== インターネット接続の確立 ==&lt;br /&gt;
&lt;br /&gt;
{{Warning|[http://cgit.freedesktop.org/systemd/systemd/tree/NEWS?id&amp;amp;#61;dee4c244254bb49d1ffa8bd7171ae9cce596d2d0 v197] 以降、udev はネットワークインターフェースの名前を wlanX や ethX といった風に名づけません。あなたが他のディストリビューションを使っているなどの理由で、新しい命名規則を知らないのならば、あなたの無線インターフェースの名前が wlan0 だとか、有線インターフェースの名前が eth0 ではない可能性があることを予め覚えておいて下さい。{{ic|ip link}} コマンドでインターフェースの名前を調べることができます。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|dhcpcd}} ネットワークデーモンはブート時に自動で起動して、可能であれば有線での接続を試みます。接続できているかウェブサイトに ping をして確かめて下さい。例えば Google のサーバーに ping します:&lt;br /&gt;
&lt;br /&gt;
{{hc|# ping -c 3 www.google.com|2=&lt;br /&gt;
PING www.l.google.com (74.125.132.105) 56(84) bytes of data.&lt;br /&gt;
64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=1 ttl=50 time=17.0 ms&lt;br /&gt;
64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=2 ttl=50 time=18.2 ms&lt;br /&gt;
64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=3 ttl=50 time=16.6 ms&lt;br /&gt;
&lt;br /&gt;
--- www.l.google.com ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2003ms&lt;br /&gt;
rtt min/avg/max/mdev = 16.660/17.320/18.254/0.678 ms}}&lt;br /&gt;
&lt;br /&gt;
{{ic|ping: unknown host}} のエラーが出た場合は下に記述されている方法を試して手動で接続をセットアップする必要があります。ネットワークへの接続が問題ないようでしたら、[[#ドライブの準備|ドライブの準備]]へ進んでください。&lt;br /&gt;
&lt;br /&gt;
=== 有線 ===&lt;br /&gt;
&lt;br /&gt;
固定 IP アドレスを使用して有線の接続をセットアップする場合は次の手順に従ってください。&lt;br /&gt;
&lt;br /&gt;
あなたのイーサネットインターフェースの名前を確かめて下さい:&lt;br /&gt;
&lt;br /&gt;
{{hc|# ip link|&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT &lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
2: enp2s0f0: &amp;lt;BROADCAST,MULTICAST&amp;gt; mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000&lt;br /&gt;
    link/ether 00:11:25:31:69:20 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
3: wlp3s0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state UP mode DORMANT qlen 1000&lt;br /&gt;
    link/ether 01:02:03:04:05:06 brd ff:ff:ff:ff:ff:ff}}&lt;br /&gt;
&lt;br /&gt;
上記の例の場合、イーサネットインターフェースは {{ic|enp2s0f0}} です。よくわからない場合、あなたのイーサネットインターフェースはおそらく &amp;quot;e&amp;quot; から始まっているインターフェイスです。&amp;quot;w&amp;quot; で始まっているものや &amp;quot;lo&amp;quot; ではないということです。&lt;br /&gt;
&lt;br /&gt;
[[ネットワーク設定#固定 IP アドレス]]を見て必要な設定を確認してください。{{ic|/etc/dhcpcd.conf}} に以下のような設定を使って、dhcpcd の static プロファイルを設定します:&lt;br /&gt;
&lt;br /&gt;
 interface enp2s0f0&lt;br /&gt;
 static ip_address=192.168.0.10/24&lt;br /&gt;
 static routers=192.168.0.1&lt;br /&gt;
 static domain_name_servers=192.168.0.1 8.8.8.8&lt;br /&gt;
&lt;br /&gt;
{{ic|dhcpcd.service}} を再起動してください:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart dhcpcd.service&lt;br /&gt;
&lt;br /&gt;
これでネットワークに接続されるはずです。されない場合は、[[ネットワーク設定]]のページを見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== 無線 ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|(CD・USB スティックの) ライブ環境では、(ワイヤレスカードを使うのに必要な) ワイヤレスチップセットのファームウェアのパッケージは {{ic|/usr/lib/firmware}} の下にあらかじめインストールされていますが、再起動後にも無線を使うには、ユーザーがちゃんとパッケージをインストールする必要があります。パッケージのインストールはこのガイドの後ろで触れています。再起動する前にワイヤレスモジュール・ファームウェアを必ずインストールしてください。もし、あなたのチップセットがファームウェアのインストールを必要としているか不明な場合は[[ワイヤレス設定]]を見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
[[netctl]] の {{ic|wifi-menu}} を使いネットワークに接続します:&lt;br /&gt;
&lt;br /&gt;
 # wifi-menu&lt;br /&gt;
&lt;br /&gt;
コンピュータに接続されている Wi-Fi デバイスが一つしかない (ノートパソコンなど) 場合は wifi ネットワークのメニューが表示されます。&lt;br /&gt;
&lt;br /&gt;
コンピュータに複数の Wi-Fi デバイスが存在するときは、そのどれか一つを選択して &#039;&#039;wifi-menu&#039;&#039; にインターフェイスの名前を指定する必要があります。まず、インターフェイスの名前を確かめて下さい:&lt;br /&gt;
&lt;br /&gt;
{{hc|# iw dev|2=&lt;br /&gt;
phy#0&lt;br /&gt;
        Interface wlp3s0&lt;br /&gt;
                ifindex 3&lt;br /&gt;
                wdev 0x1&lt;br /&gt;
                addr 00:11:22:33:44:55&lt;br /&gt;
                type managed&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
上の例では、{{ic|wlp3s0}} が有効なワイヤレスインターフェースです。どれかわからないときは、おそらく &amp;quot;w&amp;quot; から始まるのがあなたのワイヤレスインターフェースです。&amp;quot;lo&amp;quot; や &amp;quot;e&amp;quot; から始まるインターフェースは違います。&lt;br /&gt;
&lt;br /&gt;
インターフェイスの名前がわかったら、インターフェイスの名前を指定して &#039;&#039;wifi-menu&#039;&#039; を起動します:&lt;br /&gt;
&lt;br /&gt;
 # wifi-menu wlp3s0&lt;br /&gt;
&lt;br /&gt;
ユーザー名やパスワードの設定を必要とするネットワークを使う場合は [[WPA2 Enterprise#netctl]] にあるサンプル設定を見て下さい。&lt;br /&gt;
&lt;br /&gt;
これでネットワークは有効になるはずです。接続されないときは、下の [[#wifi-menu を使わない方法|wifi-menu を使わない方法]]や、詳しい説明が載っている[[ワイヤレス設定]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
==== wifi-menu を使わない方法 ====&lt;br /&gt;
&lt;br /&gt;
インターフェースを立ち上げます:&lt;br /&gt;
&lt;br /&gt;
 # ip link set wlp3s0 up&lt;br /&gt;
&lt;br /&gt;
インターフェイスが立ち上がっているか確認するには、次のコマンドの出力を見て下さい:&lt;br /&gt;
&lt;br /&gt;
{{hc|# ip link show wlp3s0|&lt;br /&gt;
3: wlp3s0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000&lt;br /&gt;
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|&amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt;}} の中にある {{ic|UP}} がインターフェイスが立ち上がっている印です。後ろの {{ic|state DOWN}} は違います。&lt;br /&gt;
&lt;br /&gt;
ほとんどのワイヤレスチップセットには、対応するドライバに加えて、ファームウェアが必要です。カーネルが自動で検知してロードを試みます。{{ic|SIOCSIFFLAGS: No such file or directory}} のようなエラーが出た場合、ファームウェアを手動でロードする必要があることを意味しています。必要なファームウェアがわからないときは、{{ic|dmesg}} を使いカーネルログからワイヤレスチップセットのファームウェア要求をさがします。例えば、カーネルの起動時に Intel チップセットが出力するファームウェア要求の例:&lt;br /&gt;
&lt;br /&gt;
{{hc|# dmesg &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep firmware|&lt;br /&gt;
firmware: requesting iwlwifi-5000-1.ucode}}&lt;br /&gt;
&lt;br /&gt;
なにも表示されないなら、あなたのワイヤレスチップセットにはファームウェアが要らないと判断できます。&lt;br /&gt;
&lt;br /&gt;
{{ic|iw dev wlp3s0 scan &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep SSID}} を使って利用可能なネットワークをスキャンして、それからネットワークに接続してください:&lt;br /&gt;
&lt;br /&gt;
 # wpa_supplicant -B -i wlp3s0 -c &amp;lt;(wpa_passphrase &amp;quot;&#039;&#039;ssid&#039;&#039;&amp;quot; &amp;quot;&#039;&#039;psk&#039;&#039;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;ssid&#039;&#039; はネットワークの名前に (例: &amp;quot;Linksys etc...&amp;quot;)、&#039;&#039;psk&#039;&#039; はパスワードに置き換える必要があります (ネットワークの名前とパスワードを囲っているダブルクォートは消さないで下さい, 例: ネットワークのパスワードが dog の場合、&amp;quot;dog&amp;quot; と入力)。&lt;br /&gt;
&lt;br /&gt;
最後に、インターフェースに IP アドレスを与える必要があります。手動で設定するか dhcp を使ってこれを行なって下さい:&lt;br /&gt;
 # dhcpcd wlp3s0&lt;br /&gt;
&lt;br /&gt;
上のコマンドでうまくいかない場合、以下のコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
 # echo &#039;ctrl_interface=DIR=/run/wpa_supplicant&#039; &amp;gt; /etc/wpa_supplicant.conf&lt;br /&gt;
 # wpa_passphrase &amp;lt;ssid&amp;gt; &amp;lt;passphrase&amp;gt; &amp;gt;&amp;gt; /etc/wpa_supplicant.conf&lt;br /&gt;
 # ip link set &amp;lt;interface&amp;gt; up # May not be needed, but does no harm in any case&lt;br /&gt;
 # wpa_supplicant -B -D nl80211 -c /etc/wpa_supplicant.conf -i &amp;lt;interface name&amp;gt;&lt;br /&gt;
 # dhcpcd -A &amp;lt;interface name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== アナログモデム, ISDN, PPPoE DSL ===&lt;br /&gt;
&lt;br /&gt;
xDSL・ダイアルアップ・ISDN接続については、[[モデムに直接接続]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== プロキシサーバを使う ===&lt;br /&gt;
&lt;br /&gt;
プロキシサーバを使うには、{{ic|http_proxy}}, {{ic|ftp_proxy}} 環境変数を設定しなくてはなりません。詳しい情報は[[プロキシ設定]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
== 時計を合わせる ==&lt;br /&gt;
&lt;br /&gt;
[[systemd-timesyncd]] を使ってシステムクロックを正確な時刻に合わせて下さい。起動するには:&lt;br /&gt;
 # timedatectl set-ntp true&lt;br /&gt;
&lt;br /&gt;
サービスの状態を確認したいときは {{ic|timedatectl status}} を使って下さい。&lt;br /&gt;
&lt;br /&gt;
詳しくは、[[時刻]]を参照。&lt;br /&gt;
&lt;br /&gt;
== ドライブの準備 ==&lt;br /&gt;
&lt;br /&gt;
{{Warning|&lt;br /&gt;
* パーティショニングを行うと既存のデータが消去されます。実施する前に、必要なデータはバックアップしてください。&lt;br /&gt;
* UEFI/GPT 環境でインストールした Windows とデュアルブートしたい場合、Windows を起動するのに必要な Windows の &#039;&#039;.efi&#039;&#039; ファイルが含まれている UEFI パーティションを再フォーマットしてはいけません。さらに、Arch のブートモードとパーティションの組み合わせを Windows と同一に設定する必要があります。[[Windows と Arch のデュアルブート#重要情報]]を参照。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
このステップでは、新しいシステムをインストールするためにストレージデバイスの準備を行います。詳しい情報は[[パーティショニング]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
[[LVM]], [[ディスク暗号化]], [[RAID]] などのスタックブロックデバイスを作成したい場合は、この段階で行います。USB フラッシュキーにインストールする場合は、[[USB キーに Arch Linux をインストール]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== デバイスの確認 ===&lt;br /&gt;
&lt;br /&gt;
まず新しいシステムをインストールするデバイスを確認します。次のコマンドを実行すると全てのデバイスが表示されます:&lt;br /&gt;
&lt;br /&gt;
 # lsblk&lt;br /&gt;
&lt;br /&gt;
このコマンドはシステムに接続されたデバイスとパーティションを表示しますが、Arch インストールメディアを起動するのに使われているデバイスも含まれています。したがって、どのデバイスでもインストールが行えるというわけではありません。不必要なデバイスを表示しないようにするには、以下のようにコマンドを実行します:&lt;br /&gt;
&lt;br /&gt;
 # lsblk | grep -v &amp;quot;rom\|loop\|airoot&amp;quot;&lt;br /&gt;
&lt;br /&gt;
デバイス (ハードディスク) は {{ic|sd&#039;&#039;x&#039;&#039;}} と示されます。{{ic|&#039;&#039;x&#039;&#039;}} は {{ic|a}} から始まる小文字のアルファベットで、一番目のデバイスは {{ic|sda}}、二番目のデバイスは {{ic|sdb}} と割り当てられます。既存のパーティションは {{ic|sd&#039;&#039;xY&#039;&#039;}} と示され、{{ic|&#039;&#039;Y&#039;&#039;}} は {{ic|1}} から始まる数字です。一番目のパーティションは {{ic|1}}、二番目のパーティションは {{ic|2}} と続きます。下の例では、一つのデバイスが存在し ({{ic|sda}})、一つのパーティションが使われています ({{ic|sda1}}):&lt;br /&gt;
&lt;br /&gt;
 NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 sda               8:0    0    80G  0 disk&lt;br /&gt;
 └─sda1            8:1    0    80G  0 part&lt;br /&gt;
&lt;br /&gt;
パーティションテーブル、パーティション、ファイルシステムでは {{ic|sd&#039;&#039;xY&#039;&#039;}} という名前を例として使います。あくまでこの名前は例なので、実際にコマンドを実行したりするときは、デバイスの名前とパーティションの番号を変える必要があります。コマンドをコピーしてそのまま貼り付けても動作しません。&lt;br /&gt;
&lt;br /&gt;
パーティションをそのまま変更しない場合は、[[#ファイルシステムの作成|ファイルシステムの作成]]まで進んでください。パーティショニングを行う場合は、次のセクションを読んで下さい。&lt;br /&gt;
&lt;br /&gt;
=== パーティションテーブルのタイプの選択 ===&lt;br /&gt;
&lt;br /&gt;
既に何らかの OS がインストールされているところに Arch をインストールする場合、既存のパーティションテーブルを使用します。デバイスがパーティショニングされてなかったり、現在のパーティションテーブルを変更する必要があるときは、まず使用されているパーティションテーブルを確認しなくてはなりません。&lt;br /&gt;
&lt;br /&gt;
パーティションテーブルには2種類あります:&lt;br /&gt;
&lt;br /&gt;
* [[Master Boot Record|MBR]]: BIOS 環境で使用されます (別名 &amp;quot;msdos&amp;quot;)&lt;br /&gt;
* [[GUID Partition Table|GPT]]: UEFI 環境で使用されます&lt;br /&gt;
&lt;br /&gt;
既存のパーティションテーブルは、次のコマンドを実行することで確認できます:&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sd&#039;&#039;x&#039;&#039; print&lt;br /&gt;
&lt;br /&gt;
=== パーティショニングツール ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|使用しているパーティショニングテーブルと互換性がないパーティショニングツールを使ってしまうと、テーブルが破壊されて、既存のパーティションやデータが消えてしまいます。}}&lt;br /&gt;
&lt;br /&gt;
デバイスをパーティショニングするには、使用されるパーティションテーブルにあわせて適切なツールを選ぶ必要があります。Arch のインストールメディアには複数のパーティショニングツールが入っています:&lt;br /&gt;
&lt;br /&gt;
* [[parted]]: GPT と MBR&lt;br /&gt;
* [[パーティショニング#Fdisk の使い方|fdisk]], &#039;&#039;&#039;cfdisk&#039;&#039;&#039;, &#039;&#039;&#039;sfdisk&#039;&#039;&#039;: GPT と MBR&lt;br /&gt;
* [[パーティショニング#Gdisk の使い方|gdisk]], &#039;&#039;&#039;cgdisk&#039;&#039;&#039;, &#039;&#039;&#039;sgdisk&#039;&#039;&#039;: GPT&lt;br /&gt;
&lt;br /&gt;
Arch のインストールメディアを起動する前に、他のライブ環境に付属しているパーティションツールを使って、デバイスを予めパーティショニングしておくことも可能です。初心者にとっては [[GParted]] などのグラフィカルなパーティショニングツールが使いやすいでしょう。GParted には [http://gparted.sourceforge.net/livecd.php ライブ CD] が存在し、MBR と GPT の両方のパーティションテーブルで動作します。&lt;br /&gt;
&lt;br /&gt;
==== インタラクティブモードの parted を使用する ====&lt;br /&gt;
&lt;br /&gt;
以下で示す例では BIOS/MBR と UEFI/GPT の両方で用いることができる &#039;&#039;parted&#039;&#039; を使っています。&#039;&#039;parted&#039;&#039; は&#039;&#039;インタラクティブモード&#039;&#039;で起動して、指定したデバイスに全てのパーティショニングコマンドを自動的に適用することで、不必要な繰り返しを避けます。&lt;br /&gt;
&lt;br /&gt;
デバイスの操作を開始するには、次を実行:&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sd&#039;&#039;x&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
コマンドラインプロンプトがハッシュ ({{ic|#}}) から {{ic|(parted)}} に変わります。&lt;br /&gt;
&lt;br /&gt;
利用できるコマンドのリストを表示するには、次を入力:&lt;br /&gt;
&lt;br /&gt;
 (parted) help&lt;br /&gt;
&lt;br /&gt;
パーティションの操作が完了した場合は、次のコマンドで parted を終了します:&lt;br /&gt;
&lt;br /&gt;
 (parted) quit&lt;br /&gt;
&lt;br /&gt;
終了後、コマンドラインプロンプトは {{ic|#}} に戻ります。&lt;br /&gt;
&lt;br /&gt;
=== 新しいパーティションテーブルの作成 ===&lt;br /&gt;
&lt;br /&gt;
パーティションテーブルのタイプを変更したい場合や、デバイスがまだパーティションされていない場合、パーティションテーブルの（再）作成が必要です。デバイスのパーティションテーブルの再作成はパーティションスキームを最初からやり直したい場合にも有用です。&lt;br /&gt;
&lt;br /&gt;
{{Warning|&lt;br /&gt;
* UEFI/GPT で Windows がインストールされている環境でデュアルブートをしたい場合は、パーティションテーブルを消去しないでください。パーティションテーブルを消去すると、Windows を起動するのに必要な &#039;&#039;.efi&#039;&#039; ファイルが入っている UEFI パーティションを含め、デバイス上の既存のデータが全て削除されます。&lt;br /&gt;
* MBR は BIOS 環境で使用するように作られており、GPT は UEFI と一緒に使われることが想定されています。ハードウェアと互換性がない機能や制限があるため、この組み合わせを使わないというのは初心者にはおすすめできません (例: MBR は 2 TiB 以上のデバイスを扱えません) [https://www.happyassassin.net/2014/01/25/uefi-boot-how-does-that-actually-work-then/]。何らかの理由でこの組み合わせを使いたくないという場合は、[http://mjg59.dreamwidth.org/8035.html] や [http://rodsbooks.com/gdisk/bios.html] に詳しい情報や対処方法が載っています。}}&lt;br /&gt;
&lt;br /&gt;
パーティションテーブルを（再）作成するデバイスを次のコマンドで開いてください:&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sd&#039;&#039;x&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
そして BIOS 環境の場合、MBR/msdos パーティションテーブルを新しく作成するために、次のコマンドを実行します:&lt;br /&gt;
&lt;br /&gt;
 (parted) mklabel msdos&lt;br /&gt;
&lt;br /&gt;
UEFI 環境で GPT パーティションテーブルを新しく作成するには、次のコマンドを使います:&lt;br /&gt;
&lt;br /&gt;
 (parted) mklabel gpt&lt;br /&gt;
&lt;br /&gt;
=== パーティションスキーム ===&lt;br /&gt;
&lt;br /&gt;
ディスクをいくつのパーティションに分けるか決めて、それぞれのパーティションにシステム上のディレクトリを割り振ることができます。パーティションからディレクトリへのマッピング (しばしば &#039;マウントポイント&#039; と呼ばれます) が[[パーティショニング#パーティション形態|パーティションスキーム]]になります。パーティションスキームは以下の要件を満たさなければなりません:&lt;br /&gt;
&lt;br /&gt;
* 少なくとも {{ic|/}} (&#039;&#039;root&#039;&#039;) ディレクトリのパーティションは必ず作成する必要があります。&lt;br /&gt;
* マザーボードのファームウェアインターフェイスや、選択した[[#パーティションテーブルのタイプの選択|パーティションテーブルのタイプ]]によって、また、時には選択した[[ブートローダー]]にあわせて、以下のパーティションを追加で作成する必要が出てきます:&lt;br /&gt;
** &#039;&#039;&#039;BIOS/MBR&#039;&#039;&#039;: 追加のパーティションは必要ありません。&lt;br /&gt;
** &#039;&#039;&#039;BIOS/GPT&#039;&#039;&#039;:&lt;br /&gt;
*** [[Syslinux]] を使用する場合: 追加のパーティションは必要ありません。&lt;br /&gt;
*** [[GRUB]] を使用する場合: タイプが {{ic|EF02}} で容量が 1MiB または 2MiB の [[GRUB#GUID Partition Table (GPT) 特有の手順|BIOS Boot Partition]]。&lt;br /&gt;
** &#039;&#039;&#039;UEFI/GPT&#039;&#039;&#039;: [[Unified Extensible Firmware Interface#EFI System Partition|EFI System Partition]]。&lt;br /&gt;
** &#039;&#039;&#039;UEFI/MBR&#039;&#039;&#039;: [[Unified Extensible Firmware Interface#EFI System Partition|EFI System Partition]]。&lt;br /&gt;
&lt;br /&gt;
以下の例では、新しい、連続するパーティションスキームを1つのデバイスに適用します。任意の {{ic|/boot}} や {{ic|/home}} ディレクトリのパーティションも作成しています。それぞれのディレクトリの目的については [[Arch ファイルシステム階層]]を見て下さい。{{ic|/boot}} や {{ic|/home}} などのディレクトリのパーティションを別に作成しない場合、{{ic|/}} パーティションに含まれることになります。また、[[スワップ|スワップ領域]]用のパーティションについても説明します。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;parted&#039;&#039; のインタラクティブセッションをまだ開いてない場合は、パーティションするデバイスを指定して起動してください:&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sd&#039;&#039;x&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
次のコマンドを使用してパーティションを作成します:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart &#039;&#039;part-type&#039;&#039; &#039;&#039;fs-type&#039;&#039; &#039;&#039;start&#039;&#039; &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* {{ic|&#039;&#039;part-type&#039;&#039;}} は {{ic|primary}}, {{ic|extended}}, {{ic|logical}} のうちどれか一つから選びます。MBR パーティションテーブルでのみ意味があります。&lt;br /&gt;
* {{ic|&#039;&#039;fs-type&#039;&#039;}} は [http://www.gnu.org/software/parted/manual/parted.html#mkpart マニュアル] に記載されているサポートがあるファイルシステムの中から選びます。パーティションは[[#ファイルシステムの作成|ファイルシステム作成]]でフォーマットします。&lt;br /&gt;
* {{ic|&#039;&#039;start&#039;&#039;}} はデバイスの先頭からのパーティションの開始位置です。[http://www.gnu.org/software/parted/manual/parted.html#unit 単位] をつけた数値で指定し、例えば {{ic|1M}} なら 1MiB が開始位置になります。&lt;br /&gt;
* {{ic|&#039;&#039;end&#039;&#039;}} はデバイスの先頭からのパーティションの終末位置です ({{ic|&#039;&#039;start&#039;&#039;}} から計算するわけではありません)。{{ic|&#039;&#039;start&#039;&#039;}} と同じ構文を使うことができ、例えば {{ic|100%}} と指定するとデバイスの終端を意味します (残り領域全てを使う)。&lt;br /&gt;
&lt;br /&gt;
{{Warning|パーティションは重ならないように注意してください。デバイスに未使用のスペースを残さないようにするには、それぞれのパーティションが前のパーティションの終末から開始するようにしてください。}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&#039;&#039;parted&#039;&#039; は以下のような警告を表示することがあります:&lt;br /&gt;
&lt;br /&gt;
 Warning: The resulting partition is not properly aligned for best performance.&lt;br /&gt;
 Ignore/Cancel?&lt;br /&gt;
&lt;br /&gt;
この表示がでたときは、[[パーティショニング#パーティションアライメント]]を見て [[GNU Parted#アライメント]] にしたがって修正してください。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|/boot}} ディレクトリを含むパーティションが起動できるようにフラグを立てるには次のコマンドを使います:&lt;br /&gt;
&lt;br /&gt;
 (parted) set &#039;&#039;partition&#039;&#039; boot on&lt;br /&gt;
&lt;br /&gt;
* {{ic|&#039;&#039;partition&#039;&#039;}} はフラグを立てるパーティションの番号に置き換えて下さい ({{ic|print}} コマンドの出力を参照しましょう)。&lt;br /&gt;
&lt;br /&gt;
==== UEFI/GPT の例 ====&lt;br /&gt;
&lt;br /&gt;
どんなふうにパーティショニングするにせよ、特別な [[Unified Extensible Firmware Interface#EFI System Partition|EFI System Partition]] が必要になります。&lt;br /&gt;
&lt;br /&gt;
{{Warning|UEFI/GPT で Windows がインストールされている環境でデュアルブートをしたい場合は、既存の UEFI パーティションを消去しないでください。このパーティションを消去すると、Windows を起動するのに必要な &#039;&#039;.efi&#039;&#039; ファイルが削除されてしまいます。}}&lt;br /&gt;
&lt;br /&gt;
新しく EFI System Partition を作成する場合は、以下のコマンドを使って下さい (推奨される容量は 512MiB です):&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart ESP fat32 1MiB 513MiB&lt;br /&gt;
 (parted) set 1 boot on&lt;br /&gt;
&lt;br /&gt;
あとのパーティションスキームはあなたが自由に決めて下さい。残りのスペースを全て使用する単一のパーティションを作るには:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 513MiB 100%&lt;br /&gt;
&lt;br /&gt;
{{ic|/}} (20GiB) と {{ic|/home}} (残り容量全てを使用) パーティションを作るには:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 513MiB 20.5GiB&lt;br /&gt;
 (parted) mkpart primary ext4 20.5GiB 100%&lt;br /&gt;
&lt;br /&gt;
{{ic|/}} (20GiB), スワップ (4GiB), {{ic|/home}} (残り容量全てを使用) パーティションを作成するには:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 513MiB 20.5GiB&lt;br /&gt;
 (parted) mkpart primary linux-swap 20.5GiB 24.5GiB&lt;br /&gt;
 (parted) mkpart primary ext4 24.5GiB 100%&lt;br /&gt;
&lt;br /&gt;
==== BIOS/MBR の例 ====&lt;br /&gt;
&lt;br /&gt;
ディスク容量を全て使用する単一のプライマリパーティションを作成するには、以下のコマンドを使用します:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 1MiB 100%&lt;br /&gt;
 (parted) set 1 boot on&lt;br /&gt;
&lt;br /&gt;
以下の例では、20GiB の {{ic|/}} パーティションを作成してから、残り容量を全て使用する {{ic|/home}} パーティションを作成します:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 1MiB 20GiB&lt;br /&gt;
 (parted) set 1 boot on&lt;br /&gt;
 (parted) mkpart primary ext4 20GiB 100%&lt;br /&gt;
&lt;br /&gt;
以下の例では {{ic|/boot}} (100MiB), {{ic|/}} (20GiB), スワップ (4GiB), {{ic|/home}} (残り容量全てを使用) パーティションを作成します:&lt;br /&gt;
&lt;br /&gt;
 (parted) mkpart primary ext4 1MiB 100MiB&lt;br /&gt;
 (parted) set 1 boot on&lt;br /&gt;
 (parted) mkpart primary ext4 100MiB 20GiB&lt;br /&gt;
 (parted) mkpart primary linux-swap 20GiB 24GiB&lt;br /&gt;
 (parted) mkpart primary ext4 24GiB 100%&lt;br /&gt;
&lt;br /&gt;
=== ファイルシステムの作成 ===&lt;br /&gt;
&lt;br /&gt;
パーティショニングはまだ終わっていません。パーティションには[[ファイルシステム]]が必要です（ただしスワップパーティションには要りません）。インストール先のデバイスに存在するパーティションを確認するには次のコマンドを使用:&lt;br /&gt;
&lt;br /&gt;
 # lsblk /dev/sd&#039;&#039;x&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
下に書かれている注意点を除いて、基本的には {{ic|ext4}} ファイルシステムを使うことを推奨します:&lt;br /&gt;
&lt;br /&gt;
 # mkfs.ext4 /dev/sd&#039;&#039;xY&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Warning|UEFI/GPT で Windows がインストールされている環境でデュアルブートをしたい場合は、UEFI パーティションをフォーマットしないでください。フォーマットしてしまうと、Windows を起動するのに必要な &#039;&#039;.efi&#039;&#039; ファイルが入っている UEFI パーティションのデータが全て削除されます。}}&lt;br /&gt;
&lt;br /&gt;
UEFI/GPT 環境で新しく UEFI システムパーティションを作成した場合は、UEFI パーティションを {{ic|fat32}} または {{ic|vfat32}} ファイルシステムでフォーマットしてください。これを行っておかないと起動できなくなります:&lt;br /&gt;
 # mkfs.vfat -F32 /dev/sd&#039;&#039;xY&#039;&#039;&lt;br /&gt;
{{Note|BIOS/GPT 環境で [[GRUB]] を使用する場合、[[GRUB#GUID Partition Table (GPT) 特有の手順|BIOS Boot Partition]] は {{ic|/boot}} マウントポイントと関係ないので注意してください。このパーティションは GRUB によって直接使用されます。BIOS Boot Partition にファイルシステムを作成したり、マウントしたりしてはいけません。}}&lt;br /&gt;
&lt;br /&gt;
=== スワップの有効化 ===&lt;br /&gt;
&lt;br /&gt;
スワップパーティションを作成した場合は、以下のコマンドで有効化する必要があります:&lt;br /&gt;
&lt;br /&gt;
 # mkswap /dev/sd&#039;&#039;xY&#039;&#039;&lt;br /&gt;
 # swapon /dev/sd&#039;&#039;xY&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== パーティションのマウント ===&lt;br /&gt;
&lt;br /&gt;
{{Note|ここではスワップパーティションをマウントしないでください。}}&lt;br /&gt;
&lt;br /&gt;
まず最初に {{ic|/}} (root) パーティションをマウントしてください。{{ic|/boot}} や {{ic|/home}} などのディレクトリは root ファイルシステムに作成する必要があるためです。ライブ環境の {{ic|/mnt}} ディレクトリを使用して root パーティションをマウントします。他のパーティションはそこをベースにします。root パーティションの名前が {{ic|sd&#039;&#039;xR&#039;&#039;}} なら、次のコマンドを実行:&lt;br /&gt;
&lt;br /&gt;
 # mount /dev/sd&#039;&#039;xR&#039;&#039; /mnt&lt;br /&gt;
&lt;br /&gt;
{{ic|/}} パーティションをマウントしたら、他のパーティションをマウントすることができます。順番は気にしなくて結構です。手順としてはまずマウントポイントを作成し、それからパーティションをそのマウントポイントにマウントします。{{ic|/boot}} パーティションを作成していたのならば:&lt;br /&gt;
&lt;br /&gt;
 # mkdir -p /mnt/boot&lt;br /&gt;
 # mount /dev/sd&#039;&#039;xB&#039;&#039; /mnt/boot&lt;br /&gt;
&lt;br /&gt;
UEFI/GPT 環境の場合、EFI システムパーティションも {{ic|/boot}} にマウントすることを推奨します。他のマウントポイントを使いたいときは、[[EFISTUB]] の記事を見て下さい。&lt;br /&gt;
&lt;br /&gt;
{{ic|/home}} パーティションを使用する場合:&lt;br /&gt;
&lt;br /&gt;
 # mkdir -p /mnt/home&lt;br /&gt;
 # mount /dev/sd&#039;&#039;xH&#039;&#039; /mnt/home&lt;br /&gt;
&lt;br /&gt;
全てのパーティションをマウントしたら、デバイスの準備は完了で Arch をインストールできます。&lt;br /&gt;
&lt;br /&gt;
== ミラーの選択 ==&lt;br /&gt;
&lt;br /&gt;
インストールの前に、{{ic|mirrorlist}} ファイルを編集し、あなたに相応しいミラーを一番上に置きましょう。このファイルのコピーが {{ic|pacstrap}} によってインストールされ、新しいシステム上でも選択したミラーが使われます。&lt;br /&gt;
&lt;br /&gt;
{{hc|# nano /etc/pacman.d/mirrorlist|&lt;br /&gt;
##&lt;br /&gt;
## Arch Linux repository mirrorlist&lt;br /&gt;
## Sorted by mirror score from mirror status page&lt;br /&gt;
## Generated on YYYY-MM-DD&lt;br /&gt;
##&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
...}}&lt;br /&gt;
&lt;br /&gt;
* {{ic|Alt+6}} で {{ic|Server}} 行をコピー。&lt;br /&gt;
* {{ic|PageUp}} キーで上にスクロール。&lt;br /&gt;
* {{ic|Ctrl+U}} でリストの一番上にペースト。&lt;br /&gt;
* {{ic|Ctrl+X}} で終了、保存するか聞かれたら、{{ic|Y}} を押し {{ic|Enter}} で上書き保存。&lt;br /&gt;
&lt;br /&gt;
他のミラーを消去 ({{ic|Ctrl+K}} を使う) してミラーを&#039;&#039;ひとつだけに&#039;&#039;絞ることもできますが、そのミラーがオフラインになったときのことを考え、ミラーを複数使用するほうが良いでしょう。&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* [https://www.archlinux.org/mirrorlist/ Mirrorlist Generator] を使って、あなたの国の最新リストを入手できます。[[Wikipedia:Keepalive|keepalive]] が存在するため、HTTP ミラーのほうが FTP よりも速度が速いです。また FTP では、pacman はパッケージをダウンロードするごとにシグナルを送信しなくてはならないため、短い停止がはさまります。ミラーリストを作る他の方法を見るには、[[ミラー#ミラーをソートする|ミラーのソート]]と [[Reflector]] を参照してください。&lt;br /&gt;
* [https://archlinux.org/mirrors/status/ Arch Linux MirrorStatus] ではミラーの状況、たとえばネットワークエラー、データ収集エラー、最終同期時間などの様々な情報を見ることができます。}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* 将来、ミラーリストを変更したときは必ず、{{ic|pacman -Syyu}} で pacman の全てのパッケージリストを更新することを覚えておいて下さい。これは良い経験則と考えられており、問題の回避につながります。詳しくは[[ミラー]]を参照。&lt;br /&gt;
* 古いインストールメディアを使っている場合、ミラーリストが古くなっているかもしれません。そのために Arch Linux のアップデート時に問題を引き起こす可能性があります。({{Bug|22510}} を参照)。上で述べたようにして最新のミラー情報を入手するべきです。}}&lt;br /&gt;
&lt;br /&gt;
== ベースシステムのインストール ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;pacstrap&#039;&#039; スクリプトを使ってベースシステムをインストールします。インストールするパッケージを選択せず、{{Grp|base}} の全てのパッケージをインストールするときは、{{ic|-i}} スイッチを省いて下さい。[[AUR]] や [[ABS]] でパッケージをビルドするときのために、{{Grp|base-devel}} グループも必要になります。&lt;br /&gt;
&lt;br /&gt;
 # pacstrap -i /mnt base base-devel&lt;br /&gt;
&lt;br /&gt;
ライブ環境に含まれているツールの中には base グループに含まれていないものもあります ([https://projects.archlinux.org/archiso.git/tree/configs/releng/packages.both packages.both] を参照)。パッケージは後で &#039;&#039;pacman&#039;&#039; を使って[[インストール]]することもできますが、&#039;&#039;pacstrap&#039;&#039; コマンドにパッケージの名前を追加することでこの場でインストールすることもできます。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* ミラーを正しく設定しているのに、&#039;&#039;pacstrap&#039;&#039; が {{ic|error: failed retrieving file &#039;core.db&#039; from mirror... : Connection time-out}} で止まる場合は、他の[[Resolv.conf|ネームサーバ]]を設定してみてください。&lt;br /&gt;
* ベースパッケージのインストール中に PGP 鍵のインポートをリクエストされたら、鍵のダウンロードを承認して先に進んで下さい。これは古い Arch ISO を使っていると発生します。PGP 鍵を追加できないときは、次のようにして {{Pkg|archlinux-keyring}} パッケージを更新してみてください: {{ic|pacman -S archlinux-keyring}}。詳しくは [[Pacman#トラブルシューティング]] や [[Pacman-key#トラブルシューティング]] を見て下さい。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== fstab の生成 ==&lt;br /&gt;
&lt;br /&gt;
以下のコマンドで [[fstab]] ファイルを生成します。いくつか有利な点がある UUID が使われます ([[fstab#ファイルシステムの識別]] を参照)。UUID ではなくラベルを使いたいときは、{{ic|-U}} オプションを {{ic|-L}} に置き換えましょう。&lt;br /&gt;
&lt;br /&gt;
 # genfstab -U /mnt &amp;gt; /mnt/etc/fstab&lt;br /&gt;
 # cat /mnt/etc/fstab&lt;br /&gt;
&lt;br /&gt;
{{Warning|生成したあとは必ず {{ic|fstab}} の中身をチェックしましょう。&#039;&#039;genfstab&#039;&#039; や後のインストール作業中にエラーが起こっても、もう一度 &#039;&#039;genfstab&#039;&#039; を実行するのはやめてください。その場合は手動で {{ic|fstab}} ファイルを編集して下さい。}}&lt;br /&gt;
&lt;br /&gt;
最後のフィールドには起動時にチェックするパーティションの順番を設定します: ({{ic|btrfs}} 以外では) root パーティションに {{ic|1}} を使って下さい、最初にチェックされます。起動時にチェックしたい他のパーティションには {{ic|2}} を使って下さい、{{ic|0}} はチェックされません ([[fstab#フィールドの定義]] を参照)。[[btrfs]] のパーティションには全て {{ic|0}} を使う必要があります。スワップパーティションも {{ic|0}} に設定してください。&lt;br /&gt;
&lt;br /&gt;
== Chroot とベースシステムの設定 ==&lt;br /&gt;
&lt;br /&gt;
次に、[[Change Root|chroot]] を使って新しくインストールされたシステムに入ります:&lt;br /&gt;
&lt;br /&gt;
 # arch-chroot /mnt /bin/bash&lt;br /&gt;
&lt;br /&gt;
この段階では、Arch Linux ベースシステムの重要な設定ファイルを作ります。ファイルが存在していないときや、デフォルト設定を使いたくないときは、その都度ファイルを作成したり編集してください。&lt;br /&gt;
&lt;br /&gt;
正確に、手順をよく踏まえてから設定してください。システムを正しく設定するのにとても重要なステップです。&lt;br /&gt;
&lt;br /&gt;
{{Warning|ISO で使用しているツールは自動的にインストールされるわけではありません。例えば、インストールの一環としてネットワークに接続するために &#039;&#039;wifi-menu&#039;&#039; を使っている場合、インストールを完了した後も &#039;&#039;wifi-menu&#039;&#039; を使うためには、{{Pkg|dialog}} をインストールしておく必要があります。以下のセクションではそういったケースについて説明をしているので、後で困った事態にならないようにちゃんと指示に従って下さい。}}&lt;br /&gt;
&lt;br /&gt;
=== ロケール ===&lt;br /&gt;
&lt;br /&gt;
ロケールを設定することによって、{{Pkg|glibc}} やその他のロケールを使うプログラムやライブラリで、テキストのレンダリング、正しい通貨単位の表示、時間と月日のフォーマット、アルファベットの特有表現、地域特有の単位の表示などができるようになります。&lt;br /&gt;
&lt;br /&gt;
2つのファイルを編集する必要があります: 使用可能なロケールを記述する {{ic|locale.gen}} と実際に使用するロケールを定義する {{ic|locale.conf}}。&lt;br /&gt;
&lt;br /&gt;
{{ic|locale.gen}} ファイルはデフォルトでは全てコメントアウト ({{ic|#}} で無効化) されています。{{ic|en_US.UTF-8 UTF-8}} の行と、必要なロケールをアンコメント (行の前の {{ic|#}} を削除) してください。選択肢がいくつかある場合 {{ic|UTF-8}} を推奨します。&lt;br /&gt;
&lt;br /&gt;
{{hc|# nano /etc/locale.gen|&lt;br /&gt;
...&lt;br /&gt;
#en_SG ISO-8859-1&lt;br /&gt;
en_US.UTF-8 UTF-8&lt;br /&gt;
#en_US ISO-8859-1&lt;br /&gt;
...&lt;br /&gt;
#ja_JP.EUC-JP EUC-JP&lt;br /&gt;
ja_JP.UTF-8 UTF-8&lt;br /&gt;
#ka_GE.UTF-8 UTF-8&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
ロケールは有効にする前に、&#039;&#039;生成&#039;&#039;する必要があります:&lt;br /&gt;
&lt;br /&gt;
 # locale-gen&lt;br /&gt;
&lt;br /&gt;
{{ic|locale.conf}} ファイルはデフォルトで存在しません。ファイルを作成して、他の全ての変数のデフォルト値として扱われる {{ic|LANG}} のみ設定してください。{{ic|LANG}} 変数に指定するロケールは {{ic|/etc/locale.gen}} でアンコメントされている必要があります:&lt;br /&gt;
&lt;br /&gt;
 # echo LANG=&#039;&#039;en_US.UTF-8&#039;&#039; &amp;gt; /etc/locale.conf&lt;br /&gt;
&lt;br /&gt;
ロケールを export してください:&lt;br /&gt;
&lt;br /&gt;
 # export LANG=&#039;&#039;en_US.UTF-8&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* この段階でロケールを日本語に設定してしまうと、日本語を表示するためのフォントなどの環境が整っていないため、コンソールの出力が文字化けして判読できなくなってしまいます。GUI 環境を設定してから、以下を実行することで言語を日本語に設定できます:&lt;br /&gt;
 # echo LANG&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&#039;&#039;ja_JP.UTF-8&#039;&#039; &amp;gt; /etc/locale.conf&lt;br /&gt;
 # export LANG&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&#039;&#039;ja_JP.UTF-8&#039;&#039;&lt;br /&gt;
* システム全体のロケールを {{ic|en_US.UTF-8}} に設定してシステムログを英語で保存するとトラブルシューティングが楽になります。この設定は[[ロケール#ユーザーごとにロケールを設定]]で書かれているようにしてユーザー個別で上書きできます。&lt;br /&gt;
* 他の {{ic|LC_*}} 変数を使いたいときは、まず {{ic|locale}} を実行してオプションを確認してから、{{ic|locale.conf}} に追加してください。{{ic|LC_ALL}} 変数を使うことは推奨されません。詳しくは[[ロケール]]を参照してください。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== コンソールフォントとキーマップ ===&lt;br /&gt;
&lt;br /&gt;
[[#言語の選択|言語の選択]]でデフォルトのキーマップとフォントを変更していた場合、再起動後もキーマップ設定が適用されるように、{{ic|/etc/vconsole.conf}} を編集 (ファイルがなかったら作成) してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|# nano /etc/vconsole.conf|2=&lt;br /&gt;
KEYMAP=&#039;&#039;jp106&#039;&#039;&lt;br /&gt;
FONT=&#039;&#039;lat9w-16&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
詳しくは[[フォント#コンソールフォント|コンソールフォント]]や {{ic|man vconsole.conf}} を参照。&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|KEYMAP}} を最初に &#039;&#039;loadkeys&#039;&#039; で設定した値と異なる値に設定してから、[[#root パスワードの設定|root パスワードを設定]]してしまうと、新しいシステムにログインするときにキーマップが変わっていてログインできなくなる可能性があります。}}&lt;br /&gt;
&lt;br /&gt;
以上の設定は仮想端末においてのみ適用されます。[[Xorg]] ではまた異なる設定をする必要があります。詳しくは[[フォント#コンソールフォント]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== タイムゾーン ===&lt;br /&gt;
&lt;br /&gt;
利用可能なタイムゾーンとサブゾーンは {{ic|/usr/share/zoneinfo/&#039;&#039;ゾーン&#039;&#039;/&#039;&#039;サブゾーン&#039;&#039;}} ディレクトリで見つかります。{{ic|ls}} コマンドでゾーンの一覧を表示できます:&lt;br /&gt;
 $ ls -l /usr/share/zoneinfo&lt;br /&gt;
&lt;br /&gt;
{{Tip|[http://tldp.org/LDP/abs/html/tabexpansion.html タブ補完] を使うことでも利用できるゾーンとサブゾーンを表示できます。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/localtime}} から適切なゾーンファイル {{ic|/usr/share/zoneinfo/&#039;&#039;ゾーン&#039;&#039;/&#039;&#039;サブゾーン&#039;&#039;}} へのシンボリックリンクを作って下さい:&lt;br /&gt;
&lt;br /&gt;
 # ln -s /usr/share/zoneinfo/&#039;&#039;ゾーン&#039;&#039;/&#039;&#039;サブゾーン&#039;&#039; /etc/localtime&lt;br /&gt;
&lt;br /&gt;
例:&lt;br /&gt;
&lt;br /&gt;
 # ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime&lt;br /&gt;
&lt;br /&gt;
{{ic|ln: failed to create symbolic link &#039;/etc/localtime&#039;: File exists}} と表示される場合は、{{ic|ls -l /etc/localtime}} で既存のファイルを確認してから、&#039;&#039;ln&#039;&#039; コマンドに {{ic|-f}} オプションを追加して上書きしてください。&lt;br /&gt;
&lt;br /&gt;
=== ハードウェアクロック ===&lt;br /&gt;
&lt;br /&gt;
ハードウェアクロックモードを全ての OS で同じになるように設定します。さもないと、ハードウェアクロックが上書きされ時刻がずれてしまう可能性があります。&#039;&#039;hwclock&#039;&#039; コマンドは {{ic|/etc/adjtime}} ファイルを生成します。[[Wikipedia:ja:協定世界時|UTC]] に設定するには、次を実行:&lt;br /&gt;
&lt;br /&gt;
 # hwclock --systohc --utc&lt;br /&gt;
&lt;br /&gt;
{{Note|ハードウェアクロックに [[Wikipedia:ja:協定世界時|UTC]] を使ったからといって、ソフトウェアが時刻を UTC で表示するわけではありません。}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|Windows はデフォルトで &#039;&#039;localtime&#039;&#039; を使っています。Arch で &#039;&#039;localtime&#039;&#039; を使用すると既知の問題や容易に修復できないバグを引き起こす可能性があります。しかしながら、&#039;&#039;localtime&#039;&#039; のサポートを終了する計画はありません。&#039;&#039;localtime&#039;&#039; を使用する場合は、root で {{ic|hwclock --systohc --localtime}} を実行してください。Windows 7 以降を使用する場合、Arch を &#039;&#039;localtime&#039;&#039; に設定するのではなく、Windows に UTC を使わせて、Windows の時刻同期を無効にすることが推奨されています。詳しくは[[時刻#Windows で UTC を使う]]を見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
=== カーネルモジュール ===&lt;br /&gt;
&lt;br /&gt;
必要なカーネルモジュールは基本的に [[udev]] によって自動ロードされるため、手動でモジュールをロードする必要があるのは稀です。詳しくは[[カーネルモジュール]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== ホスト名 ===&lt;br /&gt;
&lt;br /&gt;
お好きな名前を[[Wikipedia:ja:ホスト名|ホスト名]]に設定してください (例: &#039;&#039;arch&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
 # echo &#039;&#039;ホスト名&#039;&#039; &amp;gt; /etc/hostname&lt;br /&gt;
&lt;br /&gt;
同じホスト名を {{ic|/etc/hosts}} に追加します:&lt;br /&gt;
&lt;br /&gt;
 #&amp;lt;ip-address&amp;gt; &amp;lt;hostname.domain.org&amp;gt; &amp;lt;hostname&amp;gt;&lt;br /&gt;
 127.0.0.1 localhost.localdomain localhost &#039;&#039;ホスト名&#039;&#039;&lt;br /&gt;
 ::1   localhost.localdomain localhost &#039;&#039;ホスト名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== ネットワークの設定 ===&lt;br /&gt;
&lt;br /&gt;
ネットワークの設定をもう一度行います。今回は新しくインストールされる環境のネットワーク設定です。[[#インターネット接続の確立|上で説明した]]のと方法はほとんど同じですが、今回の設定では、設定が消えないように、ブート時に自動的に起動するように設定します。&lt;br /&gt;
&lt;br /&gt;
まず最初に、{{ic|ip link}} で接続を設定するネットワークインターフェイスの名前を確認してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* ネットワーク設定の詳しい情報は、[[ネットワーク設定]]や[[ワイヤレス設定]]を参照してください。&lt;br /&gt;
* インターフェースについて古い命名規則 ({{ic|eth&#039;&#039;X&#039;&#039;}} や {{ic|wlan&#039;&#039;X&#039;&#039;}}) を使って欲しい時は {{ic|/etc/udev/rules.d/80-net-setup-link.rules}} に空のファイルを作成してください。これによって {{ic|/usr/lib/udev/rules.d}} 下の同じ名前のファイルがマスクされます (空のファイルを使う代わりに、{{ic|/dev/null}} へのシンボリックリンクを使うことでも命名規則を戻せます: {{ic|# ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules}})。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== 有線 ====&lt;br /&gt;
&lt;br /&gt;
===== 動的 IP =====&lt;br /&gt;
&lt;br /&gt;
; dhcpcd を使う&lt;br /&gt;
&lt;br /&gt;
固定された有線ネットワーク接続が1つだけあるという環境の場合、ネットワーク管理サービスを使う必要はなく、単純に {{ic|dhcpcd}} サービスを有効にするだけで足ります:&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable dhcpcd@&#039;&#039;インターフェイス名&#039;&#039;.service&lt;br /&gt;
&lt;br /&gt;
; netctl を使う&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/netctl/examples}} からサンプルプロファイルを {{ic|/etc/netctl/}} にコピーしてください:&lt;br /&gt;
&lt;br /&gt;
 # cd /etc/netctl&lt;br /&gt;
 # cp examples/ethernet-dhcp my_network&lt;br /&gt;
&lt;br /&gt;
プロファイルを編集して下さい ({{ic|Interface}} を {{ic|eth0}} から {{ic|ip link}} を実行したときに確認したインターフェイス名に修正する):&lt;br /&gt;
&lt;br /&gt;
 # nano my_network&lt;br /&gt;
&lt;br /&gt;
{{ic|my_network}} プロファイルを有効にしてください:&lt;br /&gt;
&lt;br /&gt;
 # netctl enable my_network&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|Running in chroot, ignoring request.}} というメッセージが表示されることがありますが、いまのところは無視してかまいません。}}&lt;br /&gt;
&lt;br /&gt;
; netctl-ifplugd を使う&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|netctl enable &#039;&#039;プロファイル名&#039;&#039;}} のようにしてプロファイルを有効にする方法と netctl-ifplugd を使う方法を一緒に用いることはできません。}}&lt;br /&gt;
&lt;br /&gt;
{{Pkg|netctl}} の {{ic|netctl-ifplugd}} を使って動的に接続を管理することもできます。&lt;br /&gt;
&lt;br /&gt;
まず {{Pkg|ifplugd}} をインストールしてください、{{ic|netctl-ifplugd}} を使うために必要なパッケージです:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S ifplugd&lt;br /&gt;
&lt;br /&gt;
そしてサービスを有効にしてください:&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable netctl-ifplugd@&#039;&#039;インターフェイス名&#039;&#039;.service&lt;br /&gt;
&lt;br /&gt;
{{Note|[[netctl]] には {{ic|netctl-auto}} もあり、{{ic|netctl-ifplugd}} と一緒に無線プロファイルを管理するのに使うことができます。}}&lt;br /&gt;
&lt;br /&gt;
===== 固定 IP =====&lt;br /&gt;
&lt;br /&gt;
; netctl を使う&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/network.d/examples}} から {{ic|/etc/netctl}} にサンプルプロファイルをコピーします:&lt;br /&gt;
&lt;br /&gt;
 # cd /etc/netctl&lt;br /&gt;
 # cp examples/ethernet-static my_network&lt;br /&gt;
&lt;br /&gt;
必要に応じてプロファイルを編集 ({{ic|Interface}}, {{ic|Address}}, {{ic|Gateway}}, {{ic|DNS}} を修正):&lt;br /&gt;
&lt;br /&gt;
 # nano my_network&lt;br /&gt;
&lt;br /&gt;
{{ic|Address}} の中の {{ic|/24}} は {{ic|255.255.255.0}} ネットマスクの [[wikipedia:Classless Inter-Domain Routing#CIDR notation|CIDR notation]] です。&lt;br /&gt;
&lt;br /&gt;
そして作成したプロファイルを有効にしてください:&lt;br /&gt;
&lt;br /&gt;
 # netctl enable my_network&lt;br /&gt;
&lt;br /&gt;
; systemd-networkd を使う&lt;br /&gt;
&lt;br /&gt;
[[systemd-networkd]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==== 無線 ====&lt;br /&gt;
&lt;br /&gt;
{{Note|あなたの使っているワイヤレスアダプタにファームウェアが必要な場合 (上の[[#インターネット接続の確立|インターネット接続の確立]]セクションと[[ワイヤレス設定#ドライバとファームウェア|ここ]]に記述あり)、ファームウェアを含んだパッケージをインストールしてください。ほとんどの場合、{{Pkg|linux-firmware}} パッケージに必要なファームウェアが含まれていますが、機器によっては個別のパッケージにファームウェアが存在します。例えば: {{ic|# pacman -S zd1211-firmware}}。詳しくは[[ワイヤレス設定]]を見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
ネットワークに接続するために {{pkg|iw}} と {{pkg|wpa_supplicant}} をインストールしてください:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S iw wpa_supplicant&lt;br /&gt;
&lt;br /&gt;
===== 無線ネットワークの追加 =====&lt;br /&gt;
; wifi-menu を使う&lt;br /&gt;
&lt;br /&gt;
{{ic|wifi-menu}} に必要な {{pkg|dialog}} をインストールしてください:&lt;br /&gt;
 # pacman -S dialog&lt;br /&gt;
&lt;br /&gt;
このインストールと再起動が終わった後 {{ic|wifi-menu &#039;&#039;インターフェイス名&#039;&#039;}} ({{ic|&#039;&#039;インターフェイス名&#039;&#039;}} はあなたの無線インターフェースに置き換えてください) でネットワークに接続することができます。&lt;br /&gt;
&lt;br /&gt;
 # wifi-menu &#039;&#039;インターフェイス名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|wifi-menu}} を使う時は、絶対に chroot を終了して再起動した&#039;&#039;後&#039;&#039;にしてください。このコマンドを使って作成されたものが chroot の外で動作させているものと衝突してしまう恐れがあるからです。また、上で書かれているようにテンプレートを使って手動でネットワークプロファイルを設定することもできます、その場合は {{ic|wifi-menu}} を使うことについての心配はいりません。}}&lt;br /&gt;
&lt;br /&gt;
; 手動の netctl プロファイルを使う&lt;br /&gt;
&lt;br /&gt;
ネットワークプロファイルを {{ic|/etc/netctl/examples}} から {{ic|/etc/netctl}} にコピーしてください:&lt;br /&gt;
&lt;br /&gt;
 # cd /etc/netctl&lt;br /&gt;
 # cp examples/wireless-wpa my_network&lt;br /&gt;
&lt;br /&gt;
接続するネットワークにあわせてプロファイルを編集してください ({{ic|Interface}}, {{ic|ESSID}}, {{ic|Key}} を修正):&lt;br /&gt;
&lt;br /&gt;
 # nano my_network&lt;br /&gt;
&lt;br /&gt;
作成したプロファイルがブート毎に実行されるよう有効にしてください:&lt;br /&gt;
&lt;br /&gt;
 # netctl enable my_network&lt;br /&gt;
&lt;br /&gt;
===== 既知のネットワークに自動で接続する =====&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|netctl enable &#039;&#039;プロファイル名&#039;&#039;}} のようにしてプロファイルを有効にする方法とこの方法を一緒に使うことはできません。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|netctl-auto}} に必要な {{Pkg|wpa_actiond}} をインストールしてください:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S wpa_actiond&lt;br /&gt;
&lt;br /&gt;
{{ic|netctl-auto}} サービスを有効にすれば、既知のネットワークに接続しローミングや切断を管理します:&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable netctl-auto@&#039;&#039;インターフェイス名&#039;&#039;.service&lt;br /&gt;
&lt;br /&gt;
{{Note|[[netctl]] には {{ic|netctl-ifplugd}} もあり、{{ic|netctl-auto}} と一緒に有線プロファイルを管理するのに使われます。}}&lt;br /&gt;
&lt;br /&gt;
==== xDSL (PPPoE), アナログモデム, ISDN ====&lt;br /&gt;
&lt;br /&gt;
xDSL、ダイアルアップ・ISDN 接続は、[[モデムに直接接続]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== Initial ramdisk 環境の作成 ===&lt;br /&gt;
&lt;br /&gt;
{{Tip|ほとんどのユーザーはこの手順をスキップし、{{ic|mkinitcpio.conf}} のデフォルト設定を使って問題ありません。initramfs イメージ ({{ic|/boot}} フォルダ内) は {{ic|pacstrap}} によって {{Pkg|linux}} パッケージ (Linux カーネル) をインストールしたときに、{{ic|mkinitcpio.conf}} に基づいて既に生成されています。}}&lt;br /&gt;
&lt;br /&gt;
root が USB ドライブにあったり、RAID や LVM を使っていたり、{{ic|/usr}} が分割されたパーティション上にある場合は、ここで正しい [[Mkinitcpio#HOOKS|hooks]] を設定しなくてはなりません。&lt;br /&gt;
&lt;br /&gt;
必要に応じて {{ic|/etc/mkinitcpio.conf}} を編集し、initramfs イメージを再形成します:&lt;br /&gt;
&lt;br /&gt;
 # mkinitcpio -p linux&lt;br /&gt;
&lt;br /&gt;
=== root パスワードの設定 ===&lt;br /&gt;
&lt;br /&gt;
root パスワードを設定します:&lt;br /&gt;
&lt;br /&gt;
 # passwd&lt;br /&gt;
&lt;br /&gt;
=== ブートローダのインストールと設定 ===&lt;br /&gt;
&lt;br /&gt;
Intel の CPU を使っている場合、{{Pkg|intel-ucode}} パッケージをインストールして[[マイクロコード#Intel のマイクロコードのアップデートを有効にする|マイクロコードのアップデートを有効化]]してください。&lt;br /&gt;
&lt;br /&gt;
==== BIOS マザーボードの場合 ====&lt;br /&gt;
&lt;br /&gt;
BIOS システムでは、複数のブートローダが使えます。ブートローダの完全なリストは[[ブートローダー]]にあります。あなたの都合に合わせてどれか一つを選んで下さい。よく使われるブートローダーは:&lt;br /&gt;
&lt;br /&gt;
* [[Syslinux]] は現在 Syslinux がインストールされたパーティションのファイルのみをロードするように制限されています。設定ファイルはわかりやすいものになっています。設定サンプルは [[Syslinux#サンプル|Syslinux]] の記事にあります。&lt;br /&gt;
&lt;br /&gt;
* [[GRUB]] はより多くの機能を備えた複雑なブートローダです。設定ファイルはスクリプト言語 (sh) に似ていて、初心者が手動で設定するには難しいかもしれません。自動で設定を生成するのが推奨されます。&lt;br /&gt;
&lt;br /&gt;
ここからは、GRUB と MBR の組み合わせでのインストールを説明します。まず {{Pkg|grub}} パッケージをインストールします。GRUB が他のオペレーティングシステムも検索できるように、{{Pkg|os-prober}} もインストールしておきます:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S grub os-prober&lt;br /&gt;
&lt;br /&gt;
{{ic|grub-install}} を実行してブートローダをインストールしてください:&lt;br /&gt;
&lt;br /&gt;
 # grub-install --recheck &#039;&#039;/dev/sda&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* {{ic|/dev/sda}} はあなたが Arch をインストールしたドライブに書き換えてください。パーティション番号を加えてはいけません ({{ic|sda&#039;&#039;X&#039;&#039;}} を使ってはいけません)。&lt;br /&gt;
* サンプルの {{ic|/boot/grub/grub.cfg}} は grub パッケージの一部としてインストールされ、後の {{ic|grub-*}} コマンドでは上書きされません。変更を加えるときは {{ic|grub.cfg.new}} などのファイルではなく {{ic|grub.cfg}} を編集してください。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
次に {{ic|grub.cfg}} を作ります。手動で作る方が細かい設定ができますが、初心者は自動で生成するのが推奨されています:&lt;br /&gt;
&lt;br /&gt;
 # grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
GRUB の使用・設定の詳しい情報は、[[GRUB]] を参照。&lt;br /&gt;
&lt;br /&gt;
==== UEFI マザーボードの場合 ====&lt;br /&gt;
&lt;br /&gt;
{{Note|UEFI ファームウェアによってはインストールしたブートローダーの {{ic|.efi}} ブータブルスタブを特定の名前で特定の場所に配置する必要があります: {{ic|$esp/EFI/boot/bootx64.efi}} ({{ic|$esp}} は EFI System Partition のマウントポイントに置き換えて下さい)。これをしていないと場合によっては、インストールした環境を起動できなくなることがあります。詳しくはそれぞれのブートローダーのセクションを見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
UEFI システムでも、複数のブートローダが使えます。利用できるブートローダの完全なリストは[[ブートローダー]]にあります。あなたの都合にあわせて選んで下さい。ここでは、2つのブートローダを例として提示します:&lt;br /&gt;
&lt;br /&gt;
* [[systemd-boot]] は最小主義の UEFI ブートマネージャで、[[EFISTUB]] カーネルや他の UEFI アプリケーションのためのメニューを提供します。初心者、特に Windows 8 などの別のオペレーティングシステムとデュアルブートをしたいユーザーに推奨です。&lt;br /&gt;
* [[GRUB]] は完全なブートローダーで、systemd-boot で問題が起きた時に役に立ちます。&lt;br /&gt;
&lt;br /&gt;
ここからは systemd-boot のインストールを説明します。まず、インストール後に EFI System Partition を操作するための {{Pkg|dosfstools}} パッケージをインストールしてください:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S dosfstools&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* UEFI でブートするには、ドライブは GPT でパーティションされている必要があり、[[Unified Extensible Firmware Interface#EFI System Partition|EFI System Partition]] (512 MiB 以上, FAT32, gdisk タイプ {{ic|EF00}}) が存在しなければなりません。このガイドを初めから実行しているのなら、すでに全て行われているはずです。&lt;br /&gt;
* systemd-boot が自動的にアップデートされるように EFI System Partition は {{ic|/boot}} にマウントすることを強く推奨します。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
自動インストールスクリプトを実行してブートローダを EFI System Partition にインストールしてください ({{ic|$esp}} は EFI System Partiton の場所に置き換えて下さい、通常は {{ic|/boot}} です):&lt;br /&gt;
&lt;br /&gt;
 # bootctl --path=&#039;&#039;$esp&#039;&#039; install&lt;br /&gt;
&lt;br /&gt;
Bootctl はファームウェアによって自動で検出され、{{ic|bootx64.efi}} ブータブルスタブが {{ic|$esp/EFI/boot}} にあることを必要とします。そして {{ic|.efi}} スタブを使ってインストールされている別のオペレーティングシステムを自動で検出します。ただし、bootctl の設定ファイルは手動で作成する必要があります。&lt;br /&gt;
&lt;br /&gt;
まず、{{ic|&#039;&#039;$esp&#039;&#039;/loader/entries/arch.conf}} を作成して以下を記述します、{{ic|/dev/sdaX}} は &#039;&#039;root&#039;&#039; パーティションに置き換えて下さい (例: {{ic|/dev/sda2}}):&lt;br /&gt;
{{hc|# nano &#039;&#039;$esp&#039;&#039;/loader/entries/arch.conf|2=&lt;br /&gt;
title          Arch Linux&lt;br /&gt;
linux          /vmlinuz-linux&lt;br /&gt;
initrd         /initramfs-linux.img&lt;br /&gt;
options        root=&#039;&#039;&#039;/dev/sdaX&#039;&#039;&#039; rw&lt;br /&gt;
}}&lt;br /&gt;
次に、{{ic|&#039;&#039;$esp&#039;&#039;/loader/loader.conf}} を作成して以下を記述します、timeout の値は自由に変更できます (秒数):&lt;br /&gt;
{{hc|# nano &#039;&#039;$esp&#039;&#039;/loader/loader.conf|2=&lt;br /&gt;
default  arch&lt;br /&gt;
timeout  5&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
詳しい情報は [[systemd-boot]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
== パーティションのアンマウントと再起動 ==&lt;br /&gt;
&lt;br /&gt;
chroot 環境を脱出します:&lt;br /&gt;
&lt;br /&gt;
 # exit&lt;br /&gt;
&lt;br /&gt;
{{Note|パーティションは &#039;&#039;systemd&#039;&#039; によってシャットダウン時に自動的にアンマウントされますが、安全対策として {{ic|umount -R /mnt}} を使って手動でアンマウントすることもできます。パーティションがビジー状態の場合、[[Wikipedia:fuser_(Unix)|fuser]] で原因を特定できます。}}&lt;br /&gt;
&lt;br /&gt;
コンピュータを再起動:&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
{{Tip|インストールメディアを取り出してください、そうしないともう一度セットアップが起動してしまいます。マシンにログインするときはユーザー &amp;quot;root&amp;quot; と前に passwd コマンドで設定したパスワードを使います。デフォルトのパスワードは &amp;quot;root&amp;quot; です。}}&lt;br /&gt;
&lt;br /&gt;
== インストールのその先 ==&lt;br /&gt;
&lt;br /&gt;
あなたの新しい Arch Linux ベースシステムは今、あなたの目的や希望のために必要な全てを入れる準備ができた GNU/Linux になっています。ここからは[[一般的な推奨事項]]のページを見ることを推奨します。特に最初の2つのセクションは必読です。また、他のセクションには、グラフィカルユーザーインターフェイス (GUI) やサウンド、タッチパッドの設定などのチュートリアルが書かれたページヘのリンクが載っています。&lt;br /&gt;
&lt;br /&gt;
あなたの興味を引くであろうアプリケーションの一覧は、[[アプリケーション一覧]]を参照。&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Pacman/%E3%83%92%E3%83%B3%E3%83%88%E3%81%A8%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF&amp;diff=4558</id>
		<title>Pacman/ヒントとテクニック</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Pacman/%E3%83%92%E3%83%B3%E3%83%88%E3%81%A8%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF&amp;diff=4558"/>
		<updated>2015-12-28T02:36:47Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:パッケージ管理]]&lt;br /&gt;
[[en:Pacman tips]]&lt;br /&gt;
[[es:Pacman tips]]&lt;br /&gt;
[[fr:Astuces Pacman]]&lt;br /&gt;
[[it:Pacman Tips]]&lt;br /&gt;
[[ru:Pacman tips]]&lt;br /&gt;
[[tr:Pacman ipuçları]]&lt;br /&gt;
[[zh-CN:Pacman Tips]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|pacman}}&lt;br /&gt;
{{Related|pacman のパフォーマンスの向上}}&lt;br /&gt;
{{Related|ミラー}}&lt;br /&gt;
{{Related|パッケージの作成}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
[[pacman]] を新しく使い始めた人向けのヒント集。&lt;br /&gt;
&lt;br /&gt;
== 外観と利便性の向上 ==&lt;br /&gt;
&lt;br /&gt;
=== カラー出力 ===&lt;br /&gt;
&lt;br /&gt;
バージョン 4.1 から Pacman にはカラーオプションが付きました。{{ic|pacman.conf}} の中の &amp;quot;Color&amp;quot; という行をアンコメントしてください。&lt;br /&gt;
&lt;br /&gt;
=== アップデート前にバージョンを比較する ===&lt;br /&gt;
&lt;br /&gt;
アップデートする前に今インストールされているバージョンと新しいバージョンを表示するには、{{ic|/etc/pacman.conf}} の中の &amp;quot;VerbosePkgLists&amp;quot; という行をアンコメントしてください。{{ic|pacman -Syu}} の出力がこのようになります:&lt;br /&gt;
&lt;br /&gt;
 Package (6)             Old Version  New Version  Net Change  Download Size&lt;br /&gt;
 &lt;br /&gt;
 extra/libmariadbclient  10.1.9-4     10.1.10-1      0.03 MiB       4.35 MiB&lt;br /&gt;
 extra/libpng            1.6.19-1     1.6.20-1       0.00 MiB       0.23 MiB&lt;br /&gt;
 extra/mariadb           10.1.9-4     10.1.10-1      0.26 MiB      13.80 MiB&lt;br /&gt;
&lt;br /&gt;
=== ショートカット ===&lt;br /&gt;
&lt;br /&gt;
以下では、よく使われる pacman コマンドの入力の手間を省くスクリプトエイリアスを説明しています。&lt;br /&gt;
&lt;br /&gt;
==== シェルの設定 ====&lt;br /&gt;
&lt;br /&gt;
以下の例を追加して下さい、[[Bash]] と [[Zsh]] のどちらでも動作します:&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
# pacman エイリアスの例&lt;br /&gt;
alias pacupg=&amp;quot;sudo pacman -Syu&amp;quot;     # リポジトリと同期し、古くなっているパッケージをアップデートする&lt;br /&gt;
alias pacdl=&amp;quot;pacman -Sw&amp;quot;            # 指定パッケージを .tar.xz としてダウンロードする&lt;br /&gt;
alias pacin=&amp;quot;sudo pacman -S&amp;quot;        # リポジトリからパッケージをインストールする&lt;br /&gt;
alias pacins=&amp;quot;sudo pacman -U&amp;quot;       # ファイルからパッケージをインストールする &lt;br /&gt;
alias pacre=&amp;quot;sudo pacman -R&amp;quot;        # 指定パッケージを削除する。その設定と依存関係は維持される。&lt;br /&gt;
alias pacrem=&amp;quot;sudo pacman -Rns&amp;quot;     # 指定パッケージとその設定、不要な依存関係を削除する&lt;br /&gt;
alias pacrep=&amp;quot;pacman -Si&amp;quot;           # リポジトリ内の指定パッケージに関する情報を表示する&lt;br /&gt;
alias pacreps=&amp;quot;pacman -Ss&amp;quot;          # リポジトリからパッケージを検索する&lt;br /&gt;
alias pacloc=&amp;quot;pacman -Qi&amp;quot;           # ローカルデータベース内の指定パッケージに関する情報を表示する&lt;br /&gt;
alias paclocs=&amp;quot;pacman -Qs&amp;quot;          # ローカルデータベースからパッケージを検索する&lt;br /&gt;
alias paclo=&amp;quot;pacman -Qdt&amp;quot;           # 全ての孤児パッケージを表示する&lt;br /&gt;
alias pacc=&amp;quot;sudo pacman -Scc&amp;quot;       # キャッシュ中の全パッケージを削除する&lt;br /&gt;
alias paclf=&amp;quot;pacman -Ql&amp;quot;            # 指定パッケージによりインストールされたファイルのリストを表示する&lt;br /&gt;
alias pacown=&amp;quot;pacman -Qo&amp;quot;           # 指定ファイルを所有するパッケージを表示する&lt;br /&gt;
alias pacexpl=&amp;quot;pacman -D --asexp&amp;quot;   # 1個以上のインストール済みパッケージを「明示的にインストールされた」とマークする &lt;br /&gt;
alias pacimpl=&amp;quot;pacman -D --asdep&amp;quot;   # 1個以上のインストール済みパッケージを「依存関係によりインストールされた」とマークする&lt;br /&gt;
&lt;br /&gt;
# さらなる pacman エイリアスの例&lt;br /&gt;
alias pacupd=&amp;quot;sudo pacman -Sy &amp;amp;&amp;amp; sudo abs&amp;quot;         # ローカルのパッケージと ABS のデータベースをリポジトリと同期する&lt;br /&gt;
alias pacinsd=&amp;quot;sudo pacman -S --asdeps&amp;quot;            # 指定パッケージを依存関係としてインストールする&lt;br /&gt;
alias pacmir=&amp;quot;sudo pacman -Syy&amp;quot;                    # /etc/pacman.d/mirrorlist を更新した後でパッケージのリストを強制的にリフレッシュする&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
以下のコマンドも便利ですが、危険でもあります。使用する時は、何が起こるのか完全に理解するようにしてください:&lt;br /&gt;
&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
# 以下の pacman のメッセージに対処する:&lt;br /&gt;
# &lt;br /&gt;
#     error: couldnt lock database: file exists&lt;br /&gt;
#     if you are sure a package manager is not already running, you can remove /var/lib/pacman/db.lck&lt;br /&gt;
&lt;br /&gt;
alias pacunlock=&amp;quot;sudo rm /var/lib/pacman/db.lck&amp;quot;   # ロックファイル /var/lib/pacman/db.lck を削除する&lt;br /&gt;
alias paclock=&amp;quot;sudo touch /var/lib/pacman/db.lck&amp;quot;  # ロックファイル /var/lib/pacman/db.lck を作成する&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== 使用方法 ====&lt;br /&gt;
&lt;br /&gt;
エイリアスの名前を入力するだけでそれぞれのコマンドが実行できます。例えば、リポジトリを同期して古くなっているパッケージをアップグレードするには:&lt;br /&gt;
 $ pacupg&lt;br /&gt;
リポジトリからパッケージをインストール:&lt;br /&gt;
 $ pacin &amp;lt;package1&amp;gt; &amp;lt;package2&amp;gt; &amp;lt;package3&amp;gt;&lt;br /&gt;
カスタムビルドパッケージをインストール:&lt;br /&gt;
 $ pacins /path/to/&amp;lt;package&amp;gt;&lt;br /&gt;
インストールしたパッケージを完全に削除:&lt;br /&gt;
 $ pacrem &amp;lt;package&amp;gt;&lt;br /&gt;
リポジトリからパッケージを検索:&lt;br /&gt;
 $ pacreps &amp;lt;keywords&amp;gt;&lt;br /&gt;
リポジトリにあるパッケージの情報 (サイズ、依存関係など) を表示:&lt;br /&gt;
 $ pacrep &amp;lt;keywords&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ノート ====&lt;br /&gt;
&lt;br /&gt;
上記のエイリアスは例にすぎません。構文サンプルに従って、便利なようにエイリアスの名前を変えることが可能です。例えば:&lt;br /&gt;
&lt;br /&gt;
 alias pacrem=&#039;sudo pacman -Rns&#039;&lt;br /&gt;
 alias pacout=&#039;sudo pacman -Rns&#039;&lt;br /&gt;
&lt;br /&gt;
上の場合、コマンド {{ic|pacrem}} と {{ic|pacout}} はどちらも同じコマンドを実行します。&lt;br /&gt;
&lt;br /&gt;
=== オペレーションと Bash 構文 ===&lt;br /&gt;
&lt;br /&gt;
pacman の標準の機能に加えて、初歩的な [[Bash]] コマンド・構文を使うことでユーザビリティを拡張する方法が存在します。&lt;br /&gt;
&lt;br /&gt;
* 名前に同じようなパターンがあるパッケージを多数インストールする必要があり、グループ全体やマッチするパッケージ全てはインストールしないとき。例えば {{Grp|kde}}:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S kde-{applets,theme,tools}&lt;br /&gt;
&lt;br /&gt;
* もちろん、これに制限はなく、拡張することができます:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S kde-{ui-{kde,kdemod},kdeartwork}&lt;br /&gt;
&lt;br /&gt;
* 場合によっては、{{Ic|-s}} が不必要な多くの結果を招いてしまうことがあります。こういうときにはパッケージの名前だけにマッチするように（説明やその他のフィールドには引っかからないように）制限をかけることが可能です:&lt;br /&gt;
&lt;br /&gt;
 # pacman -Ss &#039;^vim-&#039;&lt;br /&gt;
&lt;br /&gt;
* pacman にはバージョンカラムを隠す {{ic|-q}} オペランドがあり、&amp;quot;compiz&amp;quot; を名前の一部に含むパッケージを再インストールしたりすることが可能です:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S $(pacman -Qq | grep compiz)&lt;br /&gt;
&lt;br /&gt;
* もしくはリポジトリのパッケージ全てをインストールしてください (例: kde-unstable):&lt;br /&gt;
&lt;br /&gt;
 # pacman -S $(pacman -Slq kde-unstable)&lt;br /&gt;
&lt;br /&gt;
== メンテナンス ==&lt;br /&gt;
&lt;br /&gt;
[[The Arch Way]] に従ってシステムを清潔に保つための管理業務。&lt;br /&gt;
&lt;br /&gt;
[[システムメンテナンス]]も参照。&lt;br /&gt;
&lt;br /&gt;
=== 最後にインストールしたパッケージを表示 ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|expac}} をインストールして {{ic|&amp;lt;nowiki&amp;gt;expac --timefmt=&#039;%Y-%m-%d %T&#039; &#039;%l\t%n&#039; | sort | tail -20&amp;lt;/nowiki&amp;gt;}} または {{ic|&amp;lt;nowiki&amp;gt;expac --timefmt=%s &#039;%l\t%n&#039; | sort -n | tail -20&amp;lt;/nowiki&amp;gt;}} を実行してください。&lt;br /&gt;
&lt;br /&gt;
=== インストールしたパッケージを容量と一緒にリストアップ ===&lt;br /&gt;
&lt;br /&gt;
容量でソートしたインストール済みパッケージの一覧を見ることができます、これはハードドライブの空き容量を増やしたいときに役立ちます。&lt;br /&gt;
* {{Pkg|expac}} をインストールして {{ic|&amp;lt;nowiki&amp;gt;expac -s &amp;quot;%-30n %m&amp;quot; | sort -hk 2 | awk &#039;{printf &amp;quot;%s %.0f MiB\n&amp;quot;, $1, $2/1024/1024}&#039; | column -t&amp;lt;/nowiki&amp;gt;}} を実行する。&lt;br /&gt;
* pacgraph に -c オプションを付けて実行することで全てのインストールしたパッケージと容量のリストを作成できます。{{Pkg|pacgraph}} は [community] からインストールできます。&lt;br /&gt;
* base や base-devel に含まれていない明示的にインストールしたパッケージを容量や説明と共に一覧する: {{ic|&amp;lt;nowiki&amp;gt;expac -HM &amp;quot;%011m\t%-20n\t%10d&amp;quot; $( comm -23 &amp;lt;(pacman -Qqen|sort) &amp;lt;(pacman -Qqg base base-devel|sort) ) | sort -n&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== インストールしたパッケージをバージョンと一緒にリストアップ ===&lt;br /&gt;
&lt;br /&gt;
バグを報告したりインストールしたパッケージについて議論するときに、インストールしたパッケージのリストをパッケージのバージョンと一緒に取得する良いでしょう。&lt;br /&gt;
* 明示的にインストールしたパッケージを全て一覧する: {{ic| pacman -Qe }}。&lt;br /&gt;
* 外部からインストールしたパッケージを一覧する (通常は手動でダウンロード・インストールしたパッケージ): {{ic| pacman -Qm }}。&lt;br /&gt;
* 全てのネイティブなパッケージを一覧する (同期データベースからインストールしたパッケージ): {{ic| pacman -Qn }}.&lt;br /&gt;
* 正規表現でパッケージを一覧する: {{ic| &amp;lt;nowiki&amp;gt;pacman -Qs &amp;lt;regex&amp;gt; | awk &#039;BEGIN { RS=&amp;quot;\n&amp;quot; ; FS=&amp;quot;/&amp;quot; } { print $2 }&#039; | awk &#039;{ if(NF &amp;gt; 0) print $1, $2 }&#039;&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
* {{Pkg|expac}} をインストールして {{ic| expac -s &amp;quot;%-30n %v&amp;quot;}} を実行する&lt;br /&gt;
&lt;br /&gt;
=== アップデートを確認する ===&lt;br /&gt;
&lt;br /&gt;
Pacman には {{ic|checkupdates}} というスクリプトが付属しています。実行するのに root 権限は必要ありません。&lt;br /&gt;
&lt;br /&gt;
=== ファイルがどのパッケージにも所有されていないことを確認 ===&lt;br /&gt;
&lt;br /&gt;
pacman データベースの外のファイルを定期的にチェックすることを推奨します。これらのファイルは通例の方法を使って (例: {{ic|./configure &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install}}) でインストールしたサードパーティのアプリケーションであることが度々です。こうしたファイル（もしくはシンボリックリンク）をファイルシステムから検索するにはシンプルなスクリプトを使います:&lt;br /&gt;
&lt;br /&gt;
{{hc|pacman-disowned|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
tmp=${TMPDIR-/tmp}/pacman-disowned-$UID-$$&lt;br /&gt;
db=$tmp/db&lt;br /&gt;
fs=$tmp/fs&lt;br /&gt;
&lt;br /&gt;
mkdir &amp;quot;$tmp&amp;quot;&lt;br /&gt;
trap &#039;rm -rf &amp;quot;$tmp&amp;quot;&#039; EXIT&lt;br /&gt;
&lt;br /&gt;
pacman -Qlq | sort -u &amp;gt; &amp;quot;$db&amp;quot;&lt;br /&gt;
&lt;br /&gt;
find /etc /opt /usr ! -name lost+found \( -type d -printf &#039;%p/\n&#039; -o -print \) | sort &amp;gt; &amp;quot;$fs&amp;quot;&lt;br /&gt;
&lt;br /&gt;
comm -23 &amp;quot;$fs&amp;quot; &amp;quot;$db&amp;quot;&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
リストを生成するには:&lt;br /&gt;
&lt;br /&gt;
 $ pacman-disowned &amp;gt; non-db.txt&lt;br /&gt;
&lt;br /&gt;
各エントリを確認しないで {{ic|non-db.txt}} に載っているファイルを全て削除するのは&#039;&#039;&#039;よくありません&#039;&#039;&#039;。様々な設定ファイルやログなどがあるかもしれないので、{{Ic|grep}} を使って相互参照を広く確実に検索した後でこのリストを使うようにしてください。&lt;br /&gt;
&lt;br /&gt;
以下は役に立つワンライナーのスクリプトです。&lt;br /&gt;
&lt;br /&gt;
どのパッケージにも属していないディレクトリを表示:&lt;br /&gt;
&lt;br /&gt;
 alias pacman-disowned-dirs=&amp;quot;comm -23 &amp;lt;(sudo find / \( -path &#039;/dev&#039; -o -path &#039;/sys&#039; -o -path &#039;/run&#039; -o -path &#039;/tmp&#039; -o -path &#039;/mnt&#039; -o -path &#039;/srv&#039; -o -path &#039;/proc&#039; -o -path &#039;/boot&#039; -o -path &#039;/home&#039; -o -path &#039;/root&#039; -o -path &#039;/media&#039; -o -path &#039;/var/lib/pacman&#039; -o -path &#039;/var/cache/pacman&#039; \) -prune -o -type d -print | sed &#039;s/\([^/]\)$/\1\//&#039; | sort -u) &amp;lt;(pacman -Qlq | sort -u)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
どのパッケージにも属していないファイルを表示:&lt;br /&gt;
&lt;br /&gt;
 alias pacman-disowned-files=&amp;quot;comm -23 &amp;lt;(sudo find / \( -path &#039;/dev&#039; -o -path &#039;/sys&#039; -o -path &#039;/run&#039; -o -path &#039;/tmp&#039; -o -path &#039;/mnt&#039; -o -path &#039;/srv&#039; -o -path &#039;/proc&#039; -o -path &#039;/boot&#039; -o -path &#039;/home&#039; -o -path &#039;/root&#039; -o -path &#039;/media&#039; -o -path &#039;/var/lib/pacman&#039; -o -path &#039;/var/cache/pacman&#039; \) -prune -o -type f -print | sort -u) &amp;lt;(pacman -Qlq | sort -u)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== 孤立したパッケージの削除 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;再帰的に&#039;&#039;孤立したパッケージ（とその設定ファイル）を削除するには:&lt;br /&gt;
&lt;br /&gt;
 # pacman -Rns $(pacman -Qtdq)&lt;br /&gt;
&lt;br /&gt;
孤立したパッケージが見つからなかった場合、pacman は {{ic|error: no targets specified}} を出力します。{{ic|pacman -Rns}} に何も引数が指定されていないとこうなります。&lt;br /&gt;
&lt;br /&gt;
以下の関数を {{ic|~/.bashrc}} に挿入することで孤立したパッケージを簡単に削除できます:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.bashrc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
orphans() {&lt;br /&gt;
  if [[ ! -n $(pacman -Qdt) ]]; then&lt;br /&gt;
    echo &amp;quot;No orphans to remove.&amp;quot;&lt;br /&gt;
  else&lt;br /&gt;
    sudo pacman -Rns $(pacman -Qdtq)&lt;br /&gt;
  fi&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{Note|上記のスクリプトやコマンドは本当は孤立していないパッケージを表示する可能性があるため、実は孤立パッケージでないパッケージを削除する危険性があります。本当に孤立しているパッケージだけを削除するようにしたい場合、{{AUR|pkg_scripts}} パッケージの [http://xyne.archlinux.ca/projects/pkg_scripts/#help-message-pkg-list_true_orphans pkg-list_true_orphans] を使って下さい。}}&lt;br /&gt;
&lt;br /&gt;
=== 使用していないパッケージの削除 ===&lt;br /&gt;
&lt;br /&gt;
システムは軽いほうがメンテナンスしやすいので、ときどき明示的にインストールパッケージを眺めて、使用していないパッケージを削除するべきだと&#039;&#039;手動で&#039;&#039;選択すると良いでしょう。&lt;br /&gt;
&lt;br /&gt;
公式リポジトリに含まれているパッケージで明示的にインストールしたパッケージを表示するには:&lt;br /&gt;
&lt;br /&gt;
 $ pacman -Qen&lt;br /&gt;
&lt;br /&gt;
公式リポジトリに含まれていないパッケージで明示的にインストールしたパッケージを表示するには:&lt;br /&gt;
&lt;br /&gt;
 $ pacman -Qem&lt;br /&gt;
&lt;br /&gt;
=== base グループ以外の全てのパッケージを削除する ===&lt;br /&gt;
&lt;br /&gt;
base グループを除く全てのパッケージを削除する必要がある場合は、このワンライナーを試して下さい:&lt;br /&gt;
&lt;br /&gt;
 # pacman -R $(comm -23 &amp;lt;(pacman -Qq|sort) &amp;lt;((for i in $(pacman -Qqg base); do pactree -ul $i; done)|sort -u|cut -d &#039; &#039; -f 1))&lt;br /&gt;
&lt;br /&gt;
ソース: [https://bbs.archlinux.org/viewtopic.php?id=130176 Look at discussion here]&lt;br /&gt;
&lt;br /&gt;
ノート:&lt;br /&gt;
&lt;br /&gt;
# {{ic|comm}} requires sorted input otherwise you get e.g. {{ic|comm: file 1 is not in sorted order}}.&lt;br /&gt;
# {{ic|pactree}} prints the package name followed by what it provides. For example:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ pactree -lu logrotate|&lt;br /&gt;
logrotate&lt;br /&gt;
popt&lt;br /&gt;
glibc&lt;br /&gt;
linux-api-headers&lt;br /&gt;
tzdata&lt;br /&gt;
dcron cron&lt;br /&gt;
bash&lt;br /&gt;
readline&lt;br /&gt;
ncurses&lt;br /&gt;
gzip}}&lt;br /&gt;
&lt;br /&gt;
The {{ic|dcron cron}} line seems to cause problems, that is why {{ic|cut -d &#039; &#039; -f 1}} is needed - to keep just the package name.&lt;br /&gt;
&lt;br /&gt;
=== 公式にインストールされたパッケージのみを一覧する ===&lt;br /&gt;
&lt;br /&gt;
 $ pacman -Qqn&lt;br /&gt;
&lt;br /&gt;
同期データベースに存在するパッケージを一覧します。非公式のリポジトリを設定している場合は、そのリポジトリからインストールしたパッケージも表示されます。&lt;br /&gt;
&lt;br /&gt;
=== 複数のパッケージの依存パッケージ一覧を取得 ===&lt;br /&gt;
&lt;br /&gt;
Dependencies are alphabetically sorted and doubles are removed.&lt;br /&gt;
Note that you can use {{ic|pacman -Qi}} to improve response time a little. But&lt;br /&gt;
you will not be able to query as many packages. Unfound packages are simply skipped&lt;br /&gt;
(hence the {{ic|2&amp;gt;/dev/null}}).&lt;br /&gt;
You can get dependencies of AUR packages as well if you use {{ic|yaourt -Si}},&lt;br /&gt;
but it will slow down the queries.&lt;br /&gt;
&lt;br /&gt;
 $ pacman -Si $@ 2&amp;gt;/dev/null | awk -F &amp;quot;: &amp;quot; -v filter=&amp;quot;^Depends&amp;quot; \ &#039;$0 ~ filter {gsub(/[&amp;gt;=&amp;lt;][^ ]*/,&amp;quot;&amp;quot;,$2) ; gsub(/ +/,&amp;quot;\n&amp;quot;,$2) ; print $2}&#039; | sort -u&lt;br /&gt;
&lt;br /&gt;
もしくは、{{ic|expac}} を使うことも可能です: {{ic|expac -l &#039;\n&#039; %E -S $@ &amp;amp;#124; sort -u}}。&lt;br /&gt;
&lt;br /&gt;
=== 複数のパッケージの容量を取得 ===&lt;br /&gt;
&lt;br /&gt;
以下のシェル関数を使うことができます:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.bashrc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
pacman-size()&lt;br /&gt;
{&lt;br /&gt;
	CMD=&amp;quot;pacman -Si&amp;quot;&lt;br /&gt;
	SEP=&amp;quot;: &amp;quot;&lt;br /&gt;
	TOTAL_SIZE=0&lt;br /&gt;
	&lt;br /&gt;
	RESULT=$(eval &amp;quot;${CMD} $@ 2&amp;gt;/dev/null&amp;quot; | awk -F &amp;quot;$SEP&amp;quot; -v filter=&amp;quot;Size&amp;quot; -v pkg=&amp;quot;^Name&amp;quot; \&lt;br /&gt;
	  &#039;$0 ~ pkg {pkgname=$2} $0 ~ filter {gsub(/\..*/,&amp;quot;&amp;quot;) ; printf(&amp;quot;%6s KiB %s\n&amp;quot;, $2, pkgname)}&#039; | sort -u -k3)&lt;br /&gt;
	&lt;br /&gt;
	echo &amp;quot;$RESULT&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	## Print total size.&lt;br /&gt;
	echo &amp;quot;$RESULT&amp;quot; | awk &#039;{TOTAL=$1+TOTAL} END {printf(&amp;quot;Total : %d KiB\n&amp;quot;,TOTAL)}&#039;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
依存関係リストと同じように {{ic|pacman -Qi}} を代わりに使うこともできますが、AUR の PKGBUILD にサイズ情報は含まれていないので [[yaourt]] では出来ません。&lt;br /&gt;
&lt;br /&gt;
ワンライナー:&lt;br /&gt;
&lt;br /&gt;
 $ pacman -Si &amp;quot;$@&amp;quot; 2&amp;gt;/dev/null | awk -F &amp;quot;: &amp;quot; -v filter=&amp;quot;Size&amp;quot; -v pkg=&amp;quot;Name&amp;quot; &#039;$0 ~ pkg {pkgname=$2} $0 ~ filter {gsub(/\..*/,&amp;quot;&amp;quot;) ; printf(&amp;quot;%6s KiB %s\n&amp;quot;, $2, pkgname)}&#039; | sort -u -k3 | tee &amp;gt;(awk &#039;{TOTAL=$1+TOTAL} END {printf(&amp;quot;Total : %d KiB\n&amp;quot;,TOTAL)}&#039;)&lt;br /&gt;
&lt;br /&gt;
You should replace &amp;quot;$@&amp;quot; with packages, or put this line in a shell function.&lt;br /&gt;
&lt;br /&gt;
=== 変更された設定ファイルを一覧する ===&lt;br /&gt;
If you want to backup your system configuration files you could copy all files in {{ic|/etc/}}, but usually you&#039;re only interested in the files that you have changed. In this case you want to list those changed configuration files, we can do this with the following command:&lt;br /&gt;
 # pacman -Qii | awk &#039;/^MODIFIED/ {print $2}&#039;&lt;br /&gt;
The following script does the same. You need to run it as root or with sudo.&lt;br /&gt;
{{hc|changed-files.sh|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
for package in /var/lib/pacman/local/*; do&lt;br /&gt;
	sed &#039;/^%BACKUP%$/,/^%/!d&#039; $package/files | tail -n+2 | grep -v &#039;^$&#039; | while read file hash; do&lt;br /&gt;
		[ &amp;quot;$(md5sum /$file | (read hash file; echo $hash))&amp;quot; != &amp;quot;$hash&amp;quot; ] &amp;amp;&amp;amp; echo $(basename $package) /$file&lt;br /&gt;
	done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== 依存されていないパッケージを全て表示する ===&lt;br /&gt;
&lt;br /&gt;
インストールしたパッケージの中で、どのパッケージにも依存されていないパッケージのリストを生成したい場合、以下のスクリプトを使うことができます。ハードドライブの容量を増やそうとしていて、覚えがない大量のパッケージがインストールされている場合、このスクリプトはとても役に立ちます。出力を見ることで必要なくなったパッケージを見つけることができます。&lt;br /&gt;
&lt;br /&gt;
{{Note|このスクリプトは明示的にインストールしたパッケージも含めて、どのパッケージにも依存されていない全てのパッケージを表示します。依存パッケージとしてインストールされていながら、どのパッケージにも必要とされていないパッケージを表示するには、[[#孤立したパッケージの削除]] を見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
{{hc|clean|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# This script is designed to help you clean your computer from unneeded&lt;br /&gt;
# packages. The script will find all packages that no other installed package&lt;br /&gt;
# depends on. It will output this list of packages excluding any you have&lt;br /&gt;
# placed in the ignore list. You may browse through the script&#039;s output and&lt;br /&gt;
# remove any packages you do not need.&lt;br /&gt;
&lt;br /&gt;
# Enter groups and packages here which you know you wish to keep. They will&lt;br /&gt;
# not be included in the list of unrequired packages later.&lt;br /&gt;
ignoregrp=&amp;quot;base base-devel&amp;quot;&lt;br /&gt;
ignorepkg=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
comm -23 &amp;lt;(pacman -Qqt | sort) &amp;lt;(echo $ignorepkg | tr &#039; &#039; &#039;\n&#039; | cat &amp;lt;(pacman -Sqg $ignoregrp) - | sort -u)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
パッケージの説明も見るには:&lt;br /&gt;
&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
expac -HM &amp;quot;%-20n\t%10d&amp;quot; $( comm -23 &amp;lt;(pacman -Qqt|sort) &amp;lt;(pacman -Qqg base base-devel|sort) )&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Systemd を使ってローカルデータベースをバックアップ ===&lt;br /&gt;
&lt;br /&gt;
[[systemd]] は pacman のローカルデータベースのスナップショットを（データベースが変更される度に）作成することができます。&lt;br /&gt;
&lt;br /&gt;
{{Note|AUR にもっと細かく設定できるバージョンがあります: {{AUR|pakbak-git}}。}}&lt;br /&gt;
&lt;br /&gt;
以下のスクリプトを使って下さい ({{ic|$pakbak}} の値はバックアップ先に置き換えて下さい)。{{ic|pakbak.service}} を[[有効化]]することで起動時に自動的に実行させることができます:&lt;br /&gt;
&lt;br /&gt;
{{hc|/usr/lib/systemd/scripts/pakbak_script|2=&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
declare -r pakbak=&#039;&#039;&amp;quot;/pakbak.tar.xz&amp;quot;&#039;&#039;;  ## set backup location&lt;br /&gt;
tar -cJf &amp;quot;$pakbak&amp;quot; &amp;quot;/var/lib/pacman/local&amp;quot;;  ## compress &amp;amp; store pacman local database in $pakbak&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{hc|/usr/lib/systemd/system/pakbak.service|2=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Back up pacman database&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=oneshot&lt;br /&gt;
ExecStart=/bin/bash /usr/lib/systemd/scripts/pakbak_script&lt;br /&gt;
RemainAfterExit=no&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{hc|/usr/lib/systemd/system/pakbak.path|2=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Back up pacman database&lt;br /&gt;
&lt;br /&gt;
[Path]&lt;br /&gt;
PathChanged=/var/lib/pacman/local&lt;br /&gt;
Unit=pakbak.service&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== インストールとリカバリー ==&lt;br /&gt;
&lt;br /&gt;
パッケージを取得・復活させる他の方法。&lt;br /&gt;
&lt;br /&gt;
=== パッケージを CD/DVD や USB スティックからインストールする ===&lt;br /&gt;
&lt;br /&gt;
パッケージや、パッケージグループをダウンロードするには:&lt;br /&gt;
&lt;br /&gt;
 # cd ~/Packages&lt;br /&gt;
 # pacman -Syw base base-devel grub-bios xorg gimp --cachedir .&lt;br /&gt;
 # repo-add ./custom.db.tar.gz ./*&lt;br /&gt;
&lt;br /&gt;
ダウンロードしたら &amp;quot;Packages&amp;quot; フォルダを CD/DVD に焼くか USB スティック、外部 HDD などにコピーしてください。&lt;br /&gt;
&lt;br /&gt;
インストールするには:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; メディアをマウントする:&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/repo&lt;br /&gt;
 # mount /dev/sr0 /mnt/repo    # CD/DVD の場合&lt;br /&gt;
 # mount /dev/sdxY /mnt/repo   # USB スティックの場合。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; {{ic|pacman.conf}} を編集して他のリポジトリ (例: extra, core, etc.) の&#039;&#039;前に&#039;&#039;リポジトリを追加してください。この手順は重要です。これで標準のリポジトリに優先して CD/DVD/USB のファイルがインストールされるようになります:&lt;br /&gt;
&lt;br /&gt;
{{hc|# nano /etc/pacman.conf|2=&lt;br /&gt;
[custom]&lt;br /&gt;
SigLevel = PackageRequired&lt;br /&gt;
Server = file:///mnt/repo/Packages}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; 最後に、pacman データベースを同期して新しいリポジトリを使えるようにしてください:&lt;br /&gt;
&lt;br /&gt;
 # pacman -Sy&lt;br /&gt;
&lt;br /&gt;
=== カスタムローカルリポジトリ ===&lt;br /&gt;
&lt;br /&gt;
pacman 3 では個人的なリポジトリのデータベースの作成をより簡単にするため {{ic|repo-add}} という名前の新しいスクリプトが導入されました。詳しい使い方は {{ic|repo-add --help}} を実行して見て下さい。&lt;br /&gt;
&lt;br /&gt;
リポジトリに含むパッケージを全て一つのディレクトリに保存して、次のコマンドを実行してください (&#039;&#039;repo&#039;&#039; はカスタムリポジトリの名前に置き換えてください):&lt;br /&gt;
&lt;br /&gt;
 $ repo-add /path/to/repo.db.tar.gz /path/to/*.pkg.tar.xz&lt;br /&gt;
&lt;br /&gt;
{{ic|repo-add}} を使う際、データベースとパッケージは同じディレクトリにある必要はないので注意してください。ただしそのデータベースで pacman を使うときには、揃っていないといけません。&lt;br /&gt;
&lt;br /&gt;
新しいパッケージを追加する（そして古いパッケージが存在していたら削除する）には、次を実行してください:&lt;br /&gt;
&lt;br /&gt;
 $ repo-add /path/to/repo.db.tar.gz /path/to/packagetoadd-1.0-1-i686.pkg.tar.xz&lt;br /&gt;
&lt;br /&gt;
{{Note|If there is a package that needs to be removed from the repository, read up on {{Ic|repo-remove}}.}}&lt;br /&gt;
&lt;br /&gt;
ローカルリポジトリを作成できたら、リポジトリを {{ic|pacman.conf}} に追加してください。{{ic|db.tar.gz}} ファイルの名前がリポジトリの名前です。{{ic|file://}} url を使って直接参照するか、{{ic|ftp://localhost/path/to/directory}} を使って FTP でアクセスしてください。&lt;br /&gt;
&lt;br /&gt;
カスタムリポジトリを[[非公式ユーザーリポジトリ]]に追加すれば、コミュニティはそれを使うことができるようになります。&lt;br /&gt;
&lt;br /&gt;
=== pacman のキャッシュをネットワークで共有する ===&lt;br /&gt;
&lt;br /&gt;
==== 読み取り専用キャッシュ ====&lt;br /&gt;
&lt;br /&gt;
If you&#039;re looking for a quick and dirty solution, you can simply run a standalone webserver which other computers can use as a first mirror: {{ic|darkhttpd /var/cache/pacman/pkg}}. Just add this server at the top of your mirror list. Be aware that you might get a lot of 404 errors, due to cache misses, depending on what you do, but pacman will try the next (real) mirrors when that happens.&lt;br /&gt;
&lt;br /&gt;
==== 読み書き可能キャッシュ ====&lt;br /&gt;
&lt;br /&gt;
{{Tip|See [[pacserve]] for an alternative (and probably simpler) solution than what follows.}}&lt;br /&gt;
&lt;br /&gt;
複数のコンピュータ間でパッケージを共有するには、ネットワークベースのマウントプロトコルを使って {{ic|/var/cache/pacman/}} を共有します。このセクションでは shfs または sshfs を使ってパッケージキャッシュと関連するライブラリディレクトリを同一ローカルネットワーク上の複数のコンピュータで共有する方法を示します。ネットワークで共有されるキャッシュは、ファイルシステムの選択やその他の要因で、遅くなることがあります。&lt;br /&gt;
&lt;br /&gt;
まず、ネットワークをサポートするファイルシステムをインストールしてください。例えば [[sshfs]], [[shfs]], ftpfs, [[Samba|smbfs]], [[NFS|nfs]] など。&lt;br /&gt;
&lt;br /&gt;
{{Tip|sshfs や shfs を使う場合、[[SSH 鍵]]を読んで下さい。}}&lt;br /&gt;
&lt;br /&gt;
Then, to share the actual packages, mount {{ic|/var/cache/pacman/pkg}} from the server to {{ic|/var/cache/pacman/pkg}} on every client machine.&lt;br /&gt;
&lt;br /&gt;
==== BitTorrent Sync を使って pacman のパッケージキャッシュを同期する ====&lt;br /&gt;
&lt;br /&gt;
[[BitTorrent Sync]] はネットワークを介してフォルダを同期する新方法です (LAN でもインターネットでも動作します)。ピアツーピアなのでサーバーを設定する必要はありません: 詳しくはリンクを参照してください。&lt;br /&gt;
BitTorrent Sync を使って pacman のキャッシュを共有する方法:&lt;br /&gt;
* まず同期したいマシンに AUR から {{AUR|btsync}} パッケージをインストール。&lt;br /&gt;
* [[BitTorrent Sync]] の wiki ページや AUR パッケージのインストール手順に従う。&lt;br /&gt;
** set up BitTorrent Sync to work for the root account. This process requires read/write to the pacman package cache. &lt;br /&gt;
** make sure to set a good password on btsync&#039;s web UI  &lt;br /&gt;
** btsync の systemd デーモンを起動。&lt;br /&gt;
** in the btsync Web GUI add a new synchronized folder on the first machine and generate a new Secret. Point the folder to {{ic|/var/cache/pacman/pkg}}&lt;br /&gt;
** Add the folder on all the other machines using the same Secret to share the cached packages between all systems. Or, to set the first system as a master and the others as slaves, use the Read Only Secret. Be sure to point it to {{ic|/var/cache/pacman/pkg}}&lt;br /&gt;
&lt;br /&gt;
Now the machines should connect and start synchronizing their cache. Pacman works as expected even during synchronization. The process of syncing is entirely automatic.&lt;br /&gt;
&lt;br /&gt;
==== 要らなくなったキャッシュが消えないようにする ====&lt;br /&gt;
&lt;br /&gt;
By default, {{Ic|pacman -Sc}} removes package tarballs from the cache that correspond to packages that are not installed on the machine the command was issued on. Because pacman cannot predict what packages are installed on all machines that share the cache, it will end up deleting files that should not be.&lt;br /&gt;
&lt;br /&gt;
To clean up the cache so that only &#039;&#039;outdated&#039;&#039; tarballs are deleted, add this entry in the {{ic|[options]}} section of {{ic|/etc/pacman.conf}}:&lt;br /&gt;
&lt;br /&gt;
 CleanMethod = KeepCurrent&lt;br /&gt;
&lt;br /&gt;
=== インストールしたパッケージのリストのバックアップと復旧 ===&lt;br /&gt;
&lt;br /&gt;
pacman によってインストールしたパッケージのバックアップを定期的に行うのはグッドプラクティスです。何らかの理由でリカバリーできないシステムクラッシュが発生した時、pacman を使って全く同じパッケージを簡単に新しい環境に再インストールすることができるようになります。&lt;br /&gt;
&lt;br /&gt;
* まず、ローカルにない現在のパッケージの一覧をバックアップしてください: {{ic|$ pacman -Qqen &amp;gt; pkglist.txt}}&lt;br /&gt;
&lt;br /&gt;
* {{ic|pkglist.txt}} を USB キーやその他メディア gist.github.com, Evernote, Dropbox などに保存してください。&lt;br /&gt;
&lt;br /&gt;
* {{ic|pkglist.txt}} ファイルを新しいインストールにコピーして、ファイルが含まれているディレクトリにまで移動してください。&lt;br /&gt;
&lt;br /&gt;
* 次のコマンドを実行することでバックアップリストからインストールを行います: {{ic|# pacman -S $(&amp;lt; pkglist.txt)}}&lt;br /&gt;
&lt;br /&gt;
上記のようにリストが生成されない場合、おそらく foreign パッケージ (設定したリポジトリに存在しないパッケージ、もしくは AUR のパッケージ) が存在します。&lt;br /&gt;
&lt;br /&gt;
そのような場合でも、リストから利用可能なパッケージを全てインストールすることができます:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S --needed $(comm -12 &amp;lt;(pacman -Slq|sort) &amp;lt;(sort badpkdlist) )&lt;br /&gt;
&lt;br /&gt;
説明:&lt;br /&gt;
&lt;br /&gt;
* {{ic|pacman -Slq}} lists all available softwares, but the list is sorted by repository first, hence the {{ic|sort}} command.&lt;br /&gt;
* {{ic|comm}} コマンドを動作させるにはファイルをソートする必要があります。&lt;br /&gt;
* {{ic|-12}} パラメータは両方のエントリで共通する行を表示します。&lt;br /&gt;
* {{ic|--needed}} スイッチを使うことで既にインストールされているパッケージはスキップされます。&lt;br /&gt;
&lt;br /&gt;
[[yaourt]] を使うことで AUR からリポジトリにないパッケージを全てインストールするのを試行することもできます (何がおこるかわかってない場合は推奨しません):&lt;br /&gt;
&lt;br /&gt;
 $ yaourt -S --needed $(comm -13 &amp;lt;(pacman -Slq|sort) &amp;lt;(sort badpkdlist) )&lt;br /&gt;
&lt;br /&gt;
最後に、リストに記されていない全てのパッケージをシステム上から削除することができます:&lt;br /&gt;
&lt;br /&gt;
{{Warning|このコマンドは注意して使って下さい、pacman の出力をよくチェックしましょう。}}&lt;br /&gt;
&lt;br /&gt;
 # pacman -Rsu $(comm -23 &amp;lt;(pacman -Qq|sort) &amp;lt;(sort pkglist))&lt;br /&gt;
&lt;br /&gt;
=== base や base-devel に存在しないダウンロード済みパッケージを一覧 ===&lt;br /&gt;
&lt;br /&gt;
次のコマンドは {{Grp|base}} や {{Grp|base-devel}} に存在しない、ユーザーが手動でインストールしたパッケージを全て表示します:&lt;br /&gt;
&lt;br /&gt;
 $ comm -23 &amp;lt;(pacman -Qeq | sort) &amp;lt;(pacman -Qgq base base-devel | sort)&lt;br /&gt;
&lt;br /&gt;
インストールしたパッケージの中で特定のリポジトリに存在しないパッケージを表示するには (例えば {{ic|&#039;&#039;repo_name&#039;&#039;}}):&lt;br /&gt;
&lt;br /&gt;
 $ comm -23 &amp;lt;(pacman -Qtq | sort) &amp;lt;(pacman -Slq &#039;&#039;repo_name&#039;&#039; | sort)&lt;br /&gt;
&lt;br /&gt;
インストールしたパッケージの中で {{ic|&#039;&#039;repo_name&#039;&#039;}} リポジトリに存在するパッケージを表示するには:&lt;br /&gt;
&lt;br /&gt;
 $ comm -12 &amp;lt;(pacman -Qtq | sort) &amp;lt;(pacman -Slq &#039;&#039;repo_name&#039;&#039; | sort)&lt;br /&gt;
&lt;br /&gt;
=== 全てのパッケージの再インストール ===&lt;br /&gt;
&lt;br /&gt;
全てのネイティブのパッケージを再インストールするには、次を使って下さい:&lt;br /&gt;
&lt;br /&gt;
 # pacman -Qenq | pacman -S -&lt;br /&gt;
&lt;br /&gt;
外部の (AUR) パッケージは別に再インストールする必要があります。外部のパッケージは {{ic|pacman -Qemq}} で一覧できます。&lt;br /&gt;
&lt;br /&gt;
デフォルトで Pacman はインストールの理由（明示的にインストールしたか、依存でインストールしたか）を維持します。&lt;br /&gt;
&lt;br /&gt;
=== pacman のローカルデータベースを復元する ===&lt;br /&gt;
&lt;br /&gt;
ローカルデータベースの復元が必要だと pacman が示す場合:&lt;br /&gt;
&lt;br /&gt;
* {{ic|pacman -Q}} で何も出力がされず、{{Ic|pacman -Syu}} でシステムが最新だと表示されるとき。&lt;br /&gt;
* {{ic|pacman -S package}} を使ってパッケージをインストールしようとすると、既にインストールされている依存パッケージのリストが出力される。&lt;br /&gt;
* ({{Pkg|pacman}} に含まれている) {{ic|testdb}} でデータベースが壊れていると表示される。&lt;br /&gt;
&lt;br /&gt;
以上の場合、十中八九、インストールしたソフトウェアの pacman データベースである {{ic|/var/lib/pacman/local}} が破損していたり削除されています。これは深刻な問題ですが、以下の手順に従うことで復元することができます。&lt;br /&gt;
&lt;br /&gt;
まず、pacman のログファイルが存在するか確認します:&lt;br /&gt;
&lt;br /&gt;
 $ ls /var/log/pacman.log&lt;br /&gt;
&lt;br /&gt;
ログファイルが存在しない場合は、この方法で続行することは不可能です。[https://bbs.archlinux.org/viewtopic.php?pid=670876 Xyne のパッケージ検出スクリプト] を使ってデータベースを再作成してみてください。それができない場合、解決方法としてはシステム全体を再インストールするしかありません。&lt;br /&gt;
&lt;br /&gt;
==== ログフィルタースクリプト ====&lt;br /&gt;
{{hc|pacrecover|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/bash -e&lt;br /&gt;
&lt;br /&gt;
. /etc/makepkg.conf&lt;br /&gt;
&lt;br /&gt;
PKGCACHE=$((grep -m 1 &#039;^CacheDir&#039; /etc/pacman.conf || echo &#039;CacheDir = /var/cache/pacman/pkg&#039;) | sed &#039;s/CacheDir = //&#039;)&lt;br /&gt;
&lt;br /&gt;
pkgdirs=(&amp;quot;$@&amp;quot; &amp;quot;$PKGDEST&amp;quot; &amp;quot;$PKGCACHE&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
while read -r -a parampart; do&lt;br /&gt;
  pkgname=&amp;quot;${parampart[0]}-${parampart[1]}-*.pkg.tar.xz&amp;quot;&lt;br /&gt;
  for pkgdir in ${pkgdirs[@]}; do&lt;br /&gt;
    pkgpath=&amp;quot;$pkgdir&amp;quot;/$pkgname&lt;br /&gt;
    [ -f $pkgpath ] &amp;amp;&amp;amp; { echo $pkgpath; break; };&lt;br /&gt;
  done || echo ${parampart[0]} 1&amp;gt;&amp;amp;2&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
	&lt;br /&gt;
スクリプトを実行可能にしてください:&lt;br /&gt;
&lt;br /&gt;
 $ chmod +x pacrecover&lt;br /&gt;
&lt;br /&gt;
==== パッケージの復旧リストを生成する ====&lt;br /&gt;
&lt;br /&gt;
{{Warning|If for some reason your [[pacman]] cache or [[makepkg]] package destination contain packages for other architectures, remove them before continuation.}}&lt;br /&gt;
&lt;br /&gt;
スクリプトを実行してください (任意でパッケージが含まれている追加のディレクトリをパラメータで渡して下さい):&lt;br /&gt;
&lt;br /&gt;
 $ paclog-pkglist /var/log/pacman.log | ./pacrecover &amp;gt;files.list 2&amp;gt;pkglist.orig&lt;br /&gt;
&lt;br /&gt;
このコマンドで2つのファイルが作成されます: マシンに存在するパッケージファイルが載った {{Ic|files.list}} と、ダウンロードするべきパッケージが載った {{Ic|pkglist.orig}} です。後者ではマシンに存在する、古いバージョンのパッケージのファイルと、新しいバージョンのファイルでミスマッチが発生することがあります。ミスマッチは手動で修正する必要があります。&lt;br /&gt;
&lt;br /&gt;
Here is a way to automatically restrict second list to packages available in a repository:&lt;br /&gt;
&lt;br /&gt;
 $ { cat pkglist.orig; pacman -Slq; } | sort | uniq -d &amp;gt; pkglist&lt;br /&gt;
&lt;br /&gt;
重要な &#039;&#039;base&#039;&#039; パッケージが欠けていないか確認して、リストに加えます:&lt;br /&gt;
&lt;br /&gt;
 $ comm -23 &amp;lt;(pacman -Sgq base) pkglist.orig &amp;gt;&amp;gt; pkglist&lt;br /&gt;
&lt;br /&gt;
Proceed once the contents of both lists are satisfactory, since they will be used to restore pacman&#039;s installed package database; {{ic|/var/lib/pacman/local/}}.&lt;br /&gt;
&lt;br /&gt;
==== リカバリを実行する ====&lt;br /&gt;
&lt;br /&gt;
リカバリのための bash エイリアスを定義してください:&lt;br /&gt;
&lt;br /&gt;
 # recovery-pacman() {&lt;br /&gt;
     pacman &amp;quot;$@&amp;quot;       \&lt;br /&gt;
     --log /dev/null   \&lt;br /&gt;
     --noscriptlet     \&lt;br /&gt;
     --dbonly          \&lt;br /&gt;
     --force           \&lt;br /&gt;
     --nodeps          \&lt;br /&gt;
     --needed          \&lt;br /&gt;
     #&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
{{ic|--log /dev/null}} allows to avoid needless pollution of pacman log, {{Ic|--needed}} will save some time by skipping packages, already present in database, {{Ic|--nodeps}} will allow installation of cached packages, even if packages being installed depend on newer versions. Rest of options will allow &#039;&#039;&#039;pacman&#039;&#039;&#039; to operate without reading/writing filesystem.&lt;br /&gt;
&lt;br /&gt;
同期データベースを作成:&lt;br /&gt;
&lt;br /&gt;
 # pacman -Sy&lt;br /&gt;
&lt;br /&gt;
{{ic|files.list}} からローカルで利用可能なパッケージファイルをインストールしてデータベースの生成を開始:&lt;br /&gt;
&lt;br /&gt;
 # recovery-pacman -U $(&amp;lt; files.list)&lt;br /&gt;
&lt;br /&gt;
{{ic|pkglist}} から残りをインストール:&lt;br /&gt;
&lt;br /&gt;
 # recovery-pacman -S $(&amp;lt; pkglist)&lt;br /&gt;
&lt;br /&gt;
Update the local database so that packages that are not required by any other package are marked as explicitly installed and the other as dependences. You will need be extra careful in the future when removing packages, but with the original database lost is the best we can do.&lt;br /&gt;
&lt;br /&gt;
 # pacman -D --asdeps $(pacman -Qq)&lt;br /&gt;
 # pacman -D --asexplicit $(pacman -Qtq)&lt;br /&gt;
&lt;br /&gt;
Optionally check all installed packages for corruption:&lt;br /&gt;
&lt;br /&gt;
 # pacman -Qk&lt;br /&gt;
&lt;br /&gt;
任意で[[#ファイルがどのパッケージにも所有されていないことを確認|ファイルがどのパッケージにも所有されていないことを確認]]してください。&lt;br /&gt;
&lt;br /&gt;
全てのパッケージをアップデート:&lt;br /&gt;
&lt;br /&gt;
 # pacman -Su&lt;br /&gt;
&lt;br /&gt;
=== 既存のインストールから USB キーを回復させる ===&lt;br /&gt;
&lt;br /&gt;
If you have Arch installed on a USB key and manage to mess it up (e.g. removing it while it is still being written to), then it is possible to re-install all the packages and hopefully get it back up and working again (assuming USB key is mounted in /newarch)&lt;br /&gt;
&lt;br /&gt;
 # pacman -S $(pacman -Qq --dbpath /newarch/var/lib/pacman) --root /newarch --dbpath /newarch/var/lib/pacman&lt;br /&gt;
&lt;br /&gt;
=== .pkg ファイルの中身を展開する ===&lt;br /&gt;
&lt;br /&gt;
{{ic|.xz}} で終わっている {{ic|.pkg}} ファイルは tar で固められた圧縮ファイルであり、次のコマンドで解凍できます:&lt;br /&gt;
&lt;br /&gt;
 $ tar xvf package.tar.xz&lt;br /&gt;
&lt;br /&gt;
ファイルを {{ic|.pkg}} から展開したい場合、この方法を使うことができます。&lt;br /&gt;
&lt;br /&gt;
=== .pkg ファイルに含まれているファイルを回覧する ===&lt;br /&gt;
&lt;br /&gt;
例えば、{{Pkg|systemd}} パッケージに入っている {{ic|/etc/systemd/logind.conf}} の中身を見たいのならば:&lt;br /&gt;
&lt;br /&gt;
 $ tar -xOf /var/cache/pacman/pkg/systemd-204-3-x86_64.pkg.tar.xz etc/systemd/logind.conf&lt;br /&gt;
&lt;br /&gt;
もしくは {{pkg|vim}} を使ってアーカイブをブラウズすることもできます:&lt;br /&gt;
 $ vim /var/cache/pacman/pkg/systemd-204-3-x86_64.pkg.tar.xz&lt;br /&gt;
&lt;br /&gt;
=== 古いパッケージのライブラリを使っているアプリケーションを探す ===&lt;br /&gt;
&lt;br /&gt;
Even if you installed a package the existing long-running programs (like daemons and servers) still keep using code from old package libraries. And it is a bad idea to let these programs running if the old library contains a security bug.&lt;br /&gt;
&lt;br /&gt;
Here is a way how to find all the programs that use old packages code:&lt;br /&gt;
&lt;br /&gt;
 # lsof +c 0 | grep -w DEL | awk &#039;1 { print $1 &amp;quot;: &amp;quot; $NF }&#039; | sort -u&lt;br /&gt;
It will print running program name and old library that was removed or replaced with newer content.&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=OpenSSH&amp;diff=4534</id>
		<title>OpenSSH</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=OpenSSH&amp;diff=4534"/>
		<updated>2015-12-27T03:32:00Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Secure Shell]]&lt;br /&gt;
[[ar:Secure Shell]]&lt;br /&gt;
[[de:SSH]]&lt;br /&gt;
[[en:Secure Shell]]&lt;br /&gt;
[[es:Secure Shell]]&lt;br /&gt;
[[fr:ssh]]&lt;br /&gt;
[[it:Secure Shell]]&lt;br /&gt;
[[ko:Secure Shell]]&lt;br /&gt;
[[pl:Secure Shell]]&lt;br /&gt;
[[pt:Secure Shell]]&lt;br /&gt;
[[ru:Secure Shell]]&lt;br /&gt;
[[sr:Secure Shell]]&lt;br /&gt;
[[zh-CN:Secure Shell]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|SSH 鍵}}&lt;br /&gt;
{{Related|Pam abl}}&lt;br /&gt;
{{Related|fail2ban}}&lt;br /&gt;
{{Related|sshguard}}&lt;br /&gt;
{{Related|Sshfs}}&lt;br /&gt;
{{Related|syslog-ng}}&lt;br /&gt;
{{Related|SFTP chroot}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
Secure Shell (SSH) は暗号技術を利用して、安全にリモートコンピュータと通信するためのネットワークプロトコルです。暗号によってデータの機密性と完全性が保証されます。SSH は公開鍵暗号を使ってリモートコンピュータを認証し、リモートコンピュータは必要に応じてユーザーを認証します。&lt;br /&gt;
&lt;br /&gt;
基本的に SSH はリモートマシンにログインしてコマンドを実行するために使われますが、トンネリングや TCP ポートや X11 接続の任意のフォワーディングをサポートしており、SFTP や SCP プロトコルを使うことでファイル転送をすることも可能です。&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、SSH サーバーは標準の TCP 22番ポートを使います。通常は SSH クライアントプロトコルを使って &#039;&#039;sshd&#039;&#039; デーモンの接続を確立してリモート接続を承認します。Mac OS X, GNU/Linux, Solaris, OpenVMS など近代的なオペレーティングシステムのほとんどでサーバーとクライアントの両方が備わってします。複雑なもの・完全なものまで様々なレベルのバージョンがプロプライエタリ・フリーウェア・オープンソースを問わずに存在します。&lt;br /&gt;
&lt;br /&gt;
(ソース: [[Wikipedia:ja:Secure Shell]])&lt;br /&gt;
&lt;br /&gt;
== OpenSSH ==&lt;br /&gt;
OpenSSH (OpenBSD Secure Shell) は ssh プロトコルを使ってコンピューターネットワークを介して暗号化通信セッションを提供するコンピュータープログラムのセットです。SSH Communications Security によるプロプライエタリの Secure Shell ソフトウェアスイートに代わるオープンのプログラムとして作成されました。OpenSSH は Theo de Raadt に率いられている OpenBSD プロジェクトの一環として開発されています。&lt;br /&gt;
&lt;br /&gt;
同じような名前の OpenSSL と OpenSSH が混同されることがときどきありますが、プロジェクトの目的・開発チームは異なります。&lt;br /&gt;
&lt;br /&gt;
=== OpenSSH のインストール ===&lt;br /&gt;
[[公式リポジトリ]]から {{Pkg|openssh}} を[[pacman|インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
=== SSH の設定 ===&lt;br /&gt;
====クライアント====&lt;br /&gt;
SSH クライアントの設定ファイルは {{ic|/etc/ssh/ssh_config}} もしくは {{ic|~/.ssh/config}} です。&lt;br /&gt;
&lt;br /&gt;
{{ic|Protocol 2}} を明示的に設定する必要はありません。デフォルトの設定ファイルではコメントアウトされています。つまり明示的に有効にされない限り {{ic|Protocol 1}} は使われません。 (ソース: http://www.openssh.org/txt/release-5.4)&lt;br /&gt;
&lt;br /&gt;
====デーモン====&lt;br /&gt;
SSH デーモンの設定ファイルは {{ic|/etc/ssh/ssh&#039;&#039;&#039;d&#039;&#039;&#039;_config}} です。&lt;br /&gt;
&lt;br /&gt;
特定のユーザーにだけアクセスを許可するには次の行を追加してください:&lt;br /&gt;
 AllowUsers    user1 user2&lt;br /&gt;
&lt;br /&gt;
特定のグループにだけアクセスを許可するには:&lt;br /&gt;
 AllowGroups   group1 group2&lt;br /&gt;
&lt;br /&gt;
SSH による root ログインを無効にするには、PermitRootLogin 行を次のように変更してください:&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
&lt;br /&gt;
{{Note|1=バージョン 7.0p1 からは {{ic|PermitRootLogin prohibit-password}} がデフォルトになっています。{{ic|man sshd_config}} を参照。}}&lt;br /&gt;
&lt;br /&gt;
ウェルカムメッセージを追加するには {{ic|/etc/issue}} ファイルを編集して Banner 行を次のように変更してください:&lt;br /&gt;
 Banner /etc/issue&lt;br /&gt;
&lt;br /&gt;
ホスト鍵は sshd の systemd サービスによって自動的に生成されます。sshd に特定の鍵を使用させたい場合、手動で設定します:&lt;br /&gt;
 HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
&lt;br /&gt;
サーバーに WAN からアクセスできる場合、デフォルトのポートである 22 から別のランダムなポートに変更することが推奨されています:&lt;br /&gt;
 Port 39901&lt;br /&gt;
&lt;br /&gt;
{{Note|OpenSSH では設定ファイルに &#039;&#039;Port x&#039;&#039; 行を複数記述することで複数のポートを使うことができます。}}&lt;br /&gt;
&lt;br /&gt;
パスワードによるログインを使わないようにすればセキュリティは大幅に向上します。詳しくは [[SSH 鍵#パスワードログインの無効化]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== sshd デーモンの管理 ===&lt;br /&gt;
次のコマンドで sshd デーモンを起動することができます:&lt;br /&gt;
 # systemctl start sshd.service&lt;br /&gt;
&lt;br /&gt;
次のコマンドで sshd デーモンを起動時に有効にすることができます:&lt;br /&gt;
 # systemctl enable sshd.service&lt;br /&gt;
&lt;br /&gt;
詳しくは [[systemd#ユニットを使う]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
{{Warning|Systemd は非同期にプロセスを実行します。SSH デーモンを特定の IP アドレス {{ic|ListenAddress 192.168.1.100}} に結びつけている場合、デフォルトの sshd.service ユニットファイルはネットワークインターフェイスが有効にされることに依存していないため、ブート中にロードが失敗する可能性があります。IP アドレスをバインドする時は、カスタムした sshd.service ユニットファイルに {{ic|1=After=network.target}} を追加してください。[[systemd#ユニットファイルの編集]] を参照。}}&lt;br /&gt;
&lt;br /&gt;
また SSH デーモンソケットを有効にすることで初めて接続があったときにデーモンが起動するようにすることもできます:&lt;br /&gt;
 # systemctl start sshd.socket&lt;br /&gt;
 # systemctl enable sshd.socket&lt;br /&gt;
デフォルトの22番以外のポートを使う場合、ユニットファイルを[[systemd#ユニットファイルの編集|編集]]する必要があります:&lt;br /&gt;
{{hc|# systemctl edit sshd.socket|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Socket]&lt;br /&gt;
ListenStream=&lt;br /&gt;
ListenStream=12345&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|sshd.socket}} を使用すると {{ic|ListenAddress}} の設定が打ち消されて、どのアドレスからでも接続できるようになってしまいます。{{ic|ListenAddress}} の設定を適用するには、{{ic|ListenStream}} でポートと IP を指定する必要があります (例: {{ic|1=ListenStream=192.168.1.100:22}})。また、{{ic|[Socket]}} の下に {{ic|1=FreeBind=true}} を追加するようにしてください。そうしないと IP アドレスの設定が {{ic|ListenAddress}} の設定と同じように無効になってしまいます: ネットワークが立ち上がっていない場合にソケットの起動が失敗します。}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|ソケットアクティベーションを使う場合、{{ic|sshd.socket}} でもデーモンの標準の {{ic|sshd.service}} でもログの接続試行を監視することはできません。ただし {{ic|# journalctl /usr/bin/sshd}} を実行することで監視できます。}}&lt;br /&gt;
&lt;br /&gt;
=== サーバーに接続する ===&lt;br /&gt;
サーバーに接続するには、次を実行してください:&lt;br /&gt;
 $ ssh -p port user@server-address&lt;br /&gt;
&lt;br /&gt;
=== SSH の保護 ===&lt;br /&gt;
管理業務のために SSH によるリモートログインを許可することは良いことですが、サーバーのセキュリティに脅威を及ぼすことにもなりえます。総当り攻撃の標的になりやすいので、SSH のアクセスは制限して、第三者がサーバーにアクセスできないようにする必要があります。&lt;br /&gt;
* わかりにくいアカウント名やパスワードを使う&lt;br /&gt;
* 信頼できる国からの SSH 接続だけを許可する&lt;br /&gt;
* [[fail2ban]] や [[sshguard]] をつかってブルートフォース攻撃を監視し、総当りを起こっている IP を閉め出す&lt;br /&gt;
&lt;br /&gt;
==== ブルートフォースアタックからの保護 ====&lt;br /&gt;
ブルートフォースは単純な攻撃方法です: ランダムなユーザー名とパスワードの組み合わせをとにかく沢山作ってウェブページや SSH などのサーバーログインプロンプトにログインを絶えず試行します。ブルートフォース攻撃からは [[fail2ban]] や [[sshguard]] などの自動スクリプトを使うことで攻撃者をブロックすることで身を守ることができます。&lt;br /&gt;
&lt;br /&gt;
もしくは、公開鍵認証を使うことでブルートフォース攻撃を出来なくすることもできます。{{ic|sshd_config}} に次の設定を追加:&lt;br /&gt;
&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
&lt;br /&gt;
上の設定を適用する前に、SSH アクセスが必要な全てのアカウントで {{ic|authorized_keys}} ファイルに公開鍵認証の設定をするようにしてください。詳しくは [[SSH 鍵#リモートサーバーに公開鍵をコピー]] を参照。&lt;br /&gt;
&lt;br /&gt;
==== 2段階認証 ====&lt;br /&gt;
&lt;br /&gt;
SSH 鍵のペアによる認証を使用していてパスワードによろうログインを無効化している場合に、2段階認証を使いたいときは [[Google Authenticator]] や [[SSH 鍵#2段階認証と公開鍵]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
==== root ログインを制限する ====&lt;br /&gt;
一般的に、SSH で無制限に root ログインを許可することは推奨されません。セキュリティの向上のために、SSH での root ログインを制限する方法は2つ存在します。&lt;br /&gt;
&lt;br /&gt;
===== root ログインを拒否する =====&lt;br /&gt;
&lt;br /&gt;
Sudo を使うことで、root アカウントの認証を行うことなく、必要に応じて root 権限を選択的に付与することができます。このため SSH による root ログインを拒否して、攻撃者にパスワードに加えて (root でない) ユーザー名も推測させる必要を生じさせることで、ブルートフォース攻撃を困難にすることが可能です。&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/ssh/sshd_config}} の &amp;quot;Authentication&amp;quot; セクションを編集することで SSH からの root ログインを拒否するように設定できます。{{ic|#PermitRootLogin yes}} を {{ic|no}} に変更して行をアンコメントしてください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ssh/sshd_config|&lt;br /&gt;
PermitRootLogin no&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
そして、SSH デーモンを[[再起動]]してください。&lt;br /&gt;
&lt;br /&gt;
これで、SSH を使って root でログインすることはできなくなります。ただし、通常ユーザーでログインしてから [[su]] や [[sudo]] を使ってシステム管理を行うことは依然として可能です。&lt;br /&gt;
&lt;br /&gt;
===== root ログインを限定する =====&lt;br /&gt;
自動的な作業の中にも、リモートによるフルシステムバックアップなど、root 権限を必要とするものがあります。セキュアな方法で root を許可したい場合、SSH による root ログインを無効化する代わりに、特定のコマンドだけ root ログインを許可することができます。{{ic|~root/.ssh/authorized_keys}} を編集して、以下のように特定のキーの前にコマンドを記述します:&lt;br /&gt;
&lt;br /&gt;
 command=&amp;quot;/usr/lib/rsync/rrsync -ro /&amp;quot; ssh-rsa …&lt;br /&gt;
&lt;br /&gt;
This will allow any login with this specific key only to execute the command specified between the quotes.&lt;br /&gt;
&lt;br /&gt;
The increased attack surface created by exposing the root user name at login can be compensated by adding the following to {{ic|sshd_config}}:&lt;br /&gt;
&lt;br /&gt;
 PermitRootLogin forced-commands-only&lt;br /&gt;
&lt;br /&gt;
This setting will not only restrict the commands which root may execute via SSH, but it will also disable the use of passwords, forcing use of public key authentication for the root account.&lt;br /&gt;
&lt;br /&gt;
A slightly less restrictive alternative will allow any command for root, but makes brute force attacks infeasible by enforcing public key authentication. For this option, set:&lt;br /&gt;
&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
&lt;br /&gt;
== 他の SSH クライアントとサーバー ==&lt;br /&gt;
OpenSSH の他にも、多数の SSH [[Wikipedia:Comparison of SSH clients|クライアント]] と[[Wikipedia:Comparison of SSH servers|サーバー]]が存在します。&lt;br /&gt;
&lt;br /&gt;
=== Dropbear ===&lt;br /&gt;
[[Wikipedia:Dropbear (software)|Dropbear]] は SSH-2 クライアント・サーバーです。{{Pkg|dropbear}} は[[公式リポジトリ]]から利用可能です。&lt;br /&gt;
&lt;br /&gt;
コマンドラインの ssh クライアントは dbclient という名前が付けられています。&lt;br /&gt;
&lt;br /&gt;
=== Mosh: Mobile Shell ===&lt;br /&gt;
Mosh の [http://mosh.mit.edu/ ウェブサイト] より:&lt;br /&gt;
&lt;br /&gt;
ローミングが可能で、断続的な接続もサポートしているリモート端末アプリケーションです。ユーザーのキーストロークのローカルエコーと行編集を提供します。Mosh は SSH の代替です。SSH よりも強固でレスポンスが早く、特に Wi-Fi や携帯端末からの接続、長距離通信など通信速度が遅い場合に役に立ちます。&lt;br /&gt;
&lt;br /&gt;
[[公式リポジトリ]]から {{Pkg|mosh}} を[[pacman|インストール]]するか [[Arch User Repository|AUR]] にある最新版 {{AUR|mosh-git}} を使って下さい。&lt;br /&gt;
&lt;br /&gt;
Mosh にはドキュメントに記載されていないコマンドラインオプション {{ic|1=--predict=experimental}} が存在し、よりアグレッシブにローカルのキーストロークのエコーを生成します。キーボード入力が遅延なく確認できるのに興味があるのであればこの prediction モードを使ってみて下さい。&lt;br /&gt;
&lt;br /&gt;
== Tips and tricks ==&lt;br /&gt;
&lt;br /&gt;
=== 暗号化 SOCKS トンネル ===&lt;br /&gt;
This is highly useful for laptop users connected to various unsafe wireless connections. The only thing you need is an SSH server running at a somewhat secure location, like your home or at work. It might be useful to use a dynamic DNS service like [http://www.dyndns.org/ DynDNS] so you do not have to remember your IP-address.&lt;br /&gt;
&lt;br /&gt;
==== 手順 1: 接続の開始 ====&lt;br /&gt;
You only have to execute this single command to start the connection:&lt;br /&gt;
 $ ssh -TND 4711 &#039;&#039;user&#039;&#039;@&#039;&#039;host&#039;&#039;&lt;br /&gt;
where {{Ic|&#039;&#039;user&#039;&#039;}} is your username at the SSH server running at the {{Ic|&#039;&#039;host&#039;&#039;}}. It will ask for your password, and then you are connected! The {{Ic|N}} flag disables the interactive prompt, and the {{Ic|D}} flag specifies the local port on which to listen on (you can choose any port number if you want).  The {{Ic|T}} flag disables pseudo-tty allocation.&lt;br /&gt;
&lt;br /&gt;
It is nice to add the verbose ({{Ic|-v}}) flag, because then you can verify that it is actually connected from that output.&lt;br /&gt;
&lt;br /&gt;
==== 手順 2: ブラウザ (やその他のプログラム) の設定 ====&lt;br /&gt;
The above step is completely useless if you do not configure your web browser (or other programs) to use this newly created socks tunnel. Since the current version of SSH supports both SOCKS4 and SOCKS5, you can use either of them.&lt;br /&gt;
&lt;br /&gt;
* For Firefox: &#039;&#039;Edit &amp;amp;rarr; Preferences &amp;amp;rarr; Advanced &amp;amp;rarr; Network &amp;amp;rarr; Connection &amp;amp;rarr; Setting&#039;&#039;:&lt;br /&gt;
: Check the &#039;&#039;Manual proxy configuration&#039;&#039; radio button, and enter {{ic|localhost}} in the &#039;&#039;SOCKS host&#039;&#039; text field, and then enter your port number in the next text field ({{ic|4711}} in the example above).&lt;br /&gt;
&lt;br /&gt;
Firefox does not automatically make DNS requests through the socks tunnel. This potential privacy concern can be mitigated by the following steps:&lt;br /&gt;
&lt;br /&gt;
# Type about:config into the Firefox location bar.&lt;br /&gt;
# Search for network.proxy.socks_remote_dns&lt;br /&gt;
# Set the value to true.&lt;br /&gt;
# Restart the browser.&lt;br /&gt;
&lt;br /&gt;
* For Chromium: You can set the SOCKS settings as environment variables or as command line options. I recommend to add one of the following functions to your {{ic|.bashrc}}:&lt;br /&gt;
 function secure_chromium {&lt;br /&gt;
     port=4711&lt;br /&gt;
     export SOCKS_SERVER=localhost:$port&lt;br /&gt;
     export SOCKS_VERSION=5&lt;br /&gt;
     chromium &amp;amp;&lt;br /&gt;
     exit&lt;br /&gt;
 }&lt;br /&gt;
OR&lt;br /&gt;
 function secure_chromium {&lt;br /&gt;
     port=4711&lt;br /&gt;
     chromium --proxy-server=&amp;quot;socks://localhost:$port&amp;quot; &amp;amp;&lt;br /&gt;
     exit&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Now open a terminal and just do:&lt;br /&gt;
 $ secure_chromium&lt;br /&gt;
&lt;br /&gt;
Enjoy your secure tunnel!&lt;br /&gt;
&lt;br /&gt;
=== X11 フォワーディング ===&lt;br /&gt;
&lt;br /&gt;
X11 フォワーディングはリモートシステムで X11 プログラムを動作させて、グラフィカルインターフェイスをローカルのクライアントマシンで表示させるメカニズムです。X11 フォワーディングではリモートホストに X11 システムを完全にインストールさせる必要はなく、&#039;&#039;xauth&#039;&#039; をインストールするだけで十分です。&#039;&#039;xauth&#039;&#039; は、、X11 セッションの認証を行うために必要なサーバーとクライアントによって使用される {{ic|Xauthority}} の設定を管理するユーティリティです ([http://xmodulo.com/2012/11/how-to-enable-x11-forwarding-using-ssh.html ソース])。&lt;br /&gt;
&lt;br /&gt;
{{Warning|X11 forwarding has important security implications which should be at least acknowledged by reading relevant sections of {{ic|ssh}}, {{ic|sshd_config}} and {{ic|ssh_config}} manual pages. See also [https://security.stackexchange.com/questions/14815/security-concerns-with-x11-forwarding a short writeup]}}&lt;br /&gt;
&lt;br /&gt;
==== セットアップ ====&lt;br /&gt;
&lt;br /&gt;
リモート側:&lt;br /&gt;
&lt;br /&gt;
*[[公式リポジトリ]]から {{Pkg|xorg-xauth}} と {{Pkg|xorg-xhost}} を[[インストール]]&lt;br /&gt;
*{{ic|/etc/ssh/ssh&#039;&#039;&#039;d&#039;&#039;&#039;_config}} 内:&lt;br /&gt;
**{{ic|AllowTcpForwarding}} と {{ic|X11UseLocalhost}} オプションを &#039;&#039;yes&#039;&#039; に設定し、{{ic|X11DisplayOffset}} を &#039;&#039;10&#039;&#039; に設定 (何も変更を加えてなければこの値がデフォルトになっています、{{ic|man sshd_config}} を参照)&lt;br /&gt;
**{{ic|X11Forwarding}} を &#039;&#039;yes&#039;&#039; に設定&lt;br /&gt;
* [[#sshd デーモンの管理|&#039;&#039;sshd&#039;&#039; デーモン]]を[[Systemd#ユニットを使う|再起動]]&lt;br /&gt;
* リモートシステムでも X サーバーを動作させる必要があります。&lt;br /&gt;
&lt;br /&gt;
クライアント側では、接続するたびにコマンドラインで {{ic|-X}} スイッチを指定して {{ic|ForwardX11}} オプションを有効にするか、[[#クライアント|openSSH クライアントの設定ファイル]]で {{ic|ForwardX11}} を &#039;&#039;yes&#039;&#039; に設定してください。&lt;br /&gt;
&lt;br /&gt;
{{Tip|You can enable the {{ic|ForwardX11Trusted}} option ({{ic|-Y}} switch on the command line) if GUI is drawing badly or you receive errors; this will prevent X11 forwardings from being subjected to the [http://www.x.org/wiki/Development/Documentation/Security/ X11 SECURITY extension] controls. Be sure you have read [[#X11 フォワーディング|the warning]] at the beginning of this section if you do so.}}&lt;br /&gt;
&lt;br /&gt;
==== 使用方法 ====&lt;br /&gt;
&lt;br /&gt;
通常通り[[#サーバーに接続する|リモートマシンにログイン]]します、クライアント側の設定ファイルで &#039;&#039;ForwardX11&#039;&#039; を有効にしていない場合は {{ic|-X}} スイッチを指定します:&lt;br /&gt;
 $ ssh -X &#039;&#039;user@host&#039;&#039;&lt;br /&gt;
グラフィカルなアプリケーションを実行しようとするとエラーが表示される場合、代わりに &#039;&#039;ForwardX11Trusted&#039;&#039; を試してみて下さい:&lt;br /&gt;
 $ ssh -Y &#039;&#039;user@host&#039;&#039;&lt;br /&gt;
リモートサーバーで X プログラムが起動できるようになったら、出力がローカルセッションに転送されます:&lt;br /&gt;
 $ xclock&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Cannot open display&amp;quot; エラーが表示される場合、root 以外のユーザーで以下のコマンドを実行してみてください:&lt;br /&gt;
 $ xhost +&lt;br /&gt;
&lt;br /&gt;
The above command will allow anybody to forward X11 applications. To restrict forwarding to a particular host type:&lt;br /&gt;
 $ xhost +hostname&lt;br /&gt;
&lt;br /&gt;
where hostname is the name of the particular host you want to forward to. See {{ic|man xhost}} for more details.&lt;br /&gt;
&lt;br /&gt;
Be careful with some applications as they check for a running instance on the local machine. [[Firefox]] is an example: either close the running Firefox instance or use the following start parameter to start a remote instance on the local machine:&lt;br /&gt;
 $ firefox -no-remote&lt;br /&gt;
&lt;br /&gt;
If you get &amp;quot;X11 forwarding request failed on channel 0&amp;quot; when you connect (and the server {{ic|/var/log/errors.log}} shows &amp;quot;Failed to allocate internet-domain X11 display socket&amp;quot;), make sure package {{Pkg|xorg-xauth}} is installed. If its installation is not working, try to either:&lt;br /&gt;
&lt;br /&gt;
* enable the {{ic|AddressFamily any}} option in {{ic|ssh&#039;&#039;&#039;d&#039;&#039;&#039;_config}} on the &#039;&#039;server&#039;&#039;, or&lt;br /&gt;
* set the {{ic|AddressFamily}} option in {{ic|ssh&#039;&#039;&#039;d&#039;&#039;&#039;_config}} on the &#039;&#039;server&#039;&#039; to inet.&lt;br /&gt;
Setting it to inet may fix problems with Ubuntu clients on IPv4.&lt;br /&gt;
&lt;br /&gt;
For running X applications as other user on the SSH server you need to {{Ic|xauth add}} the authentication line taken from {{Ic|xauth list}} of the SSH logged in user.&lt;br /&gt;
&lt;br /&gt;
=== 他のポートのフォワーディング ===&lt;br /&gt;
In addition to SSH&#039;s built-in support for X11, it can also be used to securely tunnel any TCP connection, by use of local forwarding or remote forwarding.&lt;br /&gt;
&lt;br /&gt;
Local forwarding opens a port on the local machine, connections to which will be forwarded to the remote host and from there on to a given destination. Very often, the forwarding destination will be the same as the remote host, thus providing a secure shell and, e.g. a secure VNC connection, to the same machine. Local forwarding is accomplished by means of the {{Ic|-L}} switch and it&#039;s accompanying forwarding specification in the form of {{Ic|&amp;lt;tunnel port&amp;gt;:&amp;lt;destination address&amp;gt;:&amp;lt;destination port&amp;gt;}}.&lt;br /&gt;
&lt;br /&gt;
Thus:&lt;br /&gt;
&lt;br /&gt;
 $ ssh -L 1000:mail.google.com:25 192.168.0.100&lt;br /&gt;
&lt;br /&gt;
will use SSH to login to and open a shell on 192.168.0.100, and will also create a tunnel from the local machine&#039;s TCP port 1000 to mail.google.com on port 25. Once established, connections to localhost:1000 will connect to the Gmail SMTP port. To Google, it will appear that any such connection (though not necessarily the data conveyed over the connection) originated from 192.168.0.100, and such data will be secure as between the local machine and 192.168.0.100, but not between 192.168.0.100, unless other measures are taken.&lt;br /&gt;
&lt;br /&gt;
Similarly:&lt;br /&gt;
&lt;br /&gt;
 $ ssh -L 2000:192.168.0.100:6001 192.168.0.100&lt;br /&gt;
&lt;br /&gt;
will allow connections to localhost:2000 which will be transparently sent to the remote host on port 6001. The preceding example is useful for VNC connections using the vncserver utility--part of the tightvnc package--which, though very useful, is explicit about its lack of security.&lt;br /&gt;
&lt;br /&gt;
Remote forwarding allows the remote host to connect to an arbitrary host via the SSH tunnel and the local machine, providing a functional reversal of local forwarding, and is useful for situations where, e.g., the remote host has limited connectivity due to firewalling. It is enabled with the {{Ic|-R}} switch and a forwarding specification in the form of {{Ic|&amp;lt;tunnel port&amp;gt;:&amp;lt;destination address&amp;gt;:&amp;lt;destination port&amp;gt;}}.&lt;br /&gt;
&lt;br /&gt;
Thus:&lt;br /&gt;
&lt;br /&gt;
 $ ssh -R 3000:irc.freenode.net:6667 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
will bring up a shell on 192.168.0.200, and connections from 192.168.0.200 to itself on port 3000 (remotely speaking, localhost:3000) will be sent over the tunnel to the local machine and then on to irc.freenode.net on port 6667, thus, in this example, allowing the use of IRC programs on the remote host to be used, even if port 6667 would normally be blocked to it.&lt;br /&gt;
&lt;br /&gt;
Both local and remote forwarding can be used to provide a secure &amp;quot;gateway,&amp;quot; allowing other computers to take advantage of an SSH tunnel, without actually running SSH or the SSH daemon by providing a bind-address for the start of the tunnel as part of the forwarding specification, e.g. {{Ic|&amp;lt;tunnel address&amp;gt;:&amp;lt;tunnel port&amp;gt;:&amp;lt;destination address&amp;gt;:&amp;lt;destination port&amp;gt;}}. The {{Ic|&amp;lt;tunnel address&amp;gt;}} can be any address on the machine at the start of the tunnel, {{Ic|localhost}}, {{Ic|*}} (or blank), which, respectively, allow connections via the given address, via the loopback interface, or via any interface. By default, forwarding is limited to connections from the machine at the &amp;quot;beginning&amp;quot; of the tunnel, i.e. the {{Ic|&amp;lt;tunnel address&amp;gt;}} is set to {{Ic|localhost}}. Local forwarding requires no additional configuration, however remote forwarding is limited by the remote server&#039;s SSH daemon configuration. See the {{Ic|GatewayPorts}} option in {{Ic|sshd_config(5)}} for more information.&lt;br /&gt;
&lt;br /&gt;
=== マルチプレクス ===&lt;br /&gt;
&lt;br /&gt;
SSH デーモンは通常はポート 22 番をリッスンします。しかし、公共のインターネット・ホットスポットでは HTTP/HTTPS のポート（80 と 443）以外のトラフィックをブロックしていることが一般的です。そのため SSH 接続がブロックされてしまいます。すぐできる解決策として、許可されているポートで sshd を起動するという方法があります：&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ssh/sshd_config|&lt;br /&gt;
Port 22&lt;br /&gt;
Port 443&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
しかしポート 443 番は HTTPS を提供する Web サーバにすでに使われていることが多いです。その場合は {{Pkg|sslh}} のようなマルチプレクサを使います。これは指定ポートをリッスンし、そこに来るパケットを複数のサービスに賢く振り分けることができます。&lt;br /&gt;
&lt;br /&gt;
=== SSH の高速化 ===&lt;br /&gt;
&lt;br /&gt;
同一のホストのセッションは全て単一の接続を使うようにすることで、後のログインを劇的に高速化することができます。{{ic|/etc/ssh/ssh_config}} や {{ic|$HOME/.ssh/config}} の適当なホストの下に以下の行を追加してください:&lt;br /&gt;
 Host examplehost.com&lt;br /&gt;
   ControlMaster auto&lt;br /&gt;
   ControlPersist yes&lt;br /&gt;
   ControlPath ~/.ssh/socket-%r@%h:%p&lt;br /&gt;
&lt;br /&gt;
上記のオプションの詳しい説明は {{ic|ssh_config(5)}} マニュアルページを見て下さい。&lt;br /&gt;
&lt;br /&gt;
速度を向上させる別のオプションとして圧縮を有効化する {{ic|-C}} フラグがあります。{{ic|/etc/ssh/ssh_config}} の適切なホストの下に次の行を追加することで永続的に設定することができます:&lt;br /&gt;
 Compression yes&lt;br /&gt;
{{Warning|{{ic|man ssh}} states that &amp;quot;&#039;&#039;Compression is desirable on modem lines and other slow connections, but will only slow down things on fast networks&#039;&#039;&amp;quot;. This tip might be counterproductive depending on your network configuration.}}&lt;br /&gt;
&lt;br /&gt;
Login time can be shortened by using the {{ic|-4}} flag, which bypasses IPv6 lookup. This can be made permanent by adding this line under the proper host in {{ic|/etc/ssh/ssh_config}}:&lt;br /&gt;
 AddressFamily inet&lt;br /&gt;
&lt;br /&gt;
Changing the ciphers used by SSH to less cpu-demanding ones can improve speed. In this respect, the best choices are arcfour and blowfish-cbc.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please do not do this unless you know what you are doing; arcfour has a number of known weaknesses.}}&lt;br /&gt;
&lt;br /&gt;
To use alternative ciphers, run SSH with the {{ic|-c}} flag:&lt;br /&gt;
 $ ssh -c arcfour,blowfish-cbc user@server-address&lt;br /&gt;
&lt;br /&gt;
To use them permanently, add this line under the proper host in {{ic|/etc/ssh/ssh_config}}:&lt;br /&gt;
 Ciphers arcfour,blowfish-cbc&lt;br /&gt;
&lt;br /&gt;
=== SSHFS でリモートファイルシステムをマウントする ===&lt;br /&gt;
sshfs を使って (SSH でアクセスした) リモートのファイルシステムをローカルフォルダにマウントする方法は [[Sshfs]] の記事を参照してください。マウントしたファイルは様々なツールであらゆる操作することができます (コピー、名前の変更、vim で編集など)。基本的に shfs よりも sshfs を使用することを推奨します。sshfs は shfs の新しいバージョンであり、元の shfs は2004年から更新されていません。&lt;br /&gt;
&lt;br /&gt;
=== Keep alive ===&lt;br /&gt;
一定時間操作がないと ssh セッションは自動的にログアウトします。接続を維持するには以下をクライアントの {{ic|~/.ssh/config}} か {{ic|/etc/ssh/ssh_config}} に追加してください:&lt;br /&gt;
&lt;br /&gt;
 ServerAliveInterval 120&lt;br /&gt;
&lt;br /&gt;
これで120秒ごとに &amp;quot;keep alive&amp;quot; シグナルがサーバーに送信されます。&lt;br /&gt;
&lt;br /&gt;
反対に、外部からの接続を維持するには、次をサーバーの {{ic|/etc/ssh/sshd_config}} に設定します (数字は0より大きく):&lt;br /&gt;
 &lt;br /&gt;
 ClientAliveInterval 120&lt;br /&gt;
&lt;br /&gt;
=== ssh の設定に接続データを保存する ===&lt;br /&gt;
Whenever you want to connect to a ssh server, you usually have to type at least its address and the username. To save that typing work for servers you regularly connect to, you can use the personal {{ic|~/.ssh/config}} or the global {{ic|/etc/ssh/ssh_config}} files as shown in the following example:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.ssh/config|&lt;br /&gt;
Host myserver&lt;br /&gt;
    HostName 123.123.123.123&lt;br /&gt;
    Port 12345&lt;br /&gt;
    User bob&lt;br /&gt;
    IdentityFile ~/.ssh/some_key_file&lt;br /&gt;
Host other_server&lt;br /&gt;
    HostName test.something.org&lt;br /&gt;
    User alice&lt;br /&gt;
    CheckHostIP no&lt;br /&gt;
    Cipher blowfish&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Now you can simply connect to the server by using the name you specified:&lt;br /&gt;
&lt;br /&gt;
 $ ssh myserver&lt;br /&gt;
&lt;br /&gt;
To see a complete list of the possible options, check out ssh_config&#039;s manpage on your system or the [http://www.openbsd.org/cgi-bin/man.cgi?query=ssh_config ssh_config documentation] on the official website.&lt;br /&gt;
&lt;br /&gt;
=== systemd で SSH トンネルを自動的に再起動 ===&lt;br /&gt;
&lt;br /&gt;
[[systemd]] を使ってブート時/ログイン時に SSH 接続を自動的に開始して、接続が失敗した時に再起動させることができます。SSH トンネルの管理に役立つツールとなります。&lt;br /&gt;
&lt;br /&gt;
以下のサービスでは、[[#ssh の設定に接続データを保存する|ssh の設定]]に保存された接続設定を使って、ログイン時に SSH トンネルを開始します。接続が何らかの理由で閉じられた場合、10秒待機してから再起動します:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/systemd/user/tunnel.service|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=SSH tunnel to myserver&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
Restart=always&lt;br /&gt;
RestartSec=10&lt;br /&gt;
ExecStart=/usr/bin/ssh -F %h/.ssh/config -N myserver&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
上記のユーザーサービスを[[有効化]]して[[起動]]してください。トンネルがタイムアウトするのを防ぐ方法は [[#Keep alive]] を見て下さい。起動時にトンネルを開始したい場合、ユニットをシステムサービスとして書きなおして下さい。&lt;br /&gt;
&lt;br /&gt;
=== Autossh - SSH セッションとトンネルの自動再起動 ===&lt;br /&gt;
ネットワークの状態が悪かったりしてクライアントが切断してしまい、セッションやトンネルの接続を維持できない場合、[http://www.harding.motd.ca/autossh/ Autossh] を使って自動的にセッションとトンネルを再起動できます。Autossh は[[公式リポジトリ]]からインストールできます。&lt;br /&gt;
&lt;br /&gt;
使用例:&lt;br /&gt;
 $ autossh -M 0 -o &amp;quot;ServerAliveInterval 45&amp;quot; -o &amp;quot;ServerAliveCountMax 2&amp;quot; username@example.com&lt;br /&gt;
[[sshfs]] を組み合わせる:&lt;br /&gt;
 $ sshfs -o reconnect,compression=yes,transform_symlinks,ServerAliveInterval=45,ServerAliveCountMax=2,ssh_command=&#039;autossh -M 0&#039; username@example.com: /mnt/example &lt;br /&gt;
[[プロキシ設定]]で設定した SOCKS プロクシを使って接続:&lt;br /&gt;
 $ autossh -M 0 -o &amp;quot;ServerAliveInterval 45&amp;quot; -o &amp;quot;ServerAliveCountMax 2&amp;quot; -NCD 8080 username@example.com &lt;br /&gt;
With the {{ic|-f}} option autossh can be made to run as a background process. Running it this way however means the passprase cannot be entered interactively.&lt;br /&gt;
&lt;br /&gt;
The session will end once you type {{ic|exit}} in the session, or the autossh process receives a SIGTERM, SIGINT of SIGKILL signal.&lt;br /&gt;
&lt;br /&gt;
==== systemd を使ってブート時に自動的に Autossh を起動する ====&lt;br /&gt;
If you want to automatically start autossh, it is now easy to get systemd to manage this for you. For example, you could create a systemd unit file like this:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=AutoSSH service for port 2222&lt;br /&gt;
 After=network.target&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 Environment=&amp;quot;AUTOSSH_GATETIME=0&amp;quot;&lt;br /&gt;
 ExecStart=/usr/bin/autossh -M 0 -NL 2222:localhost:2222 -o TCPKeepAlive=yes foo@bar.com&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
Here {{ic|1=AUTOSSH_GATETIME=0}} is an environment variable specifying how long ssh must be up before autossh considers it a successful connection, setting it to 0 autossh also ignores the first run failure of ssh. This may be useful when running autossh at boot. Other environment variables are available on the manpage. Of course, you can make this unit more complex if necessary (see the systemd documentation for details), and obviously you can use your own options for autossh, but note that the {{ic|-f}} implying {{ic|1=AUTOSSH_GATETIME=0}} does not work with systemd.&lt;br /&gt;
&lt;br /&gt;
Then place this in, for example, /etc/systemd/system/autossh.service. Afterwards, you can then enable your autossh tunnels with, e.g.:&lt;br /&gt;
&lt;br /&gt;
 $ systemctl start autossh&lt;br /&gt;
(or whatever you called the service file)&lt;br /&gt;
&lt;br /&gt;
If this works OK for you, you can make this permanent by running&lt;br /&gt;
&lt;br /&gt;
 $ systemctl enable autossh&lt;br /&gt;
&lt;br /&gt;
That way autossh will start automatically at boot.&lt;br /&gt;
&lt;br /&gt;
It is also easy to maintain several autossh processes, to keep several tunnels alive. Just create multiple .service files with different names.&lt;br /&gt;
&lt;br /&gt;
== ソケットアクティベーションで SSH ポート番号を変更する (sshd.socket) ==&lt;br /&gt;
&lt;br /&gt;
次の内容で {{ic|/etc/systemd/system/sshd.socket.d/port.conf}} ファイルを作成:&lt;br /&gt;
&lt;br /&gt;
 [Socket]&lt;br /&gt;
 # Disable default port&lt;br /&gt;
 ListenStream=&lt;br /&gt;
 # Set new port&lt;br /&gt;
 ListenStream=12345&lt;br /&gt;
&lt;br /&gt;
リロードすれば systemd は自動的に新しいポートを開きます:&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
=== チェックリスト ===&lt;br /&gt;
&lt;br /&gt;
以下は最初に行うべきトラブルシューティングのチェックリストです。何かする前に以下の問題をチェックすることを推奨します。&lt;br /&gt;
&lt;br /&gt;
==== SSH の設定を確認 ====&lt;br /&gt;
&lt;br /&gt;
1. クライアントとサーバーの {{ic|~/.ssh}} フォルダにユーザーがアクセスできるようにする:&lt;br /&gt;
&lt;br /&gt;
 $ chmod 700 /home/USER/.ssh&lt;br /&gt;
 $ chmod 600 /home/USER/.ssh/*&lt;br /&gt;
&lt;br /&gt;
2. ライアントとサーバーの {{ic|~/.ssh}} フォルダにある全てのファイルの所有者がユーザーになっていることを確認:&lt;br /&gt;
&lt;br /&gt;
 $ chown -R USER: /home/USER/.ssh&lt;br /&gt;
&lt;br /&gt;
3. クライアントの公開鍵を確認。サーバーの {{ic|authorized_keys}} やユーザーの {{ic|~/.ssh/}} ファイルにある {{ic|id_rsa.pub}} ファイルなど。&lt;br /&gt;
&lt;br /&gt;
4. {{ic|/etc/ssh/sshd_config}} の {{ic|AllowUsers or AllowGroups}} オプションで SSH のアクセスが制限されていないか確認。&lt;br /&gt;
&lt;br /&gt;
5. ユーザーにパスワードが設定されていることを確認。新しいユーザーを追加したあとパスワードが設定されていなかったり一度もログインされてなかったりすることがあります。&lt;br /&gt;
&lt;br /&gt;
==== SSH を再起動 + ユーザーの再ログイン ====&lt;br /&gt;
&lt;br /&gt;
6. {{ic|sshd}} (サーバー) を[[再起動]]。&lt;br /&gt;
&lt;br /&gt;
7. クライアントとホスト、両方でユーザー (シェル) の再ログイン。&lt;br /&gt;
&lt;br /&gt;
==== 期限切れのキーを削除 (任意) ====&lt;br /&gt;
&lt;br /&gt;
8. Delete old/invalid key rows in server&#039;s {{ic|~/.ssh/authorized_keys}} file.&lt;br /&gt;
&lt;br /&gt;
9. Delete old/invalid private and public keys within the clients {{ic|~/.ssh}} folder.&lt;br /&gt;
&lt;br /&gt;
==== 推奨事項 ====&lt;br /&gt;
&lt;br /&gt;
10. Keep as few keys as possible in user&#039;s {{ic|~/.ssh/authorized_keys}} file on the server.&lt;br /&gt;
&lt;br /&gt;
11. Secure server&#039;s {{ic|/home/USER/.ssh/authorized_keys}} file against manipulation:&lt;br /&gt;
&lt;br /&gt;
 $ chmod 400 /home/USER/.ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
=== 電源オフ/再起動した後も SSH 接続が残ってしまう ===&lt;br /&gt;
systemd が sshd の前に network を停止してしまうと電源を切った後も SSH 接続が繋がったままになります。この問題を修正するには、{{ic|After}} ステートメントを修正してください:&lt;br /&gt;
{{hc|/usr/lib/systemd/system/systemd-user-sessions.service|2=&lt;br /&gt;
#After=remote-fs.target&lt;br /&gt;
After=network.target}}&lt;br /&gt;
&lt;br /&gt;
=== 接続が拒否されるまたはタイムアウトする ===&lt;br /&gt;
&lt;br /&gt;
==== ルーターがポートフォワーディングをしていないか？ ====&lt;br /&gt;
&lt;br /&gt;
SKIP THIS STEP IF YOU ARE NOT BEHIND A NAT MODEM/ROUTER (eg, a VPS or otherwise publicly addressed host). Most home and small businesses will have a NAT modem/router.&lt;br /&gt;
&lt;br /&gt;
The first thing is to make sure that your router knows to forward any incoming ssh connection to your machine. Your external IP is given to you by your ISP, and it is associated with any requests coming out of your router. So your router needs to know that any incoming ssh connection to your external IP needs to be forwarded to your machine running sshd.&lt;br /&gt;
&lt;br /&gt;
Find your internal network address.&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
Find your interface device and look for the inet field. Then access your router&#039;s configuration web interface, using your router&#039;s IP (find this on the web). Tell your router to forward it to your inet IP. Go to [http://portforward.com/] for more instructions on how to do so for your particular router.&lt;br /&gt;
&lt;br /&gt;
==== SSH が動作しているか？ ====&lt;br /&gt;
 $ ss -tnlp&lt;br /&gt;
&lt;br /&gt;
上記のコマンドで SSH ポートが開いていると表示されない場合、SSH は動作していません。{{ic|/var/log/messages}} にエラーがないか確認してください。&lt;br /&gt;
&lt;br /&gt;
==== 接続をブロックするようなファイアウォールのルールが存在しないか？ ====&lt;br /&gt;
&lt;br /&gt;
[[iptables]] によってポート {{ic|22}} の接続がブロックされている可能性があります。次のコマンドで確認してください:&lt;br /&gt;
{{bc|# iptables -nvL}}&lt;br /&gt;
{{ic|INPUT}} チェインのパケットを拒否するようなルールがないか見て下さい。そして、必要であれば、次のようなコマンドでポートのブロックを解除します:&lt;br /&gt;
{{bc|&lt;br /&gt;
# iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT&lt;br /&gt;
}}&lt;br /&gt;
ファイアウォールの設定に関する詳細は[[ファイアウォール]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
==== Is the traffic even getting to your computer? ====&lt;br /&gt;
Start a traffic dump on the computer you&#039;re having problems with:&lt;br /&gt;
&lt;br /&gt;
 # tcpdump -lnn -i any port ssh and tcp-syn&lt;br /&gt;
&lt;br /&gt;
This should show some basic information, then wait for any matching traffic to happen before displaying it. Try your connection now. If you do not see any output when you attempt to connect, then something outside of your computer is blocking the traffic (e. g., hardware firewall, NAT router etc.).&lt;br /&gt;
&lt;br /&gt;
==== ISP またはサードパーティによってデフォルトのポートがブロックされてないか？ ====&lt;br /&gt;
{{Note|このステップは次のことを確認した後で実行してください。ファイアーウォールを何も起動していないこと。DMZ へのルータを正しく設定している、またはコンピュータへポートを転送していること。それでもまだ動かない場合。ここで診断のステップと解決法が見つかるでしょう。}}&lt;br /&gt;
&lt;br /&gt;
ときどき ISP（インターネット・サービス・プロバイダ）が SSH のデフォルトポート（22番）をブロックしている場合があります。この場合はあなたが何をしても（ポートを開ける、スタックを強化する、フラッドアタックを防御する、など）無意味になります。これを確認するためには、全てのインターフェイス（0.0.0.0）をリッスンする sshd を立ち上げ、リモートから接続してみます。&lt;br /&gt;
&lt;br /&gt;
このようなエラーメッセージが出る場合：&lt;br /&gt;
 ssh: connect to host www.inet.hr port 22: Connection refused&lt;br /&gt;
&lt;br /&gt;
これはそのポートが ISP にブロックされていないが、サーバのそのポートで SSH が起動していないことを意味します&lt;br /&gt;
（[[wikipedia:Security_through_obscurity|security through obscurity]] を参照）。&lt;br /&gt;
&lt;br /&gt;
しかし、次のようなエラーメッセージが出る場合：&lt;br /&gt;
 ssh: connect to host 111.222.333.444 port 22: Operation timed out &lt;br /&gt;
&lt;br /&gt;
これは何かがポート 22 での TCP トラフィックを拒否（reject）していることを意味します。そのポートはあなたのサーバ上のファイアーウォールか第三者（ISP など）のどちらかによってステルスされています。自分のサーバでファイアーウォールが起動していないことが確かなら、またルータやスイッチの中でグレムリンが育っていないことが確かなら、ISP がトラフィックをブロックしています。&lt;br /&gt;
&lt;br /&gt;
ダブルチェックのために、サーバ上で Wireshark を起動を起動してポート 22 でのトラフィックをリッスンしてみましょう。Wireshark はレイヤ 2 のパケット・スニファリング・ユーティリティであり、TCP/UDP はレイヤ 3 以上なので（[[wikipedia:Internet protocol suite|IP Network stack]]を参照）、もしリモートから接続するときに何も受け取っていなければ、十中八九、第三者がブロックしています。&lt;br /&gt;
&lt;br /&gt;
===== 問題診断 =====&lt;br /&gt;
{{Pkg|tcpdump}} または {{Pkg|wireshark-cli}} パッケージの Wireshark を[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
tcpdump の場合:&lt;br /&gt;
 # tcpdump -ni &#039;&#039;interface&#039;&#039; &amp;quot;port 22&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wireshark の場合:&lt;br /&gt;
 $ tshark -f &amp;quot;tcp port 22&amp;quot; -i &#039;&#039;interface&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{ic|&#039;&#039;interface&#039;&#039;}} は WAN 接続に使っているネットワークインターフェイスに置き換えてください (確認したいときは {{ic|ip a}} を実行)。リモートで接続を試行してもパケットが全く受け取れない場合、ISP によってポート 22 のトラフィックがブロックされている可能性があります。&lt;br /&gt;
&lt;br /&gt;
===== 解決方法 =====&lt;br /&gt;
解決方法は、単に ISP がブロックしていない他のポートを使うことです。{{ic|/etc/ssh/sshd_config}} を編集して他のポートを使うようにしましょう。例えば次を追加します：&lt;br /&gt;
&lt;br /&gt;
 Port 22&lt;br /&gt;
 Port 1234&lt;br /&gt;
&lt;br /&gt;
そしてこのファイル中の他の Port 設定をコメントアウトします。「Port 22」をコメントにして「Port 1234」を追加するだけでは、sshd がポート 1234 しかリッスンしなくなるので、この問題は解決しません。この 2 行どちらも使用し、sshd が両方のポートをリッスンするようにします。&lt;br /&gt;
&lt;br /&gt;
あとは {{ic|systemctl restart sshd.service}} で sshd を起動するだけです。そして ssh クライアントでも同じポートに変更します。There are numerous solutions to that problem, but let us cover two of them here.&lt;br /&gt;
&lt;br /&gt;
==== Read from socket failed: connection reset by peer ====&lt;br /&gt;
最近の openssh のバージョンでは、楕円曲線暗号関連のバグのせいで、上記のエラーメッセージで接続が失敗することがあります。その場合 {{ic|~/.ssh/config}} に次の行を追加してください:&lt;br /&gt;
&lt;br /&gt;
 HostKeyAlgorithms ssh-rsa-cert-v01@openssh.com,ssh-dss-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-dss-cert-v00@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-rsa,ssh-dss&lt;br /&gt;
&lt;br /&gt;
openssh 5.9 では、上記の修正方法は働きません。代わりに、{{ic|~/.ssh/config}} に以下の行を記述してください:&lt;br /&gt;
&lt;br /&gt;
 Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc &lt;br /&gt;
 MACs hmac-md5,hmac-sha1,hmac-ripemd160&lt;br /&gt;
&lt;br /&gt;
openssh バグフォーラムの [http://www.gossamer-threads.com/lists/openssh/dev/51339 議論] も参照。&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;[your shell]: No such file or directory&amp;quot; / ssh_exchange_identification problem ===&lt;br /&gt;
One possible cause for this is the need of certain SSH clients to find an absolute path (one returned by {{Ic|whereis -b [your shell]}}, for instance) in {{Ic|$SHELL}}, even if the shell&#039;s binary is located in one of the {{Ic|$PATH}} entries.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Terminal unknown&amp;quot; や &amp;quot;Error opening terminal&amp;quot; エラーメッセージ===&lt;br /&gt;
ssh でログイン時に &amp;quot;Terminal unknown&amp;quot; のようなエラーが表示されることがあります。nano などの ncurses アプリケーションを実行すると &amp;quot;Error opening terminal&amp;quot; というメッセージが表示されます。この問題を解決する方法は2つあります。{{ic|$TERM}} 変数を使って簡単に修正する方法と terminfo ファイルを使って根本的に解決する方法です。&lt;br /&gt;
&lt;br /&gt;
====$TERM 変数を設定する解決策====&lt;br /&gt;
リモートサーバーに接続した後に以下のコマンドを使って {{ic|$TERM}} 変数を &amp;quot;xterm&amp;quot; に設定してください:&lt;br /&gt;
&lt;br /&gt;
 $ TERM&amp;amp;#61;xterm&lt;br /&gt;
&lt;br /&gt;
この方法はあくまで次善策であり、たまにしか接続しない ssh サーバーで使うようにしてください。良くない副作用があるからです。また、接続するたびにコマンドを実行する必要があります。もしくは {{ic|~.bashrc}} で設定してください。&lt;br /&gt;
&lt;br /&gt;
====terminfo ファイルを使う解決策====&lt;br /&gt;
A profound solution is transferring the terminfo file of the terminal on your client computer to the ssh server. In this example we cover how to setup the terminfo file for the &amp;quot;rxvt-unicode-256color&amp;quot; terminal.&lt;br /&gt;
Create the directory containing the terminfo files on the ssh server, while you are logged in to the server issue this command:&lt;br /&gt;
&lt;br /&gt;
 $ mkdir -p ~/.terminfo/r/&lt;br /&gt;
&lt;br /&gt;
Now copy the terminfo file of your terminal to the new directory. Replace {{ic|rxvt-unicode-256color}} with your client&#039;s terminal in the following command and {{ic|ssh-server}} with the relevant user and server adress.&lt;br /&gt;
&lt;br /&gt;
 $ scp /usr/share/terminfo/r/&#039;&#039;rxvt-unicode-256color&#039;&#039; ssh-server:~/.terminfo/r/&lt;br /&gt;
&lt;br /&gt;
After logging in and out from the ssh server the problem should be fixed.&lt;br /&gt;
&lt;br /&gt;
=== Connection closed by x.x.x.x [preauth] ===&lt;br /&gt;
sshd のログでこのエラーが確認できる場合、HostKey が正しく設定されているか確認してください:&lt;br /&gt;
 HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
&lt;br /&gt;
=== OpenSSH 7.0 によって id_dsa が拒否される ===&lt;br /&gt;
&lt;br /&gt;
OpenSSH 7.0 では ssh-dss が無効になっており、http://www.openssh.com/legacy.html には id_dsa 鍵が使われている場合にサーバーにアクセスする方法が書かれていません:&lt;br /&gt;
&lt;br /&gt;
 PubkeyAcceptedKeyTypes +ssh-dss&lt;br /&gt;
&lt;br /&gt;
While this can be added a per host basis or with -o, to make sure &amp;quot;ProxyCommand ssh&amp;quot; still works, add it to ssh_config.&lt;br /&gt;
&lt;br /&gt;
=== no matching key exchange method found by OpenSSH 7.0 ===&lt;br /&gt;
&lt;br /&gt;
OpenSSH 7.0 also deprecated the key algorithm diffie-hellman-group1-sha1, as we could see in http://www.openssh.com/legacy.html.&lt;br /&gt;
&lt;br /&gt;
If the client and server are unable to agree on a mutual set of parameters then the connection will fail. OpenSSH (7.0 and greater) will produce an error message like this:&lt;br /&gt;
&lt;br /&gt;
  Unable to negotiate with 127.0.0.1: no matching key exchange method found.&lt;br /&gt;
  Their offer: diffie-hellman-group1-sha1&lt;br /&gt;
&lt;br /&gt;
In this case, the client and server were unable to agree on the key exchange algorithm. The server offered only a single method diffie-hellman-group1-sha1. OpenSSH supports this method, but does not enable it by default because is weak and within theoretical range of the so-called Logjam attack.&lt;br /&gt;
&lt;br /&gt;
The best resolution for these failures is to upgrade the software at the other end. OpenSSH only disables algorithms that we actively recommend against using because they are known to be weak. In some cases, this might not be immediately possible so you may need to temporarily re-enable the weak algorithms to retain access.&lt;br /&gt;
&lt;br /&gt;
For the case of the above error message, OpenSSH can be configured to enable the diffie-hellman-group1-sha1 key exchange algorithm (or any other that is disabled by default) using the KexAlgorithm option - either on the command-line:&lt;br /&gt;
&lt;br /&gt;
  ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 user@127.0.0.1&lt;br /&gt;
&lt;br /&gt;
or in the ~/.ssh/config file:&lt;br /&gt;
&lt;br /&gt;
  Host somehost.example.org&lt;br /&gt;
  	KexAlgorithms +diffie-hellman-group1-sha1&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
*[http://www.la-samhna.de/library/brutessh.html Defending against brute force ssh attacks]&lt;br /&gt;
*IBM developerWorks の [http://www.ibm.com/developerworks/jp/linux/library/l-keyc/ OpenSSH キー （鍵） の管理: 第 1 回] と [http://www.ibm.com/developerworks/jp/linux/library/l-keyc2/ 第 2 回]&lt;br /&gt;
* [https://stribika.github.io/2015/01/04/secure-secure-shell.html Secure Secure Shell]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=OpenSSH&amp;diff=4533</id>
		<title>OpenSSH</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=OpenSSH&amp;diff=4533"/>
		<updated>2015-12-27T03:27:26Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: /* マルチプレクス */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Secure Shell]]&lt;br /&gt;
[[ar:Secure Shell]]&lt;br /&gt;
[[de:SSH]]&lt;br /&gt;
[[en:Secure Shell]]&lt;br /&gt;
[[es:Secure Shell]]&lt;br /&gt;
[[fr:ssh]]&lt;br /&gt;
[[it:Secure Shell]]&lt;br /&gt;
[[ko:Secure Shell]]&lt;br /&gt;
[[pl:Secure Shell]]&lt;br /&gt;
[[pt:Secure Shell]]&lt;br /&gt;
[[ru:Secure Shell]]&lt;br /&gt;
[[sr:Secure Shell]]&lt;br /&gt;
[[zh-CN:Secure Shell]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|SSH 鍵}}&lt;br /&gt;
{{Related|Pam abl}}&lt;br /&gt;
{{Related|fail2ban}}&lt;br /&gt;
{{Related|sshguard}}&lt;br /&gt;
{{Related|Sshfs}}&lt;br /&gt;
{{Related|syslog-ng}}&lt;br /&gt;
{{Related|SFTP chroot}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
Secure Shell (SSH) は暗号技術を利用して、安全にリモートコンピュータと通信するためのネットワークプロトコルです。暗号によってデータの機密性と完全性が保証されます。SSH は公開鍵暗号を使ってリモートコンピュータを認証し、リモートコンピュータは必要に応じてユーザーを認証します。&lt;br /&gt;
&lt;br /&gt;
基本的に SSH はリモートマシンにログインしてコマンドを実行するために使われますが、トンネリングや TCP ポートや X11 接続の任意のフォワーディングをサポートしており、SFTP や SCP プロトコルを使うことでファイル転送をすることも可能です。&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、SSH サーバーは標準の TCP 22番ポートを使います。通常は SSH クライアントプロトコルを使って &#039;&#039;sshd&#039;&#039; デーモンの接続を確立してリモート接続を承認します。Mac OS X, GNU/Linux, Solaris, OpenVMS など近代的なオペレーティングシステムのほとんどでサーバーとクライアントの両方が備わってします。複雑なもの・完全なものまで様々なレベルのバージョンがプロプライエタリ・フリーウェア・オープンソースを問わずに存在します。&lt;br /&gt;
&lt;br /&gt;
(ソース: [[Wikipedia:ja:Secure Shell]])&lt;br /&gt;
&lt;br /&gt;
== OpenSSH ==&lt;br /&gt;
OpenSSH (OpenBSD Secure Shell) は ssh プロトコルを使ってコンピューターネットワークを介して暗号化通信セッションを提供するコンピュータープログラムのセットです。SSH Communications Security によるプロプライエタリの Secure Shell ソフトウェアスイートに代わるオープンのプログラムとして作成されました。OpenSSH は Theo de Raadt に率いられている OpenBSD プロジェクトの一環として開発されています。&lt;br /&gt;
&lt;br /&gt;
同じような名前の OpenSSL と OpenSSH が混同されることがときどきありますが、プロジェクトの目的・開発チームは異なります。&lt;br /&gt;
&lt;br /&gt;
=== OpenSSH のインストール ===&lt;br /&gt;
[[公式リポジトリ]]から {{Pkg|openssh}} を[[pacman|インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
=== SSH の設定 ===&lt;br /&gt;
====クライアント====&lt;br /&gt;
SSH クライアントの設定ファイルは {{ic|/etc/ssh/ssh_config}} もしくは {{ic|~/.ssh/config}} です。&lt;br /&gt;
&lt;br /&gt;
{{ic|Protocol 2}} を明示的に設定する必要はありません。デフォルトの設定ファイルではコメントアウトされています。つまり明示的に有効にされない限り {{ic|Protocol 1}} は使われません。 (ソース: http://www.openssh.org/txt/release-5.4)&lt;br /&gt;
&lt;br /&gt;
====デーモン====&lt;br /&gt;
SSH デーモンの設定ファイルは {{ic|/etc/ssh/ssh&#039;&#039;&#039;d&#039;&#039;&#039;_config}} です。&lt;br /&gt;
&lt;br /&gt;
特定のユーザーにだけアクセスを許可するには次の行を追加してください:&lt;br /&gt;
 AllowUsers    user1 user2&lt;br /&gt;
&lt;br /&gt;
特定のグループにだけアクセスを許可するには:&lt;br /&gt;
 AllowGroups   group1 group2&lt;br /&gt;
&lt;br /&gt;
SSH による root ログインを無効にするには、PermitRootLogin 行を次のように変更してください:&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
&lt;br /&gt;
{{Note|1=バージョン 7.0p1 からは {{ic|PermitRootLogin prohibit-password}} がデフォルトになっています。{{ic|man sshd_config}} を参照。}}&lt;br /&gt;
&lt;br /&gt;
ウェルカムメッセージを追加するには {{ic|/etc/issue}} ファイルを編集して Banner 行を次のように変更してください:&lt;br /&gt;
 Banner /etc/issue&lt;br /&gt;
&lt;br /&gt;
ホスト鍵は sshd の systemd サービスによって自動的に生成されます。sshd に特定の鍵を使用させたい場合、手動で設定します:&lt;br /&gt;
 HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
&lt;br /&gt;
サーバーに WAN からアクセスできる場合、デフォルトのポートである 22 から別のランダムなポートに変更することが推奨されています:&lt;br /&gt;
 Port 39901&lt;br /&gt;
&lt;br /&gt;
{{Note|OpenSSH では設定ファイルに &#039;&#039;Port x&#039;&#039; 行を複数記述することで複数のポートを使うことができます。}}&lt;br /&gt;
&lt;br /&gt;
パスワードによるログインを使わないようにすればセキュリティは大幅に向上します。詳しくは [[SSH 鍵#パスワードログインの無効化]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== sshd デーモンの管理 ===&lt;br /&gt;
次のコマンドで sshd デーモンを起動することができます:&lt;br /&gt;
 # systemctl start sshd.service&lt;br /&gt;
&lt;br /&gt;
次のコマンドで sshd デーモンを起動時に有効にすることができます:&lt;br /&gt;
 # systemctl enable sshd.service&lt;br /&gt;
&lt;br /&gt;
詳しくは [[systemd#ユニットを使う]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
{{Warning|Systemd は非同期にプロセスを実行します。SSH デーモンを特定の IP アドレス {{ic|ListenAddress 192.168.1.100}} に結びつけている場合、デフォルトの sshd.service ユニットファイルはネットワークインターフェイスが有効にされることに依存していないため、ブート中にロードが失敗する可能性があります。IP アドレスをバインドする時は、カスタムした sshd.service ユニットファイルに {{ic|1=After=network.target}} を追加してください。[[systemd#ユニットファイルの編集]] を参照。}}&lt;br /&gt;
&lt;br /&gt;
また SSH デーモンソケットを有効にすることで初めて接続があったときにデーモンが起動するようにすることもできます:&lt;br /&gt;
 # systemctl start sshd.socket&lt;br /&gt;
 # systemctl enable sshd.socket&lt;br /&gt;
デフォルトの22番以外のポートを使う場合、ユニットファイルを[[systemd#ユニットファイルの編集|編集]]する必要があります:&lt;br /&gt;
{{hc|# systemctl edit sshd.socket|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Socket]&lt;br /&gt;
ListenStream=&lt;br /&gt;
ListenStream=12345&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|sshd.socket}} を使用すると {{ic|ListenAddress}} の設定が打ち消されて、どのアドレスからでも接続できるようになってしまいます。{{ic|ListenAddress}} の設定を適用するには、{{ic|ListenStream}} でポートと IP を指定する必要があります (例: {{ic|1=ListenStream=192.168.1.100:22}})。また、{{ic|[Socket]}} の下に {{ic|1=FreeBind=true}} を追加するようにしてください。そうしないと IP アドレスの設定が {{ic|ListenAddress}} の設定と同じように無効になってしまいます: ネットワークが立ち上がっていない場合にソケットの起動が失敗します。}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|ソケットアクティベーションを使う場合、{{ic|sshd.socket}} でもデーモンの標準の {{ic|sshd.service}} でもログの接続試行を監視することはできません。ただし {{ic|# journalctl /usr/bin/sshd}} を実行することで監視できます。}}&lt;br /&gt;
&lt;br /&gt;
=== サーバーに接続する ===&lt;br /&gt;
サーバーに接続するには、次を実行してください:&lt;br /&gt;
 $ ssh -p port user@server-address&lt;br /&gt;
&lt;br /&gt;
=== SSH の保護 ===&lt;br /&gt;
管理業務のために SSH によるリモートログインを許可することは良いことですが、サーバーのセキュリティに脅威を及ぼすことにもなりえます。総当り攻撃の標的になりやすいので、SSH のアクセスは制限して、第三者がサーバーにアクセスできないようにする必要があります。&lt;br /&gt;
* わかりにくいアカウント名やパスワードを使う&lt;br /&gt;
* 信頼できる国からの SSH 接続だけを許可する&lt;br /&gt;
* [[fail2ban]] や [[sshguard]] をつかってブルートフォース攻撃を監視し、総当りを起こっている IP を閉め出す&lt;br /&gt;
&lt;br /&gt;
==== ブルートフォースアタックからの保護 ====&lt;br /&gt;
ブルートフォースは単純な攻撃方法です: ランダムなユーザー名とパスワードの組み合わせをとにかく沢山作ってウェブページや SSH などのサーバーログインプロンプトにログインを絶えず試行します。ブルートフォース攻撃からは [[fail2ban]] や [[sshguard]] などの自動スクリプトを使うことで攻撃者をブロックすることで身を守ることができます。&lt;br /&gt;
&lt;br /&gt;
もしくは、公開鍵認証を使うことでブルートフォース攻撃を出来なくすることもできます。{{ic|sshd_config}} に次の設定を追加:&lt;br /&gt;
&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
&lt;br /&gt;
上の設定を適用する前に、SSH アクセスが必要な全てのアカウントで {{ic|authorized_keys}} ファイルに公開鍵認証の設定をするようにしてください。詳しくは [[SSH 鍵#リモートサーバーに公開鍵をコピー]] を参照。&lt;br /&gt;
&lt;br /&gt;
==== 2段階認証 ====&lt;br /&gt;
&lt;br /&gt;
SSH 鍵のペアによる認証を使用していてパスワードによろうログインを無効化している場合に、2段階認証を使いたいときは [[Google Authenticator]] や [[SSH 鍵#2段階認証と公開鍵]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
==== root ログインを制限する ====&lt;br /&gt;
一般的に、SSH で無制限に root ログインを許可することは推奨されません。セキュリティの向上のために、SSH での root ログインを制限する方法は2つ存在します。&lt;br /&gt;
&lt;br /&gt;
===== root ログインを拒否する =====&lt;br /&gt;
&lt;br /&gt;
Sudo を使うことで、root アカウントの認証を行うことなく、必要に応じて root 権限を選択的に付与することができます。このため SSH による root ログインを拒否して、攻撃者にパスワードに加えて (root でない) ユーザー名も推測させる必要を生じさせることで、ブルートフォース攻撃を困難にすることが可能です。&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/ssh/sshd_config}} の &amp;quot;Authentication&amp;quot; セクションを編集することで SSH からの root ログインを拒否するように設定できます。{{ic|#PermitRootLogin yes}} を {{ic|no}} に変更して行をアンコメントしてください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ssh/sshd_config|&lt;br /&gt;
PermitRootLogin no&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
そして、SSH デーモンを[[再起動]]してください。&lt;br /&gt;
&lt;br /&gt;
これで、SSH を使って root でログインすることはできなくなります。ただし、通常ユーザーでログインしてから [[su]] や [[sudo]] を使ってシステム管理を行うことは依然として可能です。&lt;br /&gt;
&lt;br /&gt;
===== root ログインを限定する =====&lt;br /&gt;
自動的な作業の中にも、リモートによるフルシステムバックアップなど、root 権限を必要とするものがあります。セキュアな方法で root を許可したい場合、SSH による root ログインを無効化する代わりに、特定のコマンドだけ root ログインを許可することができます。{{ic|~root/.ssh/authorized_keys}} を編集して、以下のように特定のキーの前にコマンドを記述します:&lt;br /&gt;
&lt;br /&gt;
 command=&amp;quot;/usr/lib/rsync/rrsync -ro /&amp;quot; ssh-rsa …&lt;br /&gt;
&lt;br /&gt;
This will allow any login with this specific key only to execute the command specified between the quotes.&lt;br /&gt;
&lt;br /&gt;
The increased attack surface created by exposing the root user name at login can be compensated by adding the following to {{ic|sshd_config}}:&lt;br /&gt;
&lt;br /&gt;
 PermitRootLogin forced-commands-only&lt;br /&gt;
&lt;br /&gt;
This setting will not only restrict the commands which root may execute via SSH, but it will also disable the use of passwords, forcing use of public key authentication for the root account.&lt;br /&gt;
&lt;br /&gt;
A slightly less restrictive alternative will allow any command for root, but makes brute force attacks infeasible by enforcing public key authentication. For this option, set:&lt;br /&gt;
&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
&lt;br /&gt;
== 他の SSH クライアントとサーバー ==&lt;br /&gt;
OpenSSH の他にも、多数の SSH [[Wikipedia:Comparison of SSH clients|クライアント]] と[[Wikipedia:Comparison of SSH servers|サーバー]]が存在します。&lt;br /&gt;
&lt;br /&gt;
=== Dropbear ===&lt;br /&gt;
[[Wikipedia:Dropbear (software)|Dropbear]] は SSH-2 クライアント・サーバーです。{{Pkg|dropbear}} は[[公式リポジトリ]]から利用可能です。&lt;br /&gt;
&lt;br /&gt;
コマンドラインの ssh クライアントは dbclient という名前が付けられています。&lt;br /&gt;
&lt;br /&gt;
=== Mosh: Mobile Shell ===&lt;br /&gt;
Mosh の [http://mosh.mit.edu/ ウェブサイト] より:&lt;br /&gt;
&lt;br /&gt;
ローミングが可能で、断続的な接続もサポートしているリモート端末アプリケーションです。ユーザーのキーストロークのローカルエコーと行編集を提供します。Mosh は SSH の代替です。SSH よりも強固でレスポンスが早く、特に Wi-Fi や携帯端末からの接続、長距離通信など通信速度が遅い場合に役に立ちます。&lt;br /&gt;
&lt;br /&gt;
[[公式リポジトリ]]から {{Pkg|mosh}} を[[pacman|インストール]]するか [[Arch User Repository|AUR]] にある最新版 {{AUR|mosh-git}} を使って下さい。&lt;br /&gt;
&lt;br /&gt;
Mosh にはドキュメントに記載されていないコマンドラインオプション {{ic|1=--predict=experimental}} が存在し、よりアグレッシブにローカルのキーストロークのエコーを生成します。キーボード入力が遅延なく確認できるのに興味があるのであればこの prediction モードを使ってみて下さい。&lt;br /&gt;
&lt;br /&gt;
== Tips and tricks ==&lt;br /&gt;
&lt;br /&gt;
=== 暗号化 SOCKS トンネル ===&lt;br /&gt;
This is highly useful for laptop users connected to various unsafe wireless connections. The only thing you need is an SSH server running at a somewhat secure location, like your home or at work. It might be useful to use a dynamic DNS service like [http://www.dyndns.org/ DynDNS] so you do not have to remember your IP-address.&lt;br /&gt;
&lt;br /&gt;
==== 手順 1: 接続の開始 ====&lt;br /&gt;
You only have to execute this single command to start the connection:&lt;br /&gt;
 $ ssh -TND 4711 &#039;&#039;user&#039;&#039;@&#039;&#039;host&#039;&#039;&lt;br /&gt;
where {{Ic|&#039;&#039;user&#039;&#039;}} is your username at the SSH server running at the {{Ic|&#039;&#039;host&#039;&#039;}}. It will ask for your password, and then you are connected! The {{Ic|N}} flag disables the interactive prompt, and the {{Ic|D}} flag specifies the local port on which to listen on (you can choose any port number if you want).  The {{Ic|T}} flag disables pseudo-tty allocation.&lt;br /&gt;
&lt;br /&gt;
It is nice to add the verbose ({{Ic|-v}}) flag, because then you can verify that it is actually connected from that output.&lt;br /&gt;
&lt;br /&gt;
==== 手順 2: ブラウザ (やその他のプログラム) の設定 ====&lt;br /&gt;
The above step is completely useless if you do not configure your web browser (or other programs) to use this newly created socks tunnel. Since the current version of SSH supports both SOCKS4 and SOCKS5, you can use either of them.&lt;br /&gt;
&lt;br /&gt;
* For Firefox: &#039;&#039;Edit &amp;amp;rarr; Preferences &amp;amp;rarr; Advanced &amp;amp;rarr; Network &amp;amp;rarr; Connection &amp;amp;rarr; Setting&#039;&#039;:&lt;br /&gt;
: Check the &#039;&#039;Manual proxy configuration&#039;&#039; radio button, and enter {{ic|localhost}} in the &#039;&#039;SOCKS host&#039;&#039; text field, and then enter your port number in the next text field ({{ic|4711}} in the example above).&lt;br /&gt;
&lt;br /&gt;
Firefox does not automatically make DNS requests through the socks tunnel. This potential privacy concern can be mitigated by the following steps:&lt;br /&gt;
&lt;br /&gt;
# Type about:config into the Firefox location bar.&lt;br /&gt;
# Search for network.proxy.socks_remote_dns&lt;br /&gt;
# Set the value to true.&lt;br /&gt;
# Restart the browser.&lt;br /&gt;
&lt;br /&gt;
* For Chromium: You can set the SOCKS settings as environment variables or as command line options. I recommend to add one of the following functions to your {{ic|.bashrc}}:&lt;br /&gt;
 function secure_chromium {&lt;br /&gt;
     port=4711&lt;br /&gt;
     export SOCKS_SERVER=localhost:$port&lt;br /&gt;
     export SOCKS_VERSION=5&lt;br /&gt;
     chromium &amp;amp;&lt;br /&gt;
     exit&lt;br /&gt;
 }&lt;br /&gt;
OR&lt;br /&gt;
 function secure_chromium {&lt;br /&gt;
     port=4711&lt;br /&gt;
     chromium --proxy-server=&amp;quot;socks://localhost:$port&amp;quot; &amp;amp;&lt;br /&gt;
     exit&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Now open a terminal and just do:&lt;br /&gt;
 $ secure_chromium&lt;br /&gt;
&lt;br /&gt;
Enjoy your secure tunnel!&lt;br /&gt;
&lt;br /&gt;
=== X11 フォワーディング ===&lt;br /&gt;
&lt;br /&gt;
X11 フォワーディングはリモートシステムで X11 プログラムを動作させて、グラフィカルインターフェイスをローカルのクライアントマシンで表示させるメカニズムです。X11 フォワーディングではリモートホストに X11 システムを完全にインストールさせる必要はなく、&#039;&#039;xauth&#039;&#039; をインストールするだけで十分です。&#039;&#039;xauth&#039;&#039; は、、X11 セッションの認証を行うために必要なサーバーとクライアントによって使用される {{ic|Xauthority}} の設定を管理するユーティリティです ([http://xmodulo.com/2012/11/how-to-enable-x11-forwarding-using-ssh.html ソース])。&lt;br /&gt;
&lt;br /&gt;
{{Warning|X11 forwarding has important security implications which should be at least acknowledged by reading relevant sections of {{ic|ssh}}, {{ic|sshd_config}} and {{ic|ssh_config}} manual pages. See also [https://security.stackexchange.com/questions/14815/security-concerns-with-x11-forwarding a short writeup]}}&lt;br /&gt;
&lt;br /&gt;
==== セットアップ ====&lt;br /&gt;
&lt;br /&gt;
リモート側:&lt;br /&gt;
&lt;br /&gt;
*[[公式リポジトリ]]から {{Pkg|xorg-xauth}} と {{Pkg|xorg-xhost}} を[[インストール]]&lt;br /&gt;
*{{ic|/etc/ssh/ssh&#039;&#039;&#039;d&#039;&#039;&#039;_config}} 内:&lt;br /&gt;
**{{ic|AllowTcpForwarding}} と {{ic|X11UseLocalhost}} オプションを &#039;&#039;yes&#039;&#039; に設定し、{{ic|X11DisplayOffset}} を &#039;&#039;10&#039;&#039; に設定 (何も変更を加えてなければこの値がデフォルトになっています、{{ic|man sshd_config}} を参照)&lt;br /&gt;
**{{ic|X11Forwarding}} を &#039;&#039;yes&#039;&#039; に設定&lt;br /&gt;
* [[#sshd デーモンの管理|&#039;&#039;sshd&#039;&#039; デーモン]]を[[Systemd#ユニットを使う|再起動]]&lt;br /&gt;
* リモートシステムでも X サーバーを動作させる必要があります。&lt;br /&gt;
&lt;br /&gt;
クライアント側では、接続するたびにコマンドラインで {{ic|-X}} スイッチを指定して {{ic|ForwardX11}} オプションを有効にするか、[[#クライアント|openSSH クライアントの設定ファイル]]で {{ic|ForwardX11}} を &#039;&#039;yes&#039;&#039; に設定してください。&lt;br /&gt;
&lt;br /&gt;
{{Tip|You can enable the {{ic|ForwardX11Trusted}} option ({{ic|-Y}} switch on the command line) if GUI is drawing badly or you receive errors; this will prevent X11 forwardings from being subjected to the [http://www.x.org/wiki/Development/Documentation/Security/ X11 SECURITY extension] controls. Be sure you have read [[#X11 フォワーディング|the warning]] at the beginning of this section if you do so.}}&lt;br /&gt;
&lt;br /&gt;
==== 使用方法 ====&lt;br /&gt;
&lt;br /&gt;
通常通り[[#サーバーに接続する|リモートマシンにログイン]]します、クライアント側の設定ファイルで &#039;&#039;ForwardX11&#039;&#039; を有効にしていない場合は {{ic|-X}} スイッチを指定します:&lt;br /&gt;
 $ ssh -X &#039;&#039;user@host&#039;&#039;&lt;br /&gt;
グラフィカルなアプリケーションを実行しようとするとエラーが表示される場合、代わりに &#039;&#039;ForwardX11Trusted&#039;&#039; を試してみて下さい:&lt;br /&gt;
 $ ssh -Y &#039;&#039;user@host&#039;&#039;&lt;br /&gt;
リモートサーバーで X プログラムが起動できるようになったら、出力がローカルセッションに転送されます:&lt;br /&gt;
 $ xclock&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Cannot open display&amp;quot; エラーが表示される場合、root 以外のユーザーで以下のコマンドを実行してみてください:&lt;br /&gt;
 $ xhost +&lt;br /&gt;
&lt;br /&gt;
The above command will allow anybody to forward X11 applications. To restrict forwarding to a particular host type:&lt;br /&gt;
 $ xhost +hostname&lt;br /&gt;
&lt;br /&gt;
where hostname is the name of the particular host you want to forward to. See {{ic|man xhost}} for more details.&lt;br /&gt;
&lt;br /&gt;
Be careful with some applications as they check for a running instance on the local machine. [[Firefox]] is an example: either close the running Firefox instance or use the following start parameter to start a remote instance on the local machine:&lt;br /&gt;
 $ firefox -no-remote&lt;br /&gt;
&lt;br /&gt;
If you get &amp;quot;X11 forwarding request failed on channel 0&amp;quot; when you connect (and the server {{ic|/var/log/errors.log}} shows &amp;quot;Failed to allocate internet-domain X11 display socket&amp;quot;), make sure package {{Pkg|xorg-xauth}} is installed. If its installation is not working, try to either:&lt;br /&gt;
&lt;br /&gt;
* enable the {{ic|AddressFamily any}} option in {{ic|ssh&#039;&#039;&#039;d&#039;&#039;&#039;_config}} on the &#039;&#039;server&#039;&#039;, or&lt;br /&gt;
* set the {{ic|AddressFamily}} option in {{ic|ssh&#039;&#039;&#039;d&#039;&#039;&#039;_config}} on the &#039;&#039;server&#039;&#039; to inet.&lt;br /&gt;
Setting it to inet may fix problems with Ubuntu clients on IPv4.&lt;br /&gt;
&lt;br /&gt;
For running X applications as other user on the SSH server you need to {{Ic|xauth add}} the authentication line taken from {{Ic|xauth list}} of the SSH logged in user.&lt;br /&gt;
&lt;br /&gt;
=== 他のポートのフォワーディング ===&lt;br /&gt;
In addition to SSH&#039;s built-in support for X11, it can also be used to securely tunnel any TCP connection, by use of local forwarding or remote forwarding.&lt;br /&gt;
&lt;br /&gt;
Local forwarding opens a port on the local machine, connections to which will be forwarded to the remote host and from there on to a given destination. Very often, the forwarding destination will be the same as the remote host, thus providing a secure shell and, e.g. a secure VNC connection, to the same machine. Local forwarding is accomplished by means of the {{Ic|-L}} switch and it&#039;s accompanying forwarding specification in the form of {{Ic|&amp;lt;tunnel port&amp;gt;:&amp;lt;destination address&amp;gt;:&amp;lt;destination port&amp;gt;}}.&lt;br /&gt;
&lt;br /&gt;
Thus:&lt;br /&gt;
&lt;br /&gt;
 $ ssh -L 1000:mail.google.com:25 192.168.0.100&lt;br /&gt;
&lt;br /&gt;
will use SSH to login to and open a shell on 192.168.0.100, and will also create a tunnel from the local machine&#039;s TCP port 1000 to mail.google.com on port 25. Once established, connections to localhost:1000 will connect to the Gmail SMTP port. To Google, it will appear that any such connection (though not necessarily the data conveyed over the connection) originated from 192.168.0.100, and such data will be secure as between the local machine and 192.168.0.100, but not between 192.168.0.100, unless other measures are taken.&lt;br /&gt;
&lt;br /&gt;
Similarly:&lt;br /&gt;
&lt;br /&gt;
 $ ssh -L 2000:192.168.0.100:6001 192.168.0.100&lt;br /&gt;
&lt;br /&gt;
will allow connections to localhost:2000 which will be transparently sent to the remote host on port 6001. The preceding example is useful for VNC connections using the vncserver utility--part of the tightvnc package--which, though very useful, is explicit about its lack of security.&lt;br /&gt;
&lt;br /&gt;
Remote forwarding allows the remote host to connect to an arbitrary host via the SSH tunnel and the local machine, providing a functional reversal of local forwarding, and is useful for situations where, e.g., the remote host has limited connectivity due to firewalling. It is enabled with the {{Ic|-R}} switch and a forwarding specification in the form of {{Ic|&amp;lt;tunnel port&amp;gt;:&amp;lt;destination address&amp;gt;:&amp;lt;destination port&amp;gt;}}.&lt;br /&gt;
&lt;br /&gt;
Thus:&lt;br /&gt;
&lt;br /&gt;
 $ ssh -R 3000:irc.freenode.net:6667 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
will bring up a shell on 192.168.0.200, and connections from 192.168.0.200 to itself on port 3000 (remotely speaking, localhost:3000) will be sent over the tunnel to the local machine and then on to irc.freenode.net on port 6667, thus, in this example, allowing the use of IRC programs on the remote host to be used, even if port 6667 would normally be blocked to it.&lt;br /&gt;
&lt;br /&gt;
Both local and remote forwarding can be used to provide a secure &amp;quot;gateway,&amp;quot; allowing other computers to take advantage of an SSH tunnel, without actually running SSH or the SSH daemon by providing a bind-address for the start of the tunnel as part of the forwarding specification, e.g. {{Ic|&amp;lt;tunnel address&amp;gt;:&amp;lt;tunnel port&amp;gt;:&amp;lt;destination address&amp;gt;:&amp;lt;destination port&amp;gt;}}. The {{Ic|&amp;lt;tunnel address&amp;gt;}} can be any address on the machine at the start of the tunnel, {{Ic|localhost}}, {{Ic|*}} (or blank), which, respectively, allow connections via the given address, via the loopback interface, or via any interface. By default, forwarding is limited to connections from the machine at the &amp;quot;beginning&amp;quot; of the tunnel, i.e. the {{Ic|&amp;lt;tunnel address&amp;gt;}} is set to {{Ic|localhost}}. Local forwarding requires no additional configuration, however remote forwarding is limited by the remote server&#039;s SSH daemon configuration. See the {{Ic|GatewayPorts}} option in {{Ic|sshd_config(5)}} for more information.&lt;br /&gt;
&lt;br /&gt;
--[[利用者:Aosho235|Aosho235]] ([[利用者・トーク:Aosho235|トーク]]) 2015年12月27日 (日) 12:27 (JST)=== マルチプレクス ===&lt;br /&gt;
&lt;br /&gt;
SSH デーモンは通常はポート 22 番をリッスンします。しかし、公共のインターネット・ホットスポットでは HTTP/HTTPS のポート（80 と 443）以外のトラフィックをブロックしていることが一般的です。そのため SSH 接続がブロックされてしまいます。すぐできる解決策として、許可されているポートで sshd を起動するという方法があります：&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ssh/sshd_config|&lt;br /&gt;
Port 22&lt;br /&gt;
Port 443&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
しかしポート 443 番は HTTPS を提供する Web サーバにすでに使われていることが多いです。その場合は {{Pkg|sslh}} のようなマルチプレクサを使います。これは指定ポートをリッスンし、そこに来るパケットを複数のサービスに賢く振り分けることができます。&lt;br /&gt;
&lt;br /&gt;
=== SSH の高速化 ===&lt;br /&gt;
&lt;br /&gt;
同一のホストのセッションは全て単一の接続を使うようにすることで、後のログインを劇的に高速化することができます。{{ic|/etc/ssh/ssh_config}} や {{ic|$HOME/.ssh/config}} の適当なホストの下に以下の行を追加してください:&lt;br /&gt;
 Host examplehost.com&lt;br /&gt;
   ControlMaster auto&lt;br /&gt;
   ControlPersist yes&lt;br /&gt;
   ControlPath ~/.ssh/socket-%r@%h:%p&lt;br /&gt;
&lt;br /&gt;
上記のオプションの詳しい説明は {{ic|ssh_config(5)}} マニュアルページを見て下さい。&lt;br /&gt;
&lt;br /&gt;
速度を向上させる別のオプションとして圧縮を有効化する {{ic|-C}} フラグがあります。{{ic|/etc/ssh/ssh_config}} の適切なホストの下に次の行を追加することで永続的に設定することができます:&lt;br /&gt;
 Compression yes&lt;br /&gt;
{{Warning|{{ic|man ssh}} states that &amp;quot;&#039;&#039;Compression is desirable on modem lines and other slow connections, but will only slow down things on fast networks&#039;&#039;&amp;quot;. This tip might be counterproductive depending on your network configuration.}}&lt;br /&gt;
&lt;br /&gt;
Login time can be shortened by using the {{ic|-4}} flag, which bypasses IPv6 lookup. This can be made permanent by adding this line under the proper host in {{ic|/etc/ssh/ssh_config}}:&lt;br /&gt;
 AddressFamily inet&lt;br /&gt;
&lt;br /&gt;
Changing the ciphers used by SSH to less cpu-demanding ones can improve speed. In this respect, the best choices are arcfour and blowfish-cbc.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please do not do this unless you know what you are doing; arcfour has a number of known weaknesses.}}&lt;br /&gt;
&lt;br /&gt;
To use alternative ciphers, run SSH with the {{ic|-c}} flag:&lt;br /&gt;
 $ ssh -c arcfour,blowfish-cbc user@server-address&lt;br /&gt;
&lt;br /&gt;
To use them permanently, add this line under the proper host in {{ic|/etc/ssh/ssh_config}}:&lt;br /&gt;
 Ciphers arcfour,blowfish-cbc&lt;br /&gt;
&lt;br /&gt;
=== SSHFS でリモートファイルシステムをマウントする ===&lt;br /&gt;
sshfs を使って (SSH でアクセスした) リモートのファイルシステムをローカルフォルダにマウントする方法は [[Sshfs]] の記事を参照してください。マウントしたファイルは様々なツールであらゆる操作することができます (コピー、名前の変更、vim で編集など)。基本的に shfs よりも sshfs を使用することを推奨します。sshfs は shfs の新しいバージョンであり、元の shfs は2004年から更新されていません。&lt;br /&gt;
&lt;br /&gt;
=== Keep alive ===&lt;br /&gt;
一定時間操作がないと ssh セッションは自動的にログアウトします。接続を維持するには以下をクライアントの {{ic|~/.ssh/config}} か {{ic|/etc/ssh/ssh_config}} に追加してください:&lt;br /&gt;
&lt;br /&gt;
 ServerAliveInterval 120&lt;br /&gt;
&lt;br /&gt;
これで120秒ごとに &amp;quot;keep alive&amp;quot; シグナルがサーバーに送信されます。&lt;br /&gt;
&lt;br /&gt;
反対に、外部からの接続を維持するには、次をサーバーの {{ic|/etc/ssh/sshd_config}} に設定します (数字は0より大きく):&lt;br /&gt;
 &lt;br /&gt;
 ClientAliveInterval 120&lt;br /&gt;
&lt;br /&gt;
=== ssh の設定に接続データを保存する ===&lt;br /&gt;
Whenever you want to connect to a ssh server, you usually have to type at least its address and the username. To save that typing work for servers you regularly connect to, you can use the personal {{ic|~/.ssh/config}} or the global {{ic|/etc/ssh/ssh_config}} files as shown in the following example:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.ssh/config|&lt;br /&gt;
Host myserver&lt;br /&gt;
    HostName 123.123.123.123&lt;br /&gt;
    Port 12345&lt;br /&gt;
    User bob&lt;br /&gt;
    IdentityFile ~/.ssh/some_key_file&lt;br /&gt;
Host other_server&lt;br /&gt;
    HostName test.something.org&lt;br /&gt;
    User alice&lt;br /&gt;
    CheckHostIP no&lt;br /&gt;
    Cipher blowfish&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Now you can simply connect to the server by using the name you specified:&lt;br /&gt;
&lt;br /&gt;
 $ ssh myserver&lt;br /&gt;
&lt;br /&gt;
To see a complete list of the possible options, check out ssh_config&#039;s manpage on your system or the [http://www.openbsd.org/cgi-bin/man.cgi?query=ssh_config ssh_config documentation] on the official website.&lt;br /&gt;
&lt;br /&gt;
=== systemd で SSH トンネルを自動的に再起動 ===&lt;br /&gt;
&lt;br /&gt;
[[systemd]] を使ってブート時/ログイン時に SSH 接続を自動的に開始して、接続が失敗した時に再起動させることができます。SSH トンネルの管理に役立つツールとなります。&lt;br /&gt;
&lt;br /&gt;
以下のサービスでは、[[#ssh の設定に接続データを保存する|ssh の設定]]に保存された接続設定を使って、ログイン時に SSH トンネルを開始します。接続が何らかの理由で閉じられた場合、10秒待機してから再起動します:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/systemd/user/tunnel.service|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=SSH tunnel to myserver&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
Restart=always&lt;br /&gt;
RestartSec=10&lt;br /&gt;
ExecStart=/usr/bin/ssh -F %h/.ssh/config -N myserver&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
上記のユーザーサービスを[[有効化]]して[[起動]]してください。トンネルがタイムアウトするのを防ぐ方法は [[#Keep alive]] を見て下さい。起動時にトンネルを開始したい場合、ユニットをシステムサービスとして書きなおして下さい。&lt;br /&gt;
&lt;br /&gt;
=== Autossh - SSH セッションとトンネルの自動再起動 ===&lt;br /&gt;
ネットワークの状態が悪かったりしてクライアントが切断してしまい、セッションやトンネルの接続を維持できない場合、[http://www.harding.motd.ca/autossh/ Autossh] を使って自動的にセッションとトンネルを再起動できます。Autossh は[[公式リポジトリ]]からインストールできます。&lt;br /&gt;
&lt;br /&gt;
使用例:&lt;br /&gt;
 $ autossh -M 0 -o &amp;quot;ServerAliveInterval 45&amp;quot; -o &amp;quot;ServerAliveCountMax 2&amp;quot; username@example.com&lt;br /&gt;
[[sshfs]] を組み合わせる:&lt;br /&gt;
 $ sshfs -o reconnect,compression=yes,transform_symlinks,ServerAliveInterval=45,ServerAliveCountMax=2,ssh_command=&#039;autossh -M 0&#039; username@example.com: /mnt/example &lt;br /&gt;
[[プロキシ設定]]で設定した SOCKS プロクシを使って接続:&lt;br /&gt;
 $ autossh -M 0 -o &amp;quot;ServerAliveInterval 45&amp;quot; -o &amp;quot;ServerAliveCountMax 2&amp;quot; -NCD 8080 username@example.com &lt;br /&gt;
With the {{ic|-f}} option autossh can be made to run as a background process. Running it this way however means the passprase cannot be entered interactively.&lt;br /&gt;
&lt;br /&gt;
The session will end once you type {{ic|exit}} in the session, or the autossh process receives a SIGTERM, SIGINT of SIGKILL signal.&lt;br /&gt;
&lt;br /&gt;
==== systemd を使ってブート時に自動的に Autossh を起動する ====&lt;br /&gt;
If you want to automatically start autossh, it is now easy to get systemd to manage this for you. For example, you could create a systemd unit file like this:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=AutoSSH service for port 2222&lt;br /&gt;
 After=network.target&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 Environment=&amp;quot;AUTOSSH_GATETIME=0&amp;quot;&lt;br /&gt;
 ExecStart=/usr/bin/autossh -M 0 -NL 2222:localhost:2222 -o TCPKeepAlive=yes foo@bar.com&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
Here {{ic|1=AUTOSSH_GATETIME=0}} is an environment variable specifying how long ssh must be up before autossh considers it a successful connection, setting it to 0 autossh also ignores the first run failure of ssh. This may be useful when running autossh at boot. Other environment variables are available on the manpage. Of course, you can make this unit more complex if necessary (see the systemd documentation for details), and obviously you can use your own options for autossh, but note that the {{ic|-f}} implying {{ic|1=AUTOSSH_GATETIME=0}} does not work with systemd.&lt;br /&gt;
&lt;br /&gt;
Then place this in, for example, /etc/systemd/system/autossh.service. Afterwards, you can then enable your autossh tunnels with, e.g.:&lt;br /&gt;
&lt;br /&gt;
 $ systemctl start autossh&lt;br /&gt;
(or whatever you called the service file)&lt;br /&gt;
&lt;br /&gt;
If this works OK for you, you can make this permanent by running&lt;br /&gt;
&lt;br /&gt;
 $ systemctl enable autossh&lt;br /&gt;
&lt;br /&gt;
That way autossh will start automatically at boot.&lt;br /&gt;
&lt;br /&gt;
It is also easy to maintain several autossh processes, to keep several tunnels alive. Just create multiple .service files with different names.&lt;br /&gt;
&lt;br /&gt;
== ソケットアクティベーションで SSH ポート番号を変更する (sshd.socket) ==&lt;br /&gt;
&lt;br /&gt;
次の内容で {{ic|/etc/systemd/system/sshd.socket.d/port.conf}} ファイルを作成:&lt;br /&gt;
&lt;br /&gt;
 [Socket]&lt;br /&gt;
 # Disable default port&lt;br /&gt;
 ListenStream=&lt;br /&gt;
 # Set new port&lt;br /&gt;
 ListenStream=12345&lt;br /&gt;
&lt;br /&gt;
リロードすれば systemd は自動的に新しいポートを開きます:&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
=== チェックリスト ===&lt;br /&gt;
&lt;br /&gt;
以下は最初に行うべきトラブルシューティングのチェックリストです。何かする前に以下の問題をチェックすることを推奨します。&lt;br /&gt;
&lt;br /&gt;
==== SSH の設定を確認 ====&lt;br /&gt;
&lt;br /&gt;
1. クライアントとサーバーの {{ic|~/.ssh}} フォルダにユーザーがアクセスできるようにする:&lt;br /&gt;
&lt;br /&gt;
 $ chmod 700 /home/USER/.ssh&lt;br /&gt;
 $ chmod 600 /home/USER/.ssh/*&lt;br /&gt;
&lt;br /&gt;
2. ライアントとサーバーの {{ic|~/.ssh}} フォルダにある全てのファイルの所有者がユーザーになっていることを確認:&lt;br /&gt;
&lt;br /&gt;
 $ chown -R USER: /home/USER/.ssh&lt;br /&gt;
&lt;br /&gt;
3. クライアントの公開鍵を確認。サーバーの {{ic|authorized_keys}} やユーザーの {{ic|~/.ssh/}} ファイルにある {{ic|id_rsa.pub}} ファイルなど。&lt;br /&gt;
&lt;br /&gt;
4. {{ic|/etc/ssh/sshd_config}} の {{ic|AllowUsers or AllowGroups}} オプションで SSH のアクセスが制限されていないか確認。&lt;br /&gt;
&lt;br /&gt;
5. ユーザーにパスワードが設定されていることを確認。新しいユーザーを追加したあとパスワードが設定されていなかったり一度もログインされてなかったりすることがあります。&lt;br /&gt;
&lt;br /&gt;
==== SSH を再起動 + ユーザーの再ログイン ====&lt;br /&gt;
&lt;br /&gt;
6. {{ic|sshd}} (サーバー) を[[再起動]]。&lt;br /&gt;
&lt;br /&gt;
7. クライアントとホスト、両方でユーザー (シェル) の再ログイン。&lt;br /&gt;
&lt;br /&gt;
==== 期限切れのキーを削除 (任意) ====&lt;br /&gt;
&lt;br /&gt;
8. Delete old/invalid key rows in server&#039;s {{ic|~/.ssh/authorized_keys}} file.&lt;br /&gt;
&lt;br /&gt;
9. Delete old/invalid private and public keys within the clients {{ic|~/.ssh}} folder.&lt;br /&gt;
&lt;br /&gt;
==== 推奨事項 ====&lt;br /&gt;
&lt;br /&gt;
10. Keep as few keys as possible in user&#039;s {{ic|~/.ssh/authorized_keys}} file on the server.&lt;br /&gt;
&lt;br /&gt;
11. Secure server&#039;s {{ic|/home/USER/.ssh/authorized_keys}} file against manipulation:&lt;br /&gt;
&lt;br /&gt;
 $ chmod 400 /home/USER/.ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
=== 電源オフ/再起動した後も SSH 接続が残ってしまう ===&lt;br /&gt;
systemd が sshd の前に network を停止してしまうと電源を切った後も SSH 接続が繋がったままになります。この問題を修正するには、{{ic|After}} ステートメントを修正してください:&lt;br /&gt;
{{hc|/usr/lib/systemd/system/systemd-user-sessions.service|2=&lt;br /&gt;
#After=remote-fs.target&lt;br /&gt;
After=network.target}}&lt;br /&gt;
&lt;br /&gt;
=== 接続が拒否されるまたはタイムアウトする ===&lt;br /&gt;
&lt;br /&gt;
==== ルーターがポートフォワーディングをしていないか？ ====&lt;br /&gt;
&lt;br /&gt;
SKIP THIS STEP IF YOU ARE NOT BEHIND A NAT MODEM/ROUTER (eg, a VPS or otherwise publicly addressed host). Most home and small businesses will have a NAT modem/router.&lt;br /&gt;
&lt;br /&gt;
The first thing is to make sure that your router knows to forward any incoming ssh connection to your machine. Your external IP is given to you by your ISP, and it is associated with any requests coming out of your router. So your router needs to know that any incoming ssh connection to your external IP needs to be forwarded to your machine running sshd.&lt;br /&gt;
&lt;br /&gt;
Find your internal network address.&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
Find your interface device and look for the inet field. Then access your router&#039;s configuration web interface, using your router&#039;s IP (find this on the web). Tell your router to forward it to your inet IP. Go to [http://portforward.com/] for more instructions on how to do so for your particular router.&lt;br /&gt;
&lt;br /&gt;
==== SSH が動作しているか？ ====&lt;br /&gt;
 $ ss -tnlp&lt;br /&gt;
&lt;br /&gt;
上記のコマンドで SSH ポートが開いていると表示されない場合、SSH は動作していません。{{ic|/var/log/messages}} にエラーがないか確認してください。&lt;br /&gt;
&lt;br /&gt;
==== 接続をブロックするようなファイアウォールのルールが存在しないか？ ====&lt;br /&gt;
&lt;br /&gt;
[[iptables]] によってポート {{ic|22}} の接続がブロックされている可能性があります。次のコマンドで確認してください:&lt;br /&gt;
{{bc|# iptables -nvL}}&lt;br /&gt;
{{ic|INPUT}} チェインのパケットを拒否するようなルールがないか見て下さい。そして、必要であれば、次のようなコマンドでポートのブロックを解除します:&lt;br /&gt;
{{bc|&lt;br /&gt;
# iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT&lt;br /&gt;
}}&lt;br /&gt;
ファイアウォールの設定に関する詳細は[[ファイアウォール]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
==== Is the traffic even getting to your computer? ====&lt;br /&gt;
Start a traffic dump on the computer you&#039;re having problems with:&lt;br /&gt;
&lt;br /&gt;
 # tcpdump -lnn -i any port ssh and tcp-syn&lt;br /&gt;
&lt;br /&gt;
This should show some basic information, then wait for any matching traffic to happen before displaying it. Try your connection now. If you do not see any output when you attempt to connect, then something outside of your computer is blocking the traffic (e. g., hardware firewall, NAT router etc.).&lt;br /&gt;
&lt;br /&gt;
==== ISP またはサードパーティによってデフォルトのポートがブロックされてないか？ ====&lt;br /&gt;
{{Note|このステップは次のことを確認した後で実行してください。ファイアーウォールを何も起動していないこと。DMZ へのルータを正しく設定している、またはコンピュータへポートを転送していること。それでもまだ動かない場合。ここで診断のステップと解決法が見つかるでしょう。}}&lt;br /&gt;
&lt;br /&gt;
ときどき ISP（インターネット・サービス・プロバイダ）が SSH のデフォルトポート（22番）をブロックしている場合があります。この場合はあなたが何をしても（ポートを開ける、スタックを強化する、フラッドアタックを防御する、など）無意味になります。これを確認するためには、全てのインターフェイス（0.0.0.0）をリッスンする sshd を立ち上げ、リモートから接続してみます。&lt;br /&gt;
&lt;br /&gt;
このようなエラーメッセージが出る場合：&lt;br /&gt;
 ssh: connect to host www.inet.hr port 22: Connection refused&lt;br /&gt;
&lt;br /&gt;
これはそのポートが ISP にブロックされていないが、サーバのそのポートで SSH が起動していないことを意味します&lt;br /&gt;
（[[wikipedia:Security_through_obscurity|security through obscurity]] を参照）。&lt;br /&gt;
&lt;br /&gt;
しかし、次のようなエラーメッセージが出る場合：&lt;br /&gt;
 ssh: connect to host 111.222.333.444 port 22: Operation timed out &lt;br /&gt;
&lt;br /&gt;
これは何かがポート 22 での TCP トラフィックを拒否（reject）していることを意味します。そのポートはあなたのサーバ上のファイアーウォールか第三者（ISP など）のどちらかによってステルスされています。自分のサーバでファイアーウォールが起動していないことが確かなら、またルータやスイッチの中でグレムリンが育っていないことが確かなら、ISP がトラフィックをブロックしています。&lt;br /&gt;
&lt;br /&gt;
ダブルチェックのために、サーバ上で Wireshark を起動を起動してポート 22 でのトラフィックをリッスンしてみましょう。Wireshark はレイヤ 2 のパケット・スニファリング・ユーティリティであり、TCP/UDP はレイヤ 3 以上なので（[[wikipedia:Internet protocol suite|IP Network stack]]を参照）、もしリモートから接続するときに何も受け取っていなければ、十中八九、第三者がブロックしています。&lt;br /&gt;
&lt;br /&gt;
===== 問題診断 =====&lt;br /&gt;
{{Pkg|tcpdump}} または {{Pkg|wireshark-cli}} パッケージの Wireshark を[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
tcpdump の場合:&lt;br /&gt;
 # tcpdump -ni &#039;&#039;interface&#039;&#039; &amp;quot;port 22&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wireshark の場合:&lt;br /&gt;
 $ tshark -f &amp;quot;tcp port 22&amp;quot; -i &#039;&#039;interface&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{ic|&#039;&#039;interface&#039;&#039;}} は WAN 接続に使っているネットワークインターフェイスに置き換えてください (確認したいときは {{ic|ip a}} を実行)。リモートで接続を試行してもパケットが全く受け取れない場合、ISP によってポート 22 のトラフィックがブロックされている可能性があります。&lt;br /&gt;
&lt;br /&gt;
===== 解決方法 =====&lt;br /&gt;
解決方法は、単に ISP がブロックしていない他のポートを使うことです。{{ic|/etc/ssh/sshd_config}} を編集して他のポートを使うようにしましょう。例えば次を追加します：&lt;br /&gt;
&lt;br /&gt;
 Port 22&lt;br /&gt;
 Port 1234&lt;br /&gt;
&lt;br /&gt;
そしてこのファイル中の他の Port 設定をコメントアウトします。「Port 22」をコメントにして「Port 1234」を追加するだけでは、sshd がポート 1234 しかリッスンしなくなるので、この問題は解決しません。この 2 行どちらも使用し、sshd が両方のポートをリッスンするようにします。&lt;br /&gt;
&lt;br /&gt;
あとは {{ic|systemctl restart sshd.service}} で sshd を起動するだけです。そして ssh クライアントでも同じポートに変更します。There are numerous solutions to that problem, but let us cover two of them here.&lt;br /&gt;
&lt;br /&gt;
==== Read from socket failed: connection reset by peer ====&lt;br /&gt;
最近の openssh のバージョンでは、楕円曲線暗号関連のバグのせいで、上記のエラーメッセージで接続が失敗することがあります。その場合 {{ic|~/.ssh/config}} に次の行を追加してください:&lt;br /&gt;
&lt;br /&gt;
 HostKeyAlgorithms ssh-rsa-cert-v01@openssh.com,ssh-dss-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-dss-cert-v00@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-rsa,ssh-dss&lt;br /&gt;
&lt;br /&gt;
openssh 5.9 では、上記の修正方法は働きません。代わりに、{{ic|~/.ssh/config}} に以下の行を記述してください:&lt;br /&gt;
&lt;br /&gt;
 Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc &lt;br /&gt;
 MACs hmac-md5,hmac-sha1,hmac-ripemd160&lt;br /&gt;
&lt;br /&gt;
openssh バグフォーラムの [http://www.gossamer-threads.com/lists/openssh/dev/51339 議論] も参照。&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;[your shell]: No such file or directory&amp;quot; / ssh_exchange_identification problem ===&lt;br /&gt;
One possible cause for this is the need of certain SSH clients to find an absolute path (one returned by {{Ic|whereis -b [your shell]}}, for instance) in {{Ic|$SHELL}}, even if the shell&#039;s binary is located in one of the {{Ic|$PATH}} entries.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Terminal unknown&amp;quot; や &amp;quot;Error opening terminal&amp;quot; エラーメッセージ===&lt;br /&gt;
ssh でログイン時に &amp;quot;Terminal unknown&amp;quot; のようなエラーが表示されることがあります。nano などの ncurses アプリケーションを実行すると &amp;quot;Error opening terminal&amp;quot; というメッセージが表示されます。この問題を解決する方法は2つあります。{{ic|$TERM}} 変数を使って簡単に修正する方法と terminfo ファイルを使って根本的に解決する方法です。&lt;br /&gt;
&lt;br /&gt;
====$TERM 変数を設定する解決策====&lt;br /&gt;
リモートサーバーに接続した後に以下のコマンドを使って {{ic|$TERM}} 変数を &amp;quot;xterm&amp;quot; に設定してください:&lt;br /&gt;
&lt;br /&gt;
 $ TERM&amp;amp;#61;xterm&lt;br /&gt;
&lt;br /&gt;
この方法はあくまで次善策であり、たまにしか接続しない ssh サーバーで使うようにしてください。良くない副作用があるからです。また、接続するたびにコマンドを実行する必要があります。もしくは {{ic|~.bashrc}} で設定してください。&lt;br /&gt;
&lt;br /&gt;
====terminfo ファイルを使う解決策====&lt;br /&gt;
A profound solution is transferring the terminfo file of the terminal on your client computer to the ssh server. In this example we cover how to setup the terminfo file for the &amp;quot;rxvt-unicode-256color&amp;quot; terminal.&lt;br /&gt;
Create the directory containing the terminfo files on the ssh server, while you are logged in to the server issue this command:&lt;br /&gt;
&lt;br /&gt;
 $ mkdir -p ~/.terminfo/r/&lt;br /&gt;
&lt;br /&gt;
Now copy the terminfo file of your terminal to the new directory. Replace {{ic|rxvt-unicode-256color}} with your client&#039;s terminal in the following command and {{ic|ssh-server}} with the relevant user and server adress.&lt;br /&gt;
&lt;br /&gt;
 $ scp /usr/share/terminfo/r/&#039;&#039;rxvt-unicode-256color&#039;&#039; ssh-server:~/.terminfo/r/&lt;br /&gt;
&lt;br /&gt;
After logging in and out from the ssh server the problem should be fixed.&lt;br /&gt;
&lt;br /&gt;
=== Connection closed by x.x.x.x [preauth] ===&lt;br /&gt;
sshd のログでこのエラーが確認できる場合、HostKey が正しく設定されているか確認してください:&lt;br /&gt;
 HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
&lt;br /&gt;
=== OpenSSH 7.0 によって id_dsa が拒否される ===&lt;br /&gt;
&lt;br /&gt;
OpenSSH 7.0 では ssh-dss が無効になっており、http://www.openssh.com/legacy.html には id_dsa 鍵が使われている場合にサーバーにアクセスする方法が書かれていません:&lt;br /&gt;
&lt;br /&gt;
 PubkeyAcceptedKeyTypes +ssh-dss&lt;br /&gt;
&lt;br /&gt;
While this can be added a per host basis or with -o, to make sure &amp;quot;ProxyCommand ssh&amp;quot; still works, add it to ssh_config.&lt;br /&gt;
&lt;br /&gt;
=== no matching key exchange method found by OpenSSH 7.0 ===&lt;br /&gt;
&lt;br /&gt;
OpenSSH 7.0 also deprecated the key algorithm diffie-hellman-group1-sha1, as we could see in http://www.openssh.com/legacy.html.&lt;br /&gt;
&lt;br /&gt;
If the client and server are unable to agree on a mutual set of parameters then the connection will fail. OpenSSH (7.0 and greater) will produce an error message like this:&lt;br /&gt;
&lt;br /&gt;
  Unable to negotiate with 127.0.0.1: no matching key exchange method found.&lt;br /&gt;
  Their offer: diffie-hellman-group1-sha1&lt;br /&gt;
&lt;br /&gt;
In this case, the client and server were unable to agree on the key exchange algorithm. The server offered only a single method diffie-hellman-group1-sha1. OpenSSH supports this method, but does not enable it by default because is weak and within theoretical range of the so-called Logjam attack.&lt;br /&gt;
&lt;br /&gt;
The best resolution for these failures is to upgrade the software at the other end. OpenSSH only disables algorithms that we actively recommend against using because they are known to be weak. In some cases, this might not be immediately possible so you may need to temporarily re-enable the weak algorithms to retain access.&lt;br /&gt;
&lt;br /&gt;
For the case of the above error message, OpenSSH can be configured to enable the diffie-hellman-group1-sha1 key exchange algorithm (or any other that is disabled by default) using the KexAlgorithm option - either on the command-line:&lt;br /&gt;
&lt;br /&gt;
  ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 user@127.0.0.1&lt;br /&gt;
&lt;br /&gt;
or in the ~/.ssh/config file:&lt;br /&gt;
&lt;br /&gt;
  Host somehost.example.org&lt;br /&gt;
  	KexAlgorithms +diffie-hellman-group1-sha1&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
*[http://www.la-samhna.de/library/brutessh.html Defending against brute force ssh attacks]&lt;br /&gt;
*IBM developerWorks の [http://www.ibm.com/developerworks/jp/linux/library/l-keyc/ OpenSSH キー （鍵） の管理: 第 1 回] と [http://www.ibm.com/developerworks/jp/linux/library/l-keyc2/ 第 2 回]&lt;br /&gt;
* [https://stribika.github.io/2015/01/04/secure-secure-shell.html Secure Secure Shell]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=OpenSSH&amp;diff=4532</id>
		<title>OpenSSH</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=OpenSSH&amp;diff=4532"/>
		<updated>2015-12-27T03:16:03Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: 意味がわからない文を原文に戻した&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Secure Shell]]&lt;br /&gt;
[[ar:Secure Shell]]&lt;br /&gt;
[[de:SSH]]&lt;br /&gt;
[[en:Secure Shell]]&lt;br /&gt;
[[es:Secure Shell]]&lt;br /&gt;
[[fr:ssh]]&lt;br /&gt;
[[it:Secure Shell]]&lt;br /&gt;
[[ko:Secure Shell]]&lt;br /&gt;
[[pl:Secure Shell]]&lt;br /&gt;
[[pt:Secure Shell]]&lt;br /&gt;
[[ru:Secure Shell]]&lt;br /&gt;
[[sr:Secure Shell]]&lt;br /&gt;
[[zh-CN:Secure Shell]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|SSH 鍵}}&lt;br /&gt;
{{Related|Pam abl}}&lt;br /&gt;
{{Related|fail2ban}}&lt;br /&gt;
{{Related|sshguard}}&lt;br /&gt;
{{Related|Sshfs}}&lt;br /&gt;
{{Related|syslog-ng}}&lt;br /&gt;
{{Related|SFTP chroot}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
Secure Shell (SSH) は暗号技術を利用して、安全にリモートコンピュータと通信するためのネットワークプロトコルです。暗号によってデータの機密性と完全性が保証されます。SSH は公開鍵暗号を使ってリモートコンピュータを認証し、リモートコンピュータは必要に応じてユーザーを認証します。&lt;br /&gt;
&lt;br /&gt;
基本的に SSH はリモートマシンにログインしてコマンドを実行するために使われますが、トンネリングや TCP ポートや X11 接続の任意のフォワーディングをサポートしており、SFTP や SCP プロトコルを使うことでファイル転送をすることも可能です。&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、SSH サーバーは標準の TCP 22番ポートを使います。通常は SSH クライアントプロトコルを使って &#039;&#039;sshd&#039;&#039; デーモンの接続を確立してリモート接続を承認します。Mac OS X, GNU/Linux, Solaris, OpenVMS など近代的なオペレーティングシステムのほとんどでサーバーとクライアントの両方が備わってします。複雑なもの・完全なものまで様々なレベルのバージョンがプロプライエタリ・フリーウェア・オープンソースを問わずに存在します。&lt;br /&gt;
&lt;br /&gt;
(ソース: [[Wikipedia:ja:Secure Shell]])&lt;br /&gt;
&lt;br /&gt;
== OpenSSH ==&lt;br /&gt;
OpenSSH (OpenBSD Secure Shell) は ssh プロトコルを使ってコンピューターネットワークを介して暗号化通信セッションを提供するコンピュータープログラムのセットです。SSH Communications Security によるプロプライエタリの Secure Shell ソフトウェアスイートに代わるオープンのプログラムとして作成されました。OpenSSH は Theo de Raadt に率いられている OpenBSD プロジェクトの一環として開発されています。&lt;br /&gt;
&lt;br /&gt;
同じような名前の OpenSSL と OpenSSH が混同されることがときどきありますが、プロジェクトの目的・開発チームは異なります。&lt;br /&gt;
&lt;br /&gt;
=== OpenSSH のインストール ===&lt;br /&gt;
[[公式リポジトリ]]から {{Pkg|openssh}} を[[pacman|インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
=== SSH の設定 ===&lt;br /&gt;
====クライアント====&lt;br /&gt;
SSH クライアントの設定ファイルは {{ic|/etc/ssh/ssh_config}} もしくは {{ic|~/.ssh/config}} です。&lt;br /&gt;
&lt;br /&gt;
{{ic|Protocol 2}} を明示的に設定する必要はありません。デフォルトの設定ファイルではコメントアウトされています。つまり明示的に有効にされない限り {{ic|Protocol 1}} は使われません。 (ソース: http://www.openssh.org/txt/release-5.4)&lt;br /&gt;
&lt;br /&gt;
====デーモン====&lt;br /&gt;
SSH デーモンの設定ファイルは {{ic|/etc/ssh/ssh&#039;&#039;&#039;d&#039;&#039;&#039;_config}} です。&lt;br /&gt;
&lt;br /&gt;
特定のユーザーにだけアクセスを許可するには次の行を追加してください:&lt;br /&gt;
 AllowUsers    user1 user2&lt;br /&gt;
&lt;br /&gt;
特定のグループにだけアクセスを許可するには:&lt;br /&gt;
 AllowGroups   group1 group2&lt;br /&gt;
&lt;br /&gt;
SSH による root ログインを無効にするには、PermitRootLogin 行を次のように変更してください:&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
&lt;br /&gt;
{{Note|1=バージョン 7.0p1 からは {{ic|PermitRootLogin prohibit-password}} がデフォルトになっています。{{ic|man sshd_config}} を参照。}}&lt;br /&gt;
&lt;br /&gt;
ウェルカムメッセージを追加するには {{ic|/etc/issue}} ファイルを編集して Banner 行を次のように変更してください:&lt;br /&gt;
 Banner /etc/issue&lt;br /&gt;
&lt;br /&gt;
ホスト鍵は sshd の systemd サービスによって自動的に生成されます。sshd に特定の鍵を使用させたい場合、手動で設定します:&lt;br /&gt;
 HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
&lt;br /&gt;
サーバーに WAN からアクセスできる場合、デフォルトのポートである 22 から別のランダムなポートに変更することが推奨されています:&lt;br /&gt;
 Port 39901&lt;br /&gt;
&lt;br /&gt;
{{Note|OpenSSH では設定ファイルに &#039;&#039;Port x&#039;&#039; 行を複数記述することで複数のポートを使うことができます。}}&lt;br /&gt;
&lt;br /&gt;
パスワードによるログインを使わないようにすればセキュリティは大幅に向上します。詳しくは [[SSH 鍵#パスワードログインの無効化]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== sshd デーモンの管理 ===&lt;br /&gt;
次のコマンドで sshd デーモンを起動することができます:&lt;br /&gt;
 # systemctl start sshd.service&lt;br /&gt;
&lt;br /&gt;
次のコマンドで sshd デーモンを起動時に有効にすることができます:&lt;br /&gt;
 # systemctl enable sshd.service&lt;br /&gt;
&lt;br /&gt;
詳しくは [[systemd#ユニットを使う]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
{{Warning|Systemd は非同期にプロセスを実行します。SSH デーモンを特定の IP アドレス {{ic|ListenAddress 192.168.1.100}} に結びつけている場合、デフォルトの sshd.service ユニットファイルはネットワークインターフェイスが有効にされることに依存していないため、ブート中にロードが失敗する可能性があります。IP アドレスをバインドする時は、カスタムした sshd.service ユニットファイルに {{ic|1=After=network.target}} を追加してください。[[systemd#ユニットファイルの編集]] を参照。}}&lt;br /&gt;
&lt;br /&gt;
また SSH デーモンソケットを有効にすることで初めて接続があったときにデーモンが起動するようにすることもできます:&lt;br /&gt;
 # systemctl start sshd.socket&lt;br /&gt;
 # systemctl enable sshd.socket&lt;br /&gt;
デフォルトの22番以外のポートを使う場合、ユニットファイルを[[systemd#ユニットファイルの編集|編集]]する必要があります:&lt;br /&gt;
{{hc|# systemctl edit sshd.socket|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Socket]&lt;br /&gt;
ListenStream=&lt;br /&gt;
ListenStream=12345&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|sshd.socket}} を使用すると {{ic|ListenAddress}} の設定が打ち消されて、どのアドレスからでも接続できるようになってしまいます。{{ic|ListenAddress}} の設定を適用するには、{{ic|ListenStream}} でポートと IP を指定する必要があります (例: {{ic|1=ListenStream=192.168.1.100:22}})。また、{{ic|[Socket]}} の下に {{ic|1=FreeBind=true}} を追加するようにしてください。そうしないと IP アドレスの設定が {{ic|ListenAddress}} の設定と同じように無効になってしまいます: ネットワークが立ち上がっていない場合にソケットの起動が失敗します。}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|ソケットアクティベーションを使う場合、{{ic|sshd.socket}} でもデーモンの標準の {{ic|sshd.service}} でもログの接続試行を監視することはできません。ただし {{ic|# journalctl /usr/bin/sshd}} を実行することで監視できます。}}&lt;br /&gt;
&lt;br /&gt;
=== サーバーに接続する ===&lt;br /&gt;
サーバーに接続するには、次を実行してください:&lt;br /&gt;
 $ ssh -p port user@server-address&lt;br /&gt;
&lt;br /&gt;
=== SSH の保護 ===&lt;br /&gt;
管理業務のために SSH によるリモートログインを許可することは良いことですが、サーバーのセキュリティに脅威を及ぼすことにもなりえます。総当り攻撃の標的になりやすいので、SSH のアクセスは制限して、第三者がサーバーにアクセスできないようにする必要があります。&lt;br /&gt;
* わかりにくいアカウント名やパスワードを使う&lt;br /&gt;
* 信頼できる国からの SSH 接続だけを許可する&lt;br /&gt;
* [[fail2ban]] や [[sshguard]] をつかってブルートフォース攻撃を監視し、総当りを起こっている IP を閉め出す&lt;br /&gt;
&lt;br /&gt;
==== ブルートフォースアタックからの保護 ====&lt;br /&gt;
ブルートフォースは単純な攻撃方法です: ランダムなユーザー名とパスワードの組み合わせをとにかく沢山作ってウェブページや SSH などのサーバーログインプロンプトにログインを絶えず試行します。ブルートフォース攻撃からは [[fail2ban]] や [[sshguard]] などの自動スクリプトを使うことで攻撃者をブロックすることで身を守ることができます。&lt;br /&gt;
&lt;br /&gt;
もしくは、公開鍵認証を使うことでブルートフォース攻撃を出来なくすることもできます。{{ic|sshd_config}} に次の設定を追加:&lt;br /&gt;
&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
&lt;br /&gt;
上の設定を適用する前に、SSH アクセスが必要な全てのアカウントで {{ic|authorized_keys}} ファイルに公開鍵認証の設定をするようにしてください。詳しくは [[SSH 鍵#リモートサーバーに公開鍵をコピー]] を参照。&lt;br /&gt;
&lt;br /&gt;
==== 2段階認証 ====&lt;br /&gt;
&lt;br /&gt;
SSH 鍵のペアによる認証を使用していてパスワードによろうログインを無効化している場合に、2段階認証を使いたいときは [[Google Authenticator]] や [[SSH 鍵#2段階認証と公開鍵]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
==== root ログインを制限する ====&lt;br /&gt;
一般的に、SSH で無制限に root ログインを許可することは推奨されません。セキュリティの向上のために、SSH での root ログインを制限する方法は2つ存在します。&lt;br /&gt;
&lt;br /&gt;
===== root ログインを拒否する =====&lt;br /&gt;
&lt;br /&gt;
Sudo を使うことで、root アカウントの認証を行うことなく、必要に応じて root 権限を選択的に付与することができます。このため SSH による root ログインを拒否して、攻撃者にパスワードに加えて (root でない) ユーザー名も推測させる必要を生じさせることで、ブルートフォース攻撃を困難にすることが可能です。&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/ssh/sshd_config}} の &amp;quot;Authentication&amp;quot; セクションを編集することで SSH からの root ログインを拒否するように設定できます。{{ic|#PermitRootLogin yes}} を {{ic|no}} に変更して行をアンコメントしてください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ssh/sshd_config|&lt;br /&gt;
PermitRootLogin no&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
そして、SSH デーモンを[[再起動]]してください。&lt;br /&gt;
&lt;br /&gt;
これで、SSH を使って root でログインすることはできなくなります。ただし、通常ユーザーでログインしてから [[su]] や [[sudo]] を使ってシステム管理を行うことは依然として可能です。&lt;br /&gt;
&lt;br /&gt;
===== root ログインを限定する =====&lt;br /&gt;
自動的な作業の中にも、リモートによるフルシステムバックアップなど、root 権限を必要とするものがあります。セキュアな方法で root を許可したい場合、SSH による root ログインを無効化する代わりに、特定のコマンドだけ root ログインを許可することができます。{{ic|~root/.ssh/authorized_keys}} を編集して、以下のように特定のキーの前にコマンドを記述します:&lt;br /&gt;
&lt;br /&gt;
 command=&amp;quot;/usr/lib/rsync/rrsync -ro /&amp;quot; ssh-rsa …&lt;br /&gt;
&lt;br /&gt;
This will allow any login with this specific key only to execute the command specified between the quotes.&lt;br /&gt;
&lt;br /&gt;
The increased attack surface created by exposing the root user name at login can be compensated by adding the following to {{ic|sshd_config}}:&lt;br /&gt;
&lt;br /&gt;
 PermitRootLogin forced-commands-only&lt;br /&gt;
&lt;br /&gt;
This setting will not only restrict the commands which root may execute via SSH, but it will also disable the use of passwords, forcing use of public key authentication for the root account.&lt;br /&gt;
&lt;br /&gt;
A slightly less restrictive alternative will allow any command for root, but makes brute force attacks infeasible by enforcing public key authentication. For this option, set:&lt;br /&gt;
&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
&lt;br /&gt;
== 他の SSH クライアントとサーバー ==&lt;br /&gt;
OpenSSH の他にも、多数の SSH [[Wikipedia:Comparison of SSH clients|クライアント]] と[[Wikipedia:Comparison of SSH servers|サーバー]]が存在します。&lt;br /&gt;
&lt;br /&gt;
=== Dropbear ===&lt;br /&gt;
[[Wikipedia:Dropbear (software)|Dropbear]] は SSH-2 クライアント・サーバーです。{{Pkg|dropbear}} は[[公式リポジトリ]]から利用可能です。&lt;br /&gt;
&lt;br /&gt;
コマンドラインの ssh クライアントは dbclient という名前が付けられています。&lt;br /&gt;
&lt;br /&gt;
=== Mosh: Mobile Shell ===&lt;br /&gt;
Mosh の [http://mosh.mit.edu/ ウェブサイト] より:&lt;br /&gt;
&lt;br /&gt;
ローミングが可能で、断続的な接続もサポートしているリモート端末アプリケーションです。ユーザーのキーストロークのローカルエコーと行編集を提供します。Mosh は SSH の代替です。SSH よりも強固でレスポンスが早く、特に Wi-Fi や携帯端末からの接続、長距離通信など通信速度が遅い場合に役に立ちます。&lt;br /&gt;
&lt;br /&gt;
[[公式リポジトリ]]から {{Pkg|mosh}} を[[pacman|インストール]]するか [[Arch User Repository|AUR]] にある最新版 {{AUR|mosh-git}} を使って下さい。&lt;br /&gt;
&lt;br /&gt;
Mosh にはドキュメントに記載されていないコマンドラインオプション {{ic|1=--predict=experimental}} が存在し、よりアグレッシブにローカルのキーストロークのエコーを生成します。キーボード入力が遅延なく確認できるのに興味があるのであればこの prediction モードを使ってみて下さい。&lt;br /&gt;
&lt;br /&gt;
== Tips and tricks ==&lt;br /&gt;
&lt;br /&gt;
=== 暗号化 SOCKS トンネル ===&lt;br /&gt;
This is highly useful for laptop users connected to various unsafe wireless connections. The only thing you need is an SSH server running at a somewhat secure location, like your home or at work. It might be useful to use a dynamic DNS service like [http://www.dyndns.org/ DynDNS] so you do not have to remember your IP-address.&lt;br /&gt;
&lt;br /&gt;
==== 手順 1: 接続の開始 ====&lt;br /&gt;
You only have to execute this single command to start the connection:&lt;br /&gt;
 $ ssh -TND 4711 &#039;&#039;user&#039;&#039;@&#039;&#039;host&#039;&#039;&lt;br /&gt;
where {{Ic|&#039;&#039;user&#039;&#039;}} is your username at the SSH server running at the {{Ic|&#039;&#039;host&#039;&#039;}}. It will ask for your password, and then you are connected! The {{Ic|N}} flag disables the interactive prompt, and the {{Ic|D}} flag specifies the local port on which to listen on (you can choose any port number if you want).  The {{Ic|T}} flag disables pseudo-tty allocation.&lt;br /&gt;
&lt;br /&gt;
It is nice to add the verbose ({{Ic|-v}}) flag, because then you can verify that it is actually connected from that output.&lt;br /&gt;
&lt;br /&gt;
==== 手順 2: ブラウザ (やその他のプログラム) の設定 ====&lt;br /&gt;
The above step is completely useless if you do not configure your web browser (or other programs) to use this newly created socks tunnel. Since the current version of SSH supports both SOCKS4 and SOCKS5, you can use either of them.&lt;br /&gt;
&lt;br /&gt;
* For Firefox: &#039;&#039;Edit &amp;amp;rarr; Preferences &amp;amp;rarr; Advanced &amp;amp;rarr; Network &amp;amp;rarr; Connection &amp;amp;rarr; Setting&#039;&#039;:&lt;br /&gt;
: Check the &#039;&#039;Manual proxy configuration&#039;&#039; radio button, and enter {{ic|localhost}} in the &#039;&#039;SOCKS host&#039;&#039; text field, and then enter your port number in the next text field ({{ic|4711}} in the example above).&lt;br /&gt;
&lt;br /&gt;
Firefox does not automatically make DNS requests through the socks tunnel. This potential privacy concern can be mitigated by the following steps:&lt;br /&gt;
&lt;br /&gt;
# Type about:config into the Firefox location bar.&lt;br /&gt;
# Search for network.proxy.socks_remote_dns&lt;br /&gt;
# Set the value to true.&lt;br /&gt;
# Restart the browser.&lt;br /&gt;
&lt;br /&gt;
* For Chromium: You can set the SOCKS settings as environment variables or as command line options. I recommend to add one of the following functions to your {{ic|.bashrc}}:&lt;br /&gt;
 function secure_chromium {&lt;br /&gt;
     port=4711&lt;br /&gt;
     export SOCKS_SERVER=localhost:$port&lt;br /&gt;
     export SOCKS_VERSION=5&lt;br /&gt;
     chromium &amp;amp;&lt;br /&gt;
     exit&lt;br /&gt;
 }&lt;br /&gt;
OR&lt;br /&gt;
 function secure_chromium {&lt;br /&gt;
     port=4711&lt;br /&gt;
     chromium --proxy-server=&amp;quot;socks://localhost:$port&amp;quot; &amp;amp;&lt;br /&gt;
     exit&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Now open a terminal and just do:&lt;br /&gt;
 $ secure_chromium&lt;br /&gt;
&lt;br /&gt;
Enjoy your secure tunnel!&lt;br /&gt;
&lt;br /&gt;
=== X11 フォワーディング ===&lt;br /&gt;
&lt;br /&gt;
X11 フォワーディングはリモートシステムで X11 プログラムを動作させて、グラフィカルインターフェイスをローカルのクライアントマシンで表示させるメカニズムです。X11 フォワーディングではリモートホストに X11 システムを完全にインストールさせる必要はなく、&#039;&#039;xauth&#039;&#039; をインストールするだけで十分です。&#039;&#039;xauth&#039;&#039; は、、X11 セッションの認証を行うために必要なサーバーとクライアントによって使用される {{ic|Xauthority}} の設定を管理するユーティリティです ([http://xmodulo.com/2012/11/how-to-enable-x11-forwarding-using-ssh.html ソース])。&lt;br /&gt;
&lt;br /&gt;
{{Warning|X11 forwarding has important security implications which should be at least acknowledged by reading relevant sections of {{ic|ssh}}, {{ic|sshd_config}} and {{ic|ssh_config}} manual pages. See also [https://security.stackexchange.com/questions/14815/security-concerns-with-x11-forwarding a short writeup]}}&lt;br /&gt;
&lt;br /&gt;
==== セットアップ ====&lt;br /&gt;
&lt;br /&gt;
リモート側:&lt;br /&gt;
&lt;br /&gt;
*[[公式リポジトリ]]から {{Pkg|xorg-xauth}} と {{Pkg|xorg-xhost}} を[[インストール]]&lt;br /&gt;
*{{ic|/etc/ssh/ssh&#039;&#039;&#039;d&#039;&#039;&#039;_config}} 内:&lt;br /&gt;
**{{ic|AllowTcpForwarding}} と {{ic|X11UseLocalhost}} オプションを &#039;&#039;yes&#039;&#039; に設定し、{{ic|X11DisplayOffset}} を &#039;&#039;10&#039;&#039; に設定 (何も変更を加えてなければこの値がデフォルトになっています、{{ic|man sshd_config}} を参照)&lt;br /&gt;
**{{ic|X11Forwarding}} を &#039;&#039;yes&#039;&#039; に設定&lt;br /&gt;
* [[#sshd デーモンの管理|&#039;&#039;sshd&#039;&#039; デーモン]]を[[Systemd#ユニットを使う|再起動]]&lt;br /&gt;
* リモートシステムでも X サーバーを動作させる必要があります。&lt;br /&gt;
&lt;br /&gt;
クライアント側では、接続するたびにコマンドラインで {{ic|-X}} スイッチを指定して {{ic|ForwardX11}} オプションを有効にするか、[[#クライアント|openSSH クライアントの設定ファイル]]で {{ic|ForwardX11}} を &#039;&#039;yes&#039;&#039; に設定してください。&lt;br /&gt;
&lt;br /&gt;
{{Tip|You can enable the {{ic|ForwardX11Trusted}} option ({{ic|-Y}} switch on the command line) if GUI is drawing badly or you receive errors; this will prevent X11 forwardings from being subjected to the [http://www.x.org/wiki/Development/Documentation/Security/ X11 SECURITY extension] controls. Be sure you have read [[#X11 フォワーディング|the warning]] at the beginning of this section if you do so.}}&lt;br /&gt;
&lt;br /&gt;
==== 使用方法 ====&lt;br /&gt;
&lt;br /&gt;
通常通り[[#サーバーに接続する|リモートマシンにログイン]]します、クライアント側の設定ファイルで &#039;&#039;ForwardX11&#039;&#039; を有効にしていない場合は {{ic|-X}} スイッチを指定します:&lt;br /&gt;
 $ ssh -X &#039;&#039;user@host&#039;&#039;&lt;br /&gt;
グラフィカルなアプリケーションを実行しようとするとエラーが表示される場合、代わりに &#039;&#039;ForwardX11Trusted&#039;&#039; を試してみて下さい:&lt;br /&gt;
 $ ssh -Y &#039;&#039;user@host&#039;&#039;&lt;br /&gt;
リモートサーバーで X プログラムが起動できるようになったら、出力がローカルセッションに転送されます:&lt;br /&gt;
 $ xclock&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Cannot open display&amp;quot; エラーが表示される場合、root 以外のユーザーで以下のコマンドを実行してみてください:&lt;br /&gt;
 $ xhost +&lt;br /&gt;
&lt;br /&gt;
The above command will allow anybody to forward X11 applications. To restrict forwarding to a particular host type:&lt;br /&gt;
 $ xhost +hostname&lt;br /&gt;
&lt;br /&gt;
where hostname is the name of the particular host you want to forward to. See {{ic|man xhost}} for more details.&lt;br /&gt;
&lt;br /&gt;
Be careful with some applications as they check for a running instance on the local machine. [[Firefox]] is an example: either close the running Firefox instance or use the following start parameter to start a remote instance on the local machine:&lt;br /&gt;
 $ firefox -no-remote&lt;br /&gt;
&lt;br /&gt;
If you get &amp;quot;X11 forwarding request failed on channel 0&amp;quot; when you connect (and the server {{ic|/var/log/errors.log}} shows &amp;quot;Failed to allocate internet-domain X11 display socket&amp;quot;), make sure package {{Pkg|xorg-xauth}} is installed. If its installation is not working, try to either:&lt;br /&gt;
&lt;br /&gt;
* enable the {{ic|AddressFamily any}} option in {{ic|ssh&#039;&#039;&#039;d&#039;&#039;&#039;_config}} on the &#039;&#039;server&#039;&#039;, or&lt;br /&gt;
* set the {{ic|AddressFamily}} option in {{ic|ssh&#039;&#039;&#039;d&#039;&#039;&#039;_config}} on the &#039;&#039;server&#039;&#039; to inet.&lt;br /&gt;
Setting it to inet may fix problems with Ubuntu clients on IPv4.&lt;br /&gt;
&lt;br /&gt;
For running X applications as other user on the SSH server you need to {{Ic|xauth add}} the authentication line taken from {{Ic|xauth list}} of the SSH logged in user.&lt;br /&gt;
&lt;br /&gt;
=== 他のポートのフォワーディング ===&lt;br /&gt;
In addition to SSH&#039;s built-in support for X11, it can also be used to securely tunnel any TCP connection, by use of local forwarding or remote forwarding.&lt;br /&gt;
&lt;br /&gt;
Local forwarding opens a port on the local machine, connections to which will be forwarded to the remote host and from there on to a given destination. Very often, the forwarding destination will be the same as the remote host, thus providing a secure shell and, e.g. a secure VNC connection, to the same machine. Local forwarding is accomplished by means of the {{Ic|-L}} switch and it&#039;s accompanying forwarding specification in the form of {{Ic|&amp;lt;tunnel port&amp;gt;:&amp;lt;destination address&amp;gt;:&amp;lt;destination port&amp;gt;}}.&lt;br /&gt;
&lt;br /&gt;
Thus:&lt;br /&gt;
&lt;br /&gt;
 $ ssh -L 1000:mail.google.com:25 192.168.0.100&lt;br /&gt;
&lt;br /&gt;
will use SSH to login to and open a shell on 192.168.0.100, and will also create a tunnel from the local machine&#039;s TCP port 1000 to mail.google.com on port 25. Once established, connections to localhost:1000 will connect to the Gmail SMTP port. To Google, it will appear that any such connection (though not necessarily the data conveyed over the connection) originated from 192.168.0.100, and such data will be secure as between the local machine and 192.168.0.100, but not between 192.168.0.100, unless other measures are taken.&lt;br /&gt;
&lt;br /&gt;
Similarly:&lt;br /&gt;
&lt;br /&gt;
 $ ssh -L 2000:192.168.0.100:6001 192.168.0.100&lt;br /&gt;
&lt;br /&gt;
will allow connections to localhost:2000 which will be transparently sent to the remote host on port 6001. The preceding example is useful for VNC connections using the vncserver utility--part of the tightvnc package--which, though very useful, is explicit about its lack of security.&lt;br /&gt;
&lt;br /&gt;
Remote forwarding allows the remote host to connect to an arbitrary host via the SSH tunnel and the local machine, providing a functional reversal of local forwarding, and is useful for situations where, e.g., the remote host has limited connectivity due to firewalling. It is enabled with the {{Ic|-R}} switch and a forwarding specification in the form of {{Ic|&amp;lt;tunnel port&amp;gt;:&amp;lt;destination address&amp;gt;:&amp;lt;destination port&amp;gt;}}.&lt;br /&gt;
&lt;br /&gt;
Thus:&lt;br /&gt;
&lt;br /&gt;
 $ ssh -R 3000:irc.freenode.net:6667 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
will bring up a shell on 192.168.0.200, and connections from 192.168.0.200 to itself on port 3000 (remotely speaking, localhost:3000) will be sent over the tunnel to the local machine and then on to irc.freenode.net on port 6667, thus, in this example, allowing the use of IRC programs on the remote host to be used, even if port 6667 would normally be blocked to it.&lt;br /&gt;
&lt;br /&gt;
Both local and remote forwarding can be used to provide a secure &amp;quot;gateway,&amp;quot; allowing other computers to take advantage of an SSH tunnel, without actually running SSH or the SSH daemon by providing a bind-address for the start of the tunnel as part of the forwarding specification, e.g. {{Ic|&amp;lt;tunnel address&amp;gt;:&amp;lt;tunnel port&amp;gt;:&amp;lt;destination address&amp;gt;:&amp;lt;destination port&amp;gt;}}. The {{Ic|&amp;lt;tunnel address&amp;gt;}} can be any address on the machine at the start of the tunnel, {{Ic|localhost}}, {{Ic|*}} (or blank), which, respectively, allow connections via the given address, via the loopback interface, or via any interface. By default, forwarding is limited to connections from the machine at the &amp;quot;beginning&amp;quot; of the tunnel, i.e. the {{Ic|&amp;lt;tunnel address&amp;gt;}} is set to {{Ic|localhost}}. Local forwarding requires no additional configuration, however remote forwarding is limited by the remote server&#039;s SSH daemon configuration. See the {{Ic|GatewayPorts}} option in {{Ic|sshd_config(5)}} for more information.&lt;br /&gt;
&lt;br /&gt;
=== マルチプレクス ===&lt;br /&gt;
&lt;br /&gt;
The SSH daemon usually listens on port 22. However, it is common practice for many public internet hotspots to block all traffic that is not on the regular HTTP/S ports (80 and 443, respectively), thus effectively blocking SSH connections. The immediate solution for this is to have {{ic|sshd}} listen additionally on one of the whitelisted ports:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ssh/sshd_config|&lt;br /&gt;
Port 22&lt;br /&gt;
Port 443&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
However, it is likely that port 443 is already in use by a web server serving HTTPS content, in which case it is possible to use a multiplexer, such as {{Pkg|sslh}}, which listens on the multiplexed port and can intelligently forward packets to many services.&lt;br /&gt;
&lt;br /&gt;
=== SSH の高速化 ===&lt;br /&gt;
&lt;br /&gt;
同一のホストのセッションは全て単一の接続を使うようにすることで、後のログインを劇的に高速化することができます。{{ic|/etc/ssh/ssh_config}} や {{ic|$HOME/.ssh/config}} の適当なホストの下に以下の行を追加してください:&lt;br /&gt;
 Host examplehost.com&lt;br /&gt;
   ControlMaster auto&lt;br /&gt;
   ControlPersist yes&lt;br /&gt;
   ControlPath ~/.ssh/socket-%r@%h:%p&lt;br /&gt;
&lt;br /&gt;
上記のオプションの詳しい説明は {{ic|ssh_config(5)}} マニュアルページを見て下さい。&lt;br /&gt;
&lt;br /&gt;
速度を向上させる別のオプションとして圧縮を有効化する {{ic|-C}} フラグがあります。{{ic|/etc/ssh/ssh_config}} の適切なホストの下に次の行を追加することで永続的に設定することができます:&lt;br /&gt;
 Compression yes&lt;br /&gt;
{{Warning|{{ic|man ssh}} states that &amp;quot;&#039;&#039;Compression is desirable on modem lines and other slow connections, but will only slow down things on fast networks&#039;&#039;&amp;quot;. This tip might be counterproductive depending on your network configuration.}}&lt;br /&gt;
&lt;br /&gt;
Login time can be shortened by using the {{ic|-4}} flag, which bypasses IPv6 lookup. This can be made permanent by adding this line under the proper host in {{ic|/etc/ssh/ssh_config}}:&lt;br /&gt;
 AddressFamily inet&lt;br /&gt;
&lt;br /&gt;
Changing the ciphers used by SSH to less cpu-demanding ones can improve speed. In this respect, the best choices are arcfour and blowfish-cbc.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please do not do this unless you know what you are doing; arcfour has a number of known weaknesses.}}&lt;br /&gt;
&lt;br /&gt;
To use alternative ciphers, run SSH with the {{ic|-c}} flag:&lt;br /&gt;
 $ ssh -c arcfour,blowfish-cbc user@server-address&lt;br /&gt;
&lt;br /&gt;
To use them permanently, add this line under the proper host in {{ic|/etc/ssh/ssh_config}}:&lt;br /&gt;
 Ciphers arcfour,blowfish-cbc&lt;br /&gt;
&lt;br /&gt;
=== SSHFS でリモートファイルシステムをマウントする ===&lt;br /&gt;
sshfs を使って (SSH でアクセスした) リモートのファイルシステムをローカルフォルダにマウントする方法は [[Sshfs]] の記事を参照してください。マウントしたファイルは様々なツールであらゆる操作することができます (コピー、名前の変更、vim で編集など)。基本的に shfs よりも sshfs を使用することを推奨します。sshfs は shfs の新しいバージョンであり、元の shfs は2004年から更新されていません。&lt;br /&gt;
&lt;br /&gt;
=== Keep alive ===&lt;br /&gt;
一定時間操作がないと ssh セッションは自動的にログアウトします。接続を維持するには以下をクライアントの {{ic|~/.ssh/config}} か {{ic|/etc/ssh/ssh_config}} に追加してください:&lt;br /&gt;
&lt;br /&gt;
 ServerAliveInterval 120&lt;br /&gt;
&lt;br /&gt;
これで120秒ごとに &amp;quot;keep alive&amp;quot; シグナルがサーバーに送信されます。&lt;br /&gt;
&lt;br /&gt;
反対に、外部からの接続を維持するには、次をサーバーの {{ic|/etc/ssh/sshd_config}} に設定します (数字は0より大きく):&lt;br /&gt;
 &lt;br /&gt;
 ClientAliveInterval 120&lt;br /&gt;
&lt;br /&gt;
=== ssh の設定に接続データを保存する ===&lt;br /&gt;
Whenever you want to connect to a ssh server, you usually have to type at least its address and the username. To save that typing work for servers you regularly connect to, you can use the personal {{ic|~/.ssh/config}} or the global {{ic|/etc/ssh/ssh_config}} files as shown in the following example:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.ssh/config|&lt;br /&gt;
Host myserver&lt;br /&gt;
    HostName 123.123.123.123&lt;br /&gt;
    Port 12345&lt;br /&gt;
    User bob&lt;br /&gt;
    IdentityFile ~/.ssh/some_key_file&lt;br /&gt;
Host other_server&lt;br /&gt;
    HostName test.something.org&lt;br /&gt;
    User alice&lt;br /&gt;
    CheckHostIP no&lt;br /&gt;
    Cipher blowfish&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Now you can simply connect to the server by using the name you specified:&lt;br /&gt;
&lt;br /&gt;
 $ ssh myserver&lt;br /&gt;
&lt;br /&gt;
To see a complete list of the possible options, check out ssh_config&#039;s manpage on your system or the [http://www.openbsd.org/cgi-bin/man.cgi?query=ssh_config ssh_config documentation] on the official website.&lt;br /&gt;
&lt;br /&gt;
=== systemd で SSH トンネルを自動的に再起動 ===&lt;br /&gt;
&lt;br /&gt;
[[systemd]] を使ってブート時/ログイン時に SSH 接続を自動的に開始して、接続が失敗した時に再起動させることができます。SSH トンネルの管理に役立つツールとなります。&lt;br /&gt;
&lt;br /&gt;
以下のサービスでは、[[#ssh の設定に接続データを保存する|ssh の設定]]に保存された接続設定を使って、ログイン時に SSH トンネルを開始します。接続が何らかの理由で閉じられた場合、10秒待機してから再起動します:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/systemd/user/tunnel.service|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=SSH tunnel to myserver&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
Restart=always&lt;br /&gt;
RestartSec=10&lt;br /&gt;
ExecStart=/usr/bin/ssh -F %h/.ssh/config -N myserver&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
上記のユーザーサービスを[[有効化]]して[[起動]]してください。トンネルがタイムアウトするのを防ぐ方法は [[#Keep alive]] を見て下さい。起動時にトンネルを開始したい場合、ユニットをシステムサービスとして書きなおして下さい。&lt;br /&gt;
&lt;br /&gt;
=== Autossh - SSH セッションとトンネルの自動再起動 ===&lt;br /&gt;
ネットワークの状態が悪かったりしてクライアントが切断してしまい、セッションやトンネルの接続を維持できない場合、[http://www.harding.motd.ca/autossh/ Autossh] を使って自動的にセッションとトンネルを再起動できます。Autossh は[[公式リポジトリ]]からインストールできます。&lt;br /&gt;
&lt;br /&gt;
使用例:&lt;br /&gt;
 $ autossh -M 0 -o &amp;quot;ServerAliveInterval 45&amp;quot; -o &amp;quot;ServerAliveCountMax 2&amp;quot; username@example.com&lt;br /&gt;
[[sshfs]] を組み合わせる:&lt;br /&gt;
 $ sshfs -o reconnect,compression=yes,transform_symlinks,ServerAliveInterval=45,ServerAliveCountMax=2,ssh_command=&#039;autossh -M 0&#039; username@example.com: /mnt/example &lt;br /&gt;
[[プロキシ設定]]で設定した SOCKS プロクシを使って接続:&lt;br /&gt;
 $ autossh -M 0 -o &amp;quot;ServerAliveInterval 45&amp;quot; -o &amp;quot;ServerAliveCountMax 2&amp;quot; -NCD 8080 username@example.com &lt;br /&gt;
With the {{ic|-f}} option autossh can be made to run as a background process. Running it this way however means the passprase cannot be entered interactively.&lt;br /&gt;
&lt;br /&gt;
The session will end once you type {{ic|exit}} in the session, or the autossh process receives a SIGTERM, SIGINT of SIGKILL signal.&lt;br /&gt;
&lt;br /&gt;
==== systemd を使ってブート時に自動的に Autossh を起動する ====&lt;br /&gt;
If you want to automatically start autossh, it is now easy to get systemd to manage this for you. For example, you could create a systemd unit file like this:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=AutoSSH service for port 2222&lt;br /&gt;
 After=network.target&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 Environment=&amp;quot;AUTOSSH_GATETIME=0&amp;quot;&lt;br /&gt;
 ExecStart=/usr/bin/autossh -M 0 -NL 2222:localhost:2222 -o TCPKeepAlive=yes foo@bar.com&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
Here {{ic|1=AUTOSSH_GATETIME=0}} is an environment variable specifying how long ssh must be up before autossh considers it a successful connection, setting it to 0 autossh also ignores the first run failure of ssh. This may be useful when running autossh at boot. Other environment variables are available on the manpage. Of course, you can make this unit more complex if necessary (see the systemd documentation for details), and obviously you can use your own options for autossh, but note that the {{ic|-f}} implying {{ic|1=AUTOSSH_GATETIME=0}} does not work with systemd.&lt;br /&gt;
&lt;br /&gt;
Then place this in, for example, /etc/systemd/system/autossh.service. Afterwards, you can then enable your autossh tunnels with, e.g.:&lt;br /&gt;
&lt;br /&gt;
 $ systemctl start autossh&lt;br /&gt;
(or whatever you called the service file)&lt;br /&gt;
&lt;br /&gt;
If this works OK for you, you can make this permanent by running&lt;br /&gt;
&lt;br /&gt;
 $ systemctl enable autossh&lt;br /&gt;
&lt;br /&gt;
That way autossh will start automatically at boot.&lt;br /&gt;
&lt;br /&gt;
It is also easy to maintain several autossh processes, to keep several tunnels alive. Just create multiple .service files with different names.&lt;br /&gt;
&lt;br /&gt;
== ソケットアクティベーションで SSH ポート番号を変更する (sshd.socket) ==&lt;br /&gt;
&lt;br /&gt;
次の内容で {{ic|/etc/systemd/system/sshd.socket.d/port.conf}} ファイルを作成:&lt;br /&gt;
&lt;br /&gt;
 [Socket]&lt;br /&gt;
 # Disable default port&lt;br /&gt;
 ListenStream=&lt;br /&gt;
 # Set new port&lt;br /&gt;
 ListenStream=12345&lt;br /&gt;
&lt;br /&gt;
リロードすれば systemd は自動的に新しいポートを開きます:&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
=== チェックリスト ===&lt;br /&gt;
&lt;br /&gt;
以下は最初に行うべきトラブルシューティングのチェックリストです。何かする前に以下の問題をチェックすることを推奨します。&lt;br /&gt;
&lt;br /&gt;
==== SSH の設定を確認 ====&lt;br /&gt;
&lt;br /&gt;
1. クライアントとサーバーの {{ic|~/.ssh}} フォルダにユーザーがアクセスできるようにする:&lt;br /&gt;
&lt;br /&gt;
 $ chmod 700 /home/USER/.ssh&lt;br /&gt;
 $ chmod 600 /home/USER/.ssh/*&lt;br /&gt;
&lt;br /&gt;
2. ライアントとサーバーの {{ic|~/.ssh}} フォルダにある全てのファイルの所有者がユーザーになっていることを確認:&lt;br /&gt;
&lt;br /&gt;
 $ chown -R USER: /home/USER/.ssh&lt;br /&gt;
&lt;br /&gt;
3. クライアントの公開鍵を確認。サーバーの {{ic|authorized_keys}} やユーザーの {{ic|~/.ssh/}} ファイルにある {{ic|id_rsa.pub}} ファイルなど。&lt;br /&gt;
&lt;br /&gt;
4. {{ic|/etc/ssh/sshd_config}} の {{ic|AllowUsers or AllowGroups}} オプションで SSH のアクセスが制限されていないか確認。&lt;br /&gt;
&lt;br /&gt;
5. ユーザーにパスワードが設定されていることを確認。新しいユーザーを追加したあとパスワードが設定されていなかったり一度もログインされてなかったりすることがあります。&lt;br /&gt;
&lt;br /&gt;
==== SSH を再起動 + ユーザーの再ログイン ====&lt;br /&gt;
&lt;br /&gt;
6. {{ic|sshd}} (サーバー) を[[再起動]]。&lt;br /&gt;
&lt;br /&gt;
7. クライアントとホスト、両方でユーザー (シェル) の再ログイン。&lt;br /&gt;
&lt;br /&gt;
==== 期限切れのキーを削除 (任意) ====&lt;br /&gt;
&lt;br /&gt;
8. Delete old/invalid key rows in server&#039;s {{ic|~/.ssh/authorized_keys}} file.&lt;br /&gt;
&lt;br /&gt;
9. Delete old/invalid private and public keys within the clients {{ic|~/.ssh}} folder.&lt;br /&gt;
&lt;br /&gt;
==== 推奨事項 ====&lt;br /&gt;
&lt;br /&gt;
10. Keep as few keys as possible in user&#039;s {{ic|~/.ssh/authorized_keys}} file on the server.&lt;br /&gt;
&lt;br /&gt;
11. Secure server&#039;s {{ic|/home/USER/.ssh/authorized_keys}} file against manipulation:&lt;br /&gt;
&lt;br /&gt;
 $ chmod 400 /home/USER/.ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
=== 電源オフ/再起動した後も SSH 接続が残ってしまう ===&lt;br /&gt;
systemd が sshd の前に network を停止してしまうと電源を切った後も SSH 接続が繋がったままになります。この問題を修正するには、{{ic|After}} ステートメントを修正してください:&lt;br /&gt;
{{hc|/usr/lib/systemd/system/systemd-user-sessions.service|2=&lt;br /&gt;
#After=remote-fs.target&lt;br /&gt;
After=network.target}}&lt;br /&gt;
&lt;br /&gt;
=== 接続が拒否されるまたはタイムアウトする ===&lt;br /&gt;
&lt;br /&gt;
==== ルーターがポートフォワーディングをしていないか？ ====&lt;br /&gt;
&lt;br /&gt;
SKIP THIS STEP IF YOU ARE NOT BEHIND A NAT MODEM/ROUTER (eg, a VPS or otherwise publicly addressed host). Most home and small businesses will have a NAT modem/router.&lt;br /&gt;
&lt;br /&gt;
The first thing is to make sure that your router knows to forward any incoming ssh connection to your machine. Your external IP is given to you by your ISP, and it is associated with any requests coming out of your router. So your router needs to know that any incoming ssh connection to your external IP needs to be forwarded to your machine running sshd.&lt;br /&gt;
&lt;br /&gt;
Find your internal network address.&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
Find your interface device and look for the inet field. Then access your router&#039;s configuration web interface, using your router&#039;s IP (find this on the web). Tell your router to forward it to your inet IP. Go to [http://portforward.com/] for more instructions on how to do so for your particular router.&lt;br /&gt;
&lt;br /&gt;
==== SSH が動作しているか？ ====&lt;br /&gt;
 $ ss -tnlp&lt;br /&gt;
&lt;br /&gt;
上記のコマンドで SSH ポートが開いていると表示されない場合、SSH は動作していません。{{ic|/var/log/messages}} にエラーがないか確認してください。&lt;br /&gt;
&lt;br /&gt;
==== 接続をブロックするようなファイアウォールのルールが存在しないか？ ====&lt;br /&gt;
&lt;br /&gt;
[[iptables]] によってポート {{ic|22}} の接続がブロックされている可能性があります。次のコマンドで確認してください:&lt;br /&gt;
{{bc|# iptables -nvL}}&lt;br /&gt;
{{ic|INPUT}} チェインのパケットを拒否するようなルールがないか見て下さい。そして、必要であれば、次のようなコマンドでポートのブロックを解除します:&lt;br /&gt;
{{bc|&lt;br /&gt;
# iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT&lt;br /&gt;
}}&lt;br /&gt;
ファイアウォールの設定に関する詳細は[[ファイアウォール]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
==== Is the traffic even getting to your computer? ====&lt;br /&gt;
Start a traffic dump on the computer you&#039;re having problems with:&lt;br /&gt;
&lt;br /&gt;
 # tcpdump -lnn -i any port ssh and tcp-syn&lt;br /&gt;
&lt;br /&gt;
This should show some basic information, then wait for any matching traffic to happen before displaying it. Try your connection now. If you do not see any output when you attempt to connect, then something outside of your computer is blocking the traffic (e. g., hardware firewall, NAT router etc.).&lt;br /&gt;
&lt;br /&gt;
==== ISP またはサードパーティによってデフォルトのポートがブロックされてないか？ ====&lt;br /&gt;
{{Note|このステップは次のことを確認した後で実行してください。ファイアーウォールを何も起動していないこと。DMZ へのルータを正しく設定している、またはコンピュータへポートを転送していること。それでもまだ動かない場合。ここで診断のステップと解決法が見つかるでしょう。}}&lt;br /&gt;
&lt;br /&gt;
ときどき ISP（インターネット・サービス・プロバイダ）が SSH のデフォルトポート（22番）をブロックしている場合があります。この場合はあなたが何をしても（ポートを開ける、スタックを強化する、フラッドアタックを防御する、など）無意味になります。これを確認するためには、全てのインターフェイス（0.0.0.0）をリッスンする sshd を立ち上げ、リモートから接続してみます。&lt;br /&gt;
&lt;br /&gt;
このようなエラーメッセージが出る場合：&lt;br /&gt;
 ssh: connect to host www.inet.hr port 22: Connection refused&lt;br /&gt;
&lt;br /&gt;
これはそのポートが ISP にブロックされていないが、サーバのそのポートで SSH が起動していないことを意味します&lt;br /&gt;
（[[wikipedia:Security_through_obscurity|security through obscurity]] を参照）。&lt;br /&gt;
&lt;br /&gt;
しかし、次のようなエラーメッセージが出る場合：&lt;br /&gt;
 ssh: connect to host 111.222.333.444 port 22: Operation timed out &lt;br /&gt;
&lt;br /&gt;
これは何かがポート 22 での TCP トラフィックを拒否（reject）していることを意味します。そのポートはあなたのサーバ上のファイアーウォールか第三者（ISP など）のどちらかによってステルスされています。自分のサーバでファイアーウォールが起動していないことが確かなら、またルータやスイッチの中でグレムリンが育っていないことが確かなら、ISP がトラフィックをブロックしています。&lt;br /&gt;
&lt;br /&gt;
ダブルチェックのために、サーバ上で Wireshark を起動を起動してポート 22 でのトラフィックをリッスンしてみましょう。Wireshark はレイヤ 2 のパケット・スニファリング・ユーティリティであり、TCP/UDP はレイヤ 3 以上なので（[[wikipedia:Internet protocol suite|IP Network stack]]を参照）、もしリモートから接続するときに何も受け取っていなければ、十中八九、第三者がブロックしています。&lt;br /&gt;
&lt;br /&gt;
===== 問題診断 =====&lt;br /&gt;
{{Pkg|tcpdump}} または {{Pkg|wireshark-cli}} パッケージの Wireshark を[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
tcpdump の場合:&lt;br /&gt;
 # tcpdump -ni &#039;&#039;interface&#039;&#039; &amp;quot;port 22&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wireshark の場合:&lt;br /&gt;
 $ tshark -f &amp;quot;tcp port 22&amp;quot; -i &#039;&#039;interface&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{ic|&#039;&#039;interface&#039;&#039;}} は WAN 接続に使っているネットワークインターフェイスに置き換えてください (確認したいときは {{ic|ip a}} を実行)。リモートで接続を試行してもパケットが全く受け取れない場合、ISP によってポート 22 のトラフィックがブロックされている可能性があります。&lt;br /&gt;
&lt;br /&gt;
===== 解決方法 =====&lt;br /&gt;
解決方法は、単に ISP がブロックしていない他のポートを使うことです。{{ic|/etc/ssh/sshd_config}} を編集して他のポートを使うようにしましょう。例えば次を追加します：&lt;br /&gt;
&lt;br /&gt;
 Port 22&lt;br /&gt;
 Port 1234&lt;br /&gt;
&lt;br /&gt;
そしてこのファイル中の他の Port 設定をコメントアウトします。「Port 22」をコメントにして「Port 1234」を追加するだけでは、sshd がポート 1234 しかリッスンしなくなるので、この問題は解決しません。この 2 行どちらも使用し、sshd が両方のポートをリッスンするようにします。&lt;br /&gt;
&lt;br /&gt;
あとは {{ic|systemctl restart sshd.service}} で sshd を起動するだけです。そして ssh クライアントでも同じポートに変更します。There are numerous solutions to that problem, but let us cover two of them here.&lt;br /&gt;
&lt;br /&gt;
==== Read from socket failed: connection reset by peer ====&lt;br /&gt;
最近の openssh のバージョンでは、楕円曲線暗号関連のバグのせいで、上記のエラーメッセージで接続が失敗することがあります。その場合 {{ic|~/.ssh/config}} に次の行を追加してください:&lt;br /&gt;
&lt;br /&gt;
 HostKeyAlgorithms ssh-rsa-cert-v01@openssh.com,ssh-dss-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-dss-cert-v00@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-rsa,ssh-dss&lt;br /&gt;
&lt;br /&gt;
openssh 5.9 では、上記の修正方法は働きません。代わりに、{{ic|~/.ssh/config}} に以下の行を記述してください:&lt;br /&gt;
&lt;br /&gt;
 Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc &lt;br /&gt;
 MACs hmac-md5,hmac-sha1,hmac-ripemd160&lt;br /&gt;
&lt;br /&gt;
openssh バグフォーラムの [http://www.gossamer-threads.com/lists/openssh/dev/51339 議論] も参照。&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;[your shell]: No such file or directory&amp;quot; / ssh_exchange_identification problem ===&lt;br /&gt;
One possible cause for this is the need of certain SSH clients to find an absolute path (one returned by {{Ic|whereis -b [your shell]}}, for instance) in {{Ic|$SHELL}}, even if the shell&#039;s binary is located in one of the {{Ic|$PATH}} entries.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Terminal unknown&amp;quot; や &amp;quot;Error opening terminal&amp;quot; エラーメッセージ===&lt;br /&gt;
ssh でログイン時に &amp;quot;Terminal unknown&amp;quot; のようなエラーが表示されることがあります。nano などの ncurses アプリケーションを実行すると &amp;quot;Error opening terminal&amp;quot; というメッセージが表示されます。この問題を解決する方法は2つあります。{{ic|$TERM}} 変数を使って簡単に修正する方法と terminfo ファイルを使って根本的に解決する方法です。&lt;br /&gt;
&lt;br /&gt;
====$TERM 変数を設定する解決策====&lt;br /&gt;
リモートサーバーに接続した後に以下のコマンドを使って {{ic|$TERM}} 変数を &amp;quot;xterm&amp;quot; に設定してください:&lt;br /&gt;
&lt;br /&gt;
 $ TERM&amp;amp;#61;xterm&lt;br /&gt;
&lt;br /&gt;
この方法はあくまで次善策であり、たまにしか接続しない ssh サーバーで使うようにしてください。良くない副作用があるからです。また、接続するたびにコマンドを実行する必要があります。もしくは {{ic|~.bashrc}} で設定してください。&lt;br /&gt;
&lt;br /&gt;
====terminfo ファイルを使う解決策====&lt;br /&gt;
A profound solution is transferring the terminfo file of the terminal on your client computer to the ssh server. In this example we cover how to setup the terminfo file for the &amp;quot;rxvt-unicode-256color&amp;quot; terminal.&lt;br /&gt;
Create the directory containing the terminfo files on the ssh server, while you are logged in to the server issue this command:&lt;br /&gt;
&lt;br /&gt;
 $ mkdir -p ~/.terminfo/r/&lt;br /&gt;
&lt;br /&gt;
Now copy the terminfo file of your terminal to the new directory. Replace {{ic|rxvt-unicode-256color}} with your client&#039;s terminal in the following command and {{ic|ssh-server}} with the relevant user and server adress.&lt;br /&gt;
&lt;br /&gt;
 $ scp /usr/share/terminfo/r/&#039;&#039;rxvt-unicode-256color&#039;&#039; ssh-server:~/.terminfo/r/&lt;br /&gt;
&lt;br /&gt;
After logging in and out from the ssh server the problem should be fixed.&lt;br /&gt;
&lt;br /&gt;
=== Connection closed by x.x.x.x [preauth] ===&lt;br /&gt;
sshd のログでこのエラーが確認できる場合、HostKey が正しく設定されているか確認してください:&lt;br /&gt;
 HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
&lt;br /&gt;
=== OpenSSH 7.0 によって id_dsa が拒否される ===&lt;br /&gt;
&lt;br /&gt;
OpenSSH 7.0 では ssh-dss が無効になっており、http://www.openssh.com/legacy.html には id_dsa 鍵が使われている場合にサーバーにアクセスする方法が書かれていません:&lt;br /&gt;
&lt;br /&gt;
 PubkeyAcceptedKeyTypes +ssh-dss&lt;br /&gt;
&lt;br /&gt;
While this can be added a per host basis or with -o, to make sure &amp;quot;ProxyCommand ssh&amp;quot; still works, add it to ssh_config.&lt;br /&gt;
&lt;br /&gt;
=== no matching key exchange method found by OpenSSH 7.0 ===&lt;br /&gt;
&lt;br /&gt;
OpenSSH 7.0 also deprecated the key algorithm diffie-hellman-group1-sha1, as we could see in http://www.openssh.com/legacy.html.&lt;br /&gt;
&lt;br /&gt;
If the client and server are unable to agree on a mutual set of parameters then the connection will fail. OpenSSH (7.0 and greater) will produce an error message like this:&lt;br /&gt;
&lt;br /&gt;
  Unable to negotiate with 127.0.0.1: no matching key exchange method found.&lt;br /&gt;
  Their offer: diffie-hellman-group1-sha1&lt;br /&gt;
&lt;br /&gt;
In this case, the client and server were unable to agree on the key exchange algorithm. The server offered only a single method diffie-hellman-group1-sha1. OpenSSH supports this method, but does not enable it by default because is weak and within theoretical range of the so-called Logjam attack.&lt;br /&gt;
&lt;br /&gt;
The best resolution for these failures is to upgrade the software at the other end. OpenSSH only disables algorithms that we actively recommend against using because they are known to be weak. In some cases, this might not be immediately possible so you may need to temporarily re-enable the weak algorithms to retain access.&lt;br /&gt;
&lt;br /&gt;
For the case of the above error message, OpenSSH can be configured to enable the diffie-hellman-group1-sha1 key exchange algorithm (or any other that is disabled by default) using the KexAlgorithm option - either on the command-line:&lt;br /&gt;
&lt;br /&gt;
  ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 user@127.0.0.1&lt;br /&gt;
&lt;br /&gt;
or in the ~/.ssh/config file:&lt;br /&gt;
&lt;br /&gt;
  Host somehost.example.org&lt;br /&gt;
  	KexAlgorithms +diffie-hellman-group1-sha1&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
*[http://www.la-samhna.de/library/brutessh.html Defending against brute force ssh attacks]&lt;br /&gt;
*IBM developerWorks の [http://www.ibm.com/developerworks/jp/linux/library/l-keyc/ OpenSSH キー （鍵） の管理: 第 1 回] と [http://www.ibm.com/developerworks/jp/linux/library/l-keyc2/ 第 2 回]&lt;br /&gt;
* [https://stribika.github.io/2015/01/04/secure-secure-shell.html Secure Secure Shell]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=OpenSSH&amp;diff=4531</id>
		<title>OpenSSH</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=OpenSSH&amp;diff=4531"/>
		<updated>2015-12-27T03:13:03Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: /* ISP またはサードパーティによってデフォルトのポートがブロックされてないか？ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Secure Shell]]&lt;br /&gt;
[[ar:Secure Shell]]&lt;br /&gt;
[[de:SSH]]&lt;br /&gt;
[[en:Secure Shell]]&lt;br /&gt;
[[es:Secure Shell]]&lt;br /&gt;
[[fr:ssh]]&lt;br /&gt;
[[it:Secure Shell]]&lt;br /&gt;
[[ko:Secure Shell]]&lt;br /&gt;
[[pl:Secure Shell]]&lt;br /&gt;
[[pt:Secure Shell]]&lt;br /&gt;
[[ru:Secure Shell]]&lt;br /&gt;
[[sr:Secure Shell]]&lt;br /&gt;
[[zh-CN:Secure Shell]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|SSH 鍵}}&lt;br /&gt;
{{Related|Pam abl}}&lt;br /&gt;
{{Related|fail2ban}}&lt;br /&gt;
{{Related|sshguard}}&lt;br /&gt;
{{Related|Sshfs}}&lt;br /&gt;
{{Related|syslog-ng}}&lt;br /&gt;
{{Related|SFTP chroot}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
Secure Shell (SSH) は暗号技術を利用して、安全にリモートコンピュータと通信するためのネットワークプロトコルです。暗号によってデータの機密性と完全性が保証されます。SSH は公開鍵暗号を使ってリモートコンピュータを認証し、リモートコンピュータは必要に応じてユーザーを認証します。&lt;br /&gt;
&lt;br /&gt;
基本的に SSH はリモートマシンにログインしてコマンドを実行するために使われますが、トンネリングや TCP ポートや X11 接続の任意のフォワーディングをサポートしており、SFTP や SCP プロトコルを使うことでファイル転送をすることも可能です。&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、SSH サーバーは標準の TCP 22番ポートを使います。通常は SSH クライアントプロトコルを使って &#039;&#039;sshd&#039;&#039; デーモンの接続を確立してリモート接続を承認します。Mac OS X, GNU/Linux, Solaris, OpenVMS など近代的なオペレーティングシステムのほとんどでサーバーとクライアントの両方が備わってします。複雑なもの・完全なものまで様々なレベルのバージョンがプロプライエタリ・フリーウェア・オープンソースを問わずに存在します。&lt;br /&gt;
&lt;br /&gt;
(ソース: [[Wikipedia:ja:Secure Shell]])&lt;br /&gt;
&lt;br /&gt;
== OpenSSH ==&lt;br /&gt;
OpenSSH (OpenBSD Secure Shell) は ssh プロトコルを使ってコンピューターネットワークを介して暗号化通信セッションを提供するコンピュータープログラムのセットです。SSH Communications Security によるプロプライエタリの Secure Shell ソフトウェアスイートに代わるオープンのプログラムとして作成されました。OpenSSH は Theo de Raadt に率いられている OpenBSD プロジェクトの一環として開発されています。&lt;br /&gt;
&lt;br /&gt;
同じような名前の OpenSSL と OpenSSH が混同されることがときどきありますが、プロジェクトの目的・開発チームは異なります。&lt;br /&gt;
&lt;br /&gt;
=== OpenSSH のインストール ===&lt;br /&gt;
[[公式リポジトリ]]から {{Pkg|openssh}} を[[pacman|インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
=== SSH の設定 ===&lt;br /&gt;
====クライアント====&lt;br /&gt;
SSH クライアントの設定ファイルは {{ic|/etc/ssh/ssh_config}} もしくは {{ic|~/.ssh/config}} です。&lt;br /&gt;
&lt;br /&gt;
{{ic|Protocol 2}} を明示的に設定する必要はありません。デフォルトの設定ファイルではコメントアウトされています。つまり明示的に有効にされない限り {{ic|Protocol 1}} は使われません。 (ソース: http://www.openssh.org/txt/release-5.4)&lt;br /&gt;
&lt;br /&gt;
====デーモン====&lt;br /&gt;
SSH デーモンの設定ファイルは {{ic|/etc/ssh/ssh&#039;&#039;&#039;d&#039;&#039;&#039;_config}} です。&lt;br /&gt;
&lt;br /&gt;
特定のユーザーにだけアクセスを許可するには次の行を追加してください:&lt;br /&gt;
 AllowUsers    user1 user2&lt;br /&gt;
&lt;br /&gt;
特定のグループにだけアクセスを許可するには:&lt;br /&gt;
 AllowGroups   group1 group2&lt;br /&gt;
&lt;br /&gt;
SSH による root ログインを無効にするには、PermitRootLogin 行を次のように変更してください:&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
&lt;br /&gt;
{{Note|1=バージョン 7.0p1 からは {{ic|PermitRootLogin prohibit-password}} がデフォルトになっています。{{ic|man sshd_config}} を参照。}}&lt;br /&gt;
&lt;br /&gt;
ウェルカムメッセージを追加するには {{ic|/etc/issue}} ファイルを編集して Banner 行を次のように変更してください:&lt;br /&gt;
 Banner /etc/issue&lt;br /&gt;
&lt;br /&gt;
ホスト鍵は sshd の systemd サービスによって自動的に生成されます。sshd に特定の鍵を使用させたい場合、手動で設定します:&lt;br /&gt;
 HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
&lt;br /&gt;
サーバーに WAN からアクセスできる場合、デフォルトのポートである 22 から別のランダムなポートに変更することが推奨されています:&lt;br /&gt;
 Port 39901&lt;br /&gt;
&lt;br /&gt;
{{Note|OpenSSH では設定ファイルに &#039;&#039;Port x&#039;&#039; 行を複数記述することで複数のポートを使うことができます。}}&lt;br /&gt;
&lt;br /&gt;
パスワードによるログインを使わないようにすればセキュリティは大幅に向上します。詳しくは [[SSH 鍵#パスワードログインの無効化]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== sshd デーモンの管理 ===&lt;br /&gt;
次のコマンドで sshd デーモンを起動することができます:&lt;br /&gt;
 # systemctl start sshd.service&lt;br /&gt;
&lt;br /&gt;
次のコマンドで sshd デーモンを起動時に有効にすることができます:&lt;br /&gt;
 # systemctl enable sshd.service&lt;br /&gt;
&lt;br /&gt;
詳しくは [[systemd#ユニットを使う]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
{{Warning|Systemd は非同期にプロセスを実行します。SSH デーモンを特定の IP アドレス {{ic|ListenAddress 192.168.1.100}} に結びつけている場合、デフォルトの sshd.service ユニットファイルはネットワークインターフェイスが有効にされることに依存していないため、ブート中にロードが失敗する可能性があります。IP アドレスをバインドする時は、カスタムした sshd.service ユニットファイルに {{ic|1=After=network.target}} を追加してください。[[systemd#ユニットファイルの編集]] を参照。}}&lt;br /&gt;
&lt;br /&gt;
また SSH デーモンソケットを有効にすることで初めて接続があったときにデーモンが起動するようにすることもできます:&lt;br /&gt;
 # systemctl start sshd.socket&lt;br /&gt;
 # systemctl enable sshd.socket&lt;br /&gt;
デフォルトの22番以外のポートを使う場合、ユニットファイルを[[systemd#ユニットファイルの編集|編集]]する必要があります:&lt;br /&gt;
{{hc|# systemctl edit sshd.socket|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Socket]&lt;br /&gt;
ListenStream=&lt;br /&gt;
ListenStream=12345&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|sshd.socket}} を使用すると {{ic|ListenAddress}} の設定が打ち消されて、どのアドレスからでも接続できるようになってしまいます。{{ic|ListenAddress}} の設定を適用するには、{{ic|ListenStream}} でポートと IP を指定する必要があります (例: {{ic|1=ListenStream=192.168.1.100:22}})。また、{{ic|[Socket]}} の下に {{ic|1=FreeBind=true}} を追加するようにしてください。そうしないと IP アドレスの設定が {{ic|ListenAddress}} の設定と同じように無効になってしまいます: ネットワークが立ち上がっていない場合にソケットの起動が失敗します。}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|ソケットアクティベーションを使う場合、{{ic|sshd.socket}} でもデーモンの標準の {{ic|sshd.service}} でもログの接続試行を監視することはできません。ただし {{ic|# journalctl /usr/bin/sshd}} を実行することで監視できます。}}&lt;br /&gt;
&lt;br /&gt;
=== サーバーに接続する ===&lt;br /&gt;
サーバーに接続するには、次を実行してください:&lt;br /&gt;
 $ ssh -p port user@server-address&lt;br /&gt;
&lt;br /&gt;
=== SSH の保護 ===&lt;br /&gt;
管理業務のために SSH によるリモートログインを許可することは良いことですが、サーバーのセキュリティに脅威を及ぼすことにもなりえます。総当り攻撃の標的になりやすいので、SSH のアクセスは制限して、第三者がサーバーにアクセスできないようにする必要があります。&lt;br /&gt;
* わかりにくいアカウント名やパスワードを使う&lt;br /&gt;
* 信頼できる国からの SSH 接続だけを許可する&lt;br /&gt;
* [[fail2ban]] や [[sshguard]] をつかってブルートフォース攻撃を監視し、総当りを起こっている IP を閉め出す&lt;br /&gt;
&lt;br /&gt;
==== ブルートフォースアタックからの保護 ====&lt;br /&gt;
ブルートフォースは単純な攻撃方法です: ランダムなユーザー名とパスワードの組み合わせをとにかく沢山作ってウェブページや SSH などのサーバーログインプロンプトにログインを絶えず試行します。ブルートフォース攻撃からは [[fail2ban]] や [[sshguard]] などの自動スクリプトを使うことで攻撃者をブロックすることで身を守ることができます。&lt;br /&gt;
&lt;br /&gt;
もしくは、公開鍵認証を使うことでブルートフォース攻撃を出来なくすることもできます。{{ic|sshd_config}} に次の設定を追加:&lt;br /&gt;
&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
&lt;br /&gt;
上の設定を適用する前に、SSH アクセスが必要な全てのアカウントで {{ic|authorized_keys}} ファイルに公開鍵認証の設定をするようにしてください。詳しくは [[SSH 鍵#リモートサーバーに公開鍵をコピー]] を参照。&lt;br /&gt;
&lt;br /&gt;
==== 2段階認証 ====&lt;br /&gt;
&lt;br /&gt;
SSH 鍵のペアによる認証を使用していてパスワードによろうログインを無効化している場合に、2段階認証を使いたいときは [[Google Authenticator]] や [[SSH 鍵#2段階認証と公開鍵]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
==== root ログインを制限する ====&lt;br /&gt;
一般的に、SSH で無制限に root ログインを許可することは推奨されません。セキュリティの向上のために、SSH での root ログインを制限する方法は2つ存在します。&lt;br /&gt;
&lt;br /&gt;
===== root ログインを拒否する =====&lt;br /&gt;
&lt;br /&gt;
Sudo を使うことで、root アカウントの認証を行うことなく、必要に応じて root 権限を選択的に付与することができます。このため SSH による root ログインを拒否して、攻撃者にパスワードに加えて (root でない) ユーザー名も推測させる必要を生じさせることで、ブルートフォース攻撃を困難にすることが可能です。&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/ssh/sshd_config}} の &amp;quot;Authentication&amp;quot; セクションを編集することで SSH からの root ログインを拒否するように設定できます。{{ic|#PermitRootLogin yes}} を {{ic|no}} に変更して行をアンコメントしてください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ssh/sshd_config|&lt;br /&gt;
PermitRootLogin no&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
そして、SSH デーモンを[[再起動]]してください。&lt;br /&gt;
&lt;br /&gt;
これで、SSH を使って root でログインすることはできなくなります。ただし、通常ユーザーでログインしてから [[su]] や [[sudo]] を使ってシステム管理を行うことは依然として可能です。&lt;br /&gt;
&lt;br /&gt;
===== root ログインを限定する =====&lt;br /&gt;
自動的な作業の中にも、リモートによるフルシステムバックアップなど、root 権限を必要とするものがあります。セキュアな方法で root を許可したい場合、SSH による root ログインを無効化する代わりに、特定のコマンドだけ root ログインを許可することができます。{{ic|~root/.ssh/authorized_keys}} を編集して、以下のように特定のキーの前にコマンドを記述します:&lt;br /&gt;
&lt;br /&gt;
 command=&amp;quot;/usr/lib/rsync/rrsync -ro /&amp;quot; ssh-rsa …&lt;br /&gt;
&lt;br /&gt;
This will allow any login with this specific key only to execute the command specified between the quotes.&lt;br /&gt;
&lt;br /&gt;
The increased attack surface created by exposing the root user name at login can be compensated by adding the following to {{ic|sshd_config}}:&lt;br /&gt;
&lt;br /&gt;
 PermitRootLogin forced-commands-only&lt;br /&gt;
&lt;br /&gt;
This setting will not only restrict the commands which root may execute via SSH, but it will also disable the use of passwords, forcing use of public key authentication for the root account.&lt;br /&gt;
&lt;br /&gt;
A slightly less restrictive alternative will allow any command for root, but makes brute force attacks infeasible by enforcing public key authentication. For this option, set:&lt;br /&gt;
&lt;br /&gt;
 PermitRootLogin without-password&lt;br /&gt;
&lt;br /&gt;
== 他の SSH クライアントとサーバー ==&lt;br /&gt;
OpenSSH の他にも、多数の SSH [[Wikipedia:Comparison of SSH clients|クライアント]] と[[Wikipedia:Comparison of SSH servers|サーバー]]が存在します。&lt;br /&gt;
&lt;br /&gt;
=== Dropbear ===&lt;br /&gt;
[[Wikipedia:Dropbear (software)|Dropbear]] は SSH-2 クライアント・サーバーです。{{Pkg|dropbear}} は[[公式リポジトリ]]から利用可能です。&lt;br /&gt;
&lt;br /&gt;
コマンドラインの ssh クライアントは dbclient という名前が付けられています。&lt;br /&gt;
&lt;br /&gt;
=== Mosh: Mobile Shell ===&lt;br /&gt;
Mosh の [http://mosh.mit.edu/ ウェブサイト] より:&lt;br /&gt;
&lt;br /&gt;
ローミングが可能で、断続的な接続もサポートしているリモート端末アプリケーションです。ユーザーのキーストロークのローカルエコーと行編集を提供します。Mosh は SSH の代替です。SSH よりも強固でレスポンスが早く、特に Wi-Fi や携帯端末からの接続、長距離通信など通信速度が遅い場合に役に立ちます。&lt;br /&gt;
&lt;br /&gt;
[[公式リポジトリ]]から {{Pkg|mosh}} を[[pacman|インストール]]するか [[Arch User Repository|AUR]] にある最新版 {{AUR|mosh-git}} を使って下さい。&lt;br /&gt;
&lt;br /&gt;
Mosh にはドキュメントに記載されていないコマンドラインオプション {{ic|1=--predict=experimental}} が存在し、よりアグレッシブにローカルのキーストロークのエコーを生成します。キーボード入力が遅延なく確認できるのに興味があるのであればこの prediction モードを使ってみて下さい。&lt;br /&gt;
&lt;br /&gt;
== Tips and tricks ==&lt;br /&gt;
&lt;br /&gt;
=== 暗号化 SOCKS トンネル ===&lt;br /&gt;
This is highly useful for laptop users connected to various unsafe wireless connections. The only thing you need is an SSH server running at a somewhat secure location, like your home or at work. It might be useful to use a dynamic DNS service like [http://www.dyndns.org/ DynDNS] so you do not have to remember your IP-address.&lt;br /&gt;
&lt;br /&gt;
==== 手順 1: 接続の開始 ====&lt;br /&gt;
You only have to execute this single command to start the connection:&lt;br /&gt;
 $ ssh -TND 4711 &#039;&#039;user&#039;&#039;@&#039;&#039;host&#039;&#039;&lt;br /&gt;
where {{Ic|&#039;&#039;user&#039;&#039;}} is your username at the SSH server running at the {{Ic|&#039;&#039;host&#039;&#039;}}. It will ask for your password, and then you are connected! The {{Ic|N}} flag disables the interactive prompt, and the {{Ic|D}} flag specifies the local port on which to listen on (you can choose any port number if you want).  The {{Ic|T}} flag disables pseudo-tty allocation.&lt;br /&gt;
&lt;br /&gt;
It is nice to add the verbose ({{Ic|-v}}) flag, because then you can verify that it is actually connected from that output.&lt;br /&gt;
&lt;br /&gt;
==== 手順 2: ブラウザ (やその他のプログラム) の設定 ====&lt;br /&gt;
The above step is completely useless if you do not configure your web browser (or other programs) to use this newly created socks tunnel. Since the current version of SSH supports both SOCKS4 and SOCKS5, you can use either of them.&lt;br /&gt;
&lt;br /&gt;
* For Firefox: &#039;&#039;Edit &amp;amp;rarr; Preferences &amp;amp;rarr; Advanced &amp;amp;rarr; Network &amp;amp;rarr; Connection &amp;amp;rarr; Setting&#039;&#039;:&lt;br /&gt;
: Check the &#039;&#039;Manual proxy configuration&#039;&#039; radio button, and enter {{ic|localhost}} in the &#039;&#039;SOCKS host&#039;&#039; text field, and then enter your port number in the next text field ({{ic|4711}} in the example above).&lt;br /&gt;
&lt;br /&gt;
Firefox does not automatically make DNS requests through the socks tunnel. This potential privacy concern can be mitigated by the following steps:&lt;br /&gt;
&lt;br /&gt;
# Type about:config into the Firefox location bar.&lt;br /&gt;
# Search for network.proxy.socks_remote_dns&lt;br /&gt;
# Set the value to true.&lt;br /&gt;
# Restart the browser.&lt;br /&gt;
&lt;br /&gt;
* For Chromium: You can set the SOCKS settings as environment variables or as command line options. I recommend to add one of the following functions to your {{ic|.bashrc}}:&lt;br /&gt;
 function secure_chromium {&lt;br /&gt;
     port=4711&lt;br /&gt;
     export SOCKS_SERVER=localhost:$port&lt;br /&gt;
     export SOCKS_VERSION=5&lt;br /&gt;
     chromium &amp;amp;&lt;br /&gt;
     exit&lt;br /&gt;
 }&lt;br /&gt;
OR&lt;br /&gt;
 function secure_chromium {&lt;br /&gt;
     port=4711&lt;br /&gt;
     chromium --proxy-server=&amp;quot;socks://localhost:$port&amp;quot; &amp;amp;&lt;br /&gt;
     exit&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Now open a terminal and just do:&lt;br /&gt;
 $ secure_chromium&lt;br /&gt;
&lt;br /&gt;
Enjoy your secure tunnel!&lt;br /&gt;
&lt;br /&gt;
=== X11 フォワーディング ===&lt;br /&gt;
&lt;br /&gt;
X11 フォワーディングはリモートシステムで X11 プログラムを動作させて、グラフィカルインターフェイスをローカルのクライアントマシンで表示させるメカニズムです。X11 フォワーディングではリモートホストに X11 システムを完全にインストールさせる必要はなく、&#039;&#039;xauth&#039;&#039; をインストールするだけで十分です。&#039;&#039;xauth&#039;&#039; は、、X11 セッションの認証を行うために必要なサーバーとクライアントによって使用される {{ic|Xauthority}} の設定を管理するユーティリティです ([http://xmodulo.com/2012/11/how-to-enable-x11-forwarding-using-ssh.html ソース])。&lt;br /&gt;
&lt;br /&gt;
{{Warning|X11 forwarding has important security implications which should be at least acknowledged by reading relevant sections of {{ic|ssh}}, {{ic|sshd_config}} and {{ic|ssh_config}} manual pages. See also [https://security.stackexchange.com/questions/14815/security-concerns-with-x11-forwarding a short writeup]}}&lt;br /&gt;
&lt;br /&gt;
==== セットアップ ====&lt;br /&gt;
&lt;br /&gt;
リモート側:&lt;br /&gt;
&lt;br /&gt;
*[[公式リポジトリ]]から {{Pkg|xorg-xauth}} と {{Pkg|xorg-xhost}} を[[インストール]]&lt;br /&gt;
*{{ic|/etc/ssh/ssh&#039;&#039;&#039;d&#039;&#039;&#039;_config}} 内:&lt;br /&gt;
**{{ic|AllowTcpForwarding}} と {{ic|X11UseLocalhost}} オプションを &#039;&#039;yes&#039;&#039; に設定し、{{ic|X11DisplayOffset}} を &#039;&#039;10&#039;&#039; に設定 (何も変更を加えてなければこの値がデフォルトになっています、{{ic|man sshd_config}} を参照)&lt;br /&gt;
**{{ic|X11Forwarding}} を &#039;&#039;yes&#039;&#039; に設定&lt;br /&gt;
* [[#sshd デーモンの管理|&#039;&#039;sshd&#039;&#039; デーモン]]を[[Systemd#ユニットを使う|再起動]]&lt;br /&gt;
* リモートシステムでも X サーバーを動作させる必要があります。&lt;br /&gt;
&lt;br /&gt;
クライアント側では、接続するたびにコマンドラインで {{ic|-X}} スイッチを指定して {{ic|ForwardX11}} オプションを有効にするか、[[#クライアント|openSSH クライアントの設定ファイル]]で {{ic|ForwardX11}} を &#039;&#039;yes&#039;&#039; に設定してください。&lt;br /&gt;
&lt;br /&gt;
{{Tip|You can enable the {{ic|ForwardX11Trusted}} option ({{ic|-Y}} switch on the command line) if GUI is drawing badly or you receive errors; this will prevent X11 forwardings from being subjected to the [http://www.x.org/wiki/Development/Documentation/Security/ X11 SECURITY extension] controls. Be sure you have read [[#X11 フォワーディング|the warning]] at the beginning of this section if you do so.}}&lt;br /&gt;
&lt;br /&gt;
==== 使用方法 ====&lt;br /&gt;
&lt;br /&gt;
通常通り[[#サーバーに接続する|リモートマシンにログイン]]します、クライアント側の設定ファイルで &#039;&#039;ForwardX11&#039;&#039; を有効にしていない場合は {{ic|-X}} スイッチを指定します:&lt;br /&gt;
 $ ssh -X &#039;&#039;user@host&#039;&#039;&lt;br /&gt;
グラフィカルなアプリケーションを実行しようとするとエラーが表示される場合、代わりに &#039;&#039;ForwardX11Trusted&#039;&#039; を試してみて下さい:&lt;br /&gt;
 $ ssh -Y &#039;&#039;user@host&#039;&#039;&lt;br /&gt;
リモートサーバーで X プログラムが起動できるようになったら、出力がローカルセッションに転送されます:&lt;br /&gt;
 $ xclock&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Cannot open display&amp;quot; エラーが表示される場合、root 以外のユーザーで以下のコマンドを実行してみてください:&lt;br /&gt;
 $ xhost +&lt;br /&gt;
&lt;br /&gt;
The above command will allow anybody to forward X11 applications. To restrict forwarding to a particular host type:&lt;br /&gt;
 $ xhost +hostname&lt;br /&gt;
&lt;br /&gt;
where hostname is the name of the particular host you want to forward to. See {{ic|man xhost}} for more details.&lt;br /&gt;
&lt;br /&gt;
Be careful with some applications as they check for a running instance on the local machine. [[Firefox]] is an example: either close the running Firefox instance or use the following start parameter to start a remote instance on the local machine:&lt;br /&gt;
 $ firefox -no-remote&lt;br /&gt;
&lt;br /&gt;
If you get &amp;quot;X11 forwarding request failed on channel 0&amp;quot; when you connect (and the server {{ic|/var/log/errors.log}} shows &amp;quot;Failed to allocate internet-domain X11 display socket&amp;quot;), make sure package {{Pkg|xorg-xauth}} is installed. If its installation is not working, try to either:&lt;br /&gt;
&lt;br /&gt;
* enable the {{ic|AddressFamily any}} option in {{ic|ssh&#039;&#039;&#039;d&#039;&#039;&#039;_config}} on the &#039;&#039;server&#039;&#039;, or&lt;br /&gt;
* set the {{ic|AddressFamily}} option in {{ic|ssh&#039;&#039;&#039;d&#039;&#039;&#039;_config}} on the &#039;&#039;server&#039;&#039; to inet.&lt;br /&gt;
Setting it to inet may fix problems with Ubuntu clients on IPv4.&lt;br /&gt;
&lt;br /&gt;
For running X applications as other user on the SSH server you need to {{Ic|xauth add}} the authentication line taken from {{Ic|xauth list}} of the SSH logged in user.&lt;br /&gt;
&lt;br /&gt;
=== 他のポートのフォワーディング ===&lt;br /&gt;
In addition to SSH&#039;s built-in support for X11, it can also be used to securely tunnel any TCP connection, by use of local forwarding or remote forwarding.&lt;br /&gt;
&lt;br /&gt;
Local forwarding opens a port on the local machine, connections to which will be forwarded to the remote host and from there on to a given destination. Very often, the forwarding destination will be the same as the remote host, thus providing a secure shell and, e.g. a secure VNC connection, to the same machine. Local forwarding is accomplished by means of the {{Ic|-L}} switch and it&#039;s accompanying forwarding specification in the form of {{Ic|&amp;lt;tunnel port&amp;gt;:&amp;lt;destination address&amp;gt;:&amp;lt;destination port&amp;gt;}}.&lt;br /&gt;
&lt;br /&gt;
Thus:&lt;br /&gt;
&lt;br /&gt;
 $ ssh -L 1000:mail.google.com:25 192.168.0.100&lt;br /&gt;
&lt;br /&gt;
will use SSH to login to and open a shell on 192.168.0.100, and will also create a tunnel from the local machine&#039;s TCP port 1000 to mail.google.com on port 25. Once established, connections to localhost:1000 will connect to the Gmail SMTP port. To Google, it will appear that any such connection (though not necessarily the data conveyed over the connection) originated from 192.168.0.100, and such data will be secure as between the local machine and 192.168.0.100, but not between 192.168.0.100, unless other measures are taken.&lt;br /&gt;
&lt;br /&gt;
Similarly:&lt;br /&gt;
&lt;br /&gt;
 $ ssh -L 2000:192.168.0.100:6001 192.168.0.100&lt;br /&gt;
&lt;br /&gt;
will allow connections to localhost:2000 which will be transparently sent to the remote host on port 6001. The preceding example is useful for VNC connections using the vncserver utility--part of the tightvnc package--which, though very useful, is explicit about its lack of security.&lt;br /&gt;
&lt;br /&gt;
Remote forwarding allows the remote host to connect to an arbitrary host via the SSH tunnel and the local machine, providing a functional reversal of local forwarding, and is useful for situations where, e.g., the remote host has limited connectivity due to firewalling. It is enabled with the {{Ic|-R}} switch and a forwarding specification in the form of {{Ic|&amp;lt;tunnel port&amp;gt;:&amp;lt;destination address&amp;gt;:&amp;lt;destination port&amp;gt;}}.&lt;br /&gt;
&lt;br /&gt;
Thus:&lt;br /&gt;
&lt;br /&gt;
 $ ssh -R 3000:irc.freenode.net:6667 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
will bring up a shell on 192.168.0.200, and connections from 192.168.0.200 to itself on port 3000 (remotely speaking, localhost:3000) will be sent over the tunnel to the local machine and then on to irc.freenode.net on port 6667, thus, in this example, allowing the use of IRC programs on the remote host to be used, even if port 6667 would normally be blocked to it.&lt;br /&gt;
&lt;br /&gt;
Both local and remote forwarding can be used to provide a secure &amp;quot;gateway,&amp;quot; allowing other computers to take advantage of an SSH tunnel, without actually running SSH or the SSH daemon by providing a bind-address for the start of the tunnel as part of the forwarding specification, e.g. {{Ic|&amp;lt;tunnel address&amp;gt;:&amp;lt;tunnel port&amp;gt;:&amp;lt;destination address&amp;gt;:&amp;lt;destination port&amp;gt;}}. The {{Ic|&amp;lt;tunnel address&amp;gt;}} can be any address on the machine at the start of the tunnel, {{Ic|localhost}}, {{Ic|*}} (or blank), which, respectively, allow connections via the given address, via the loopback interface, or via any interface. By default, forwarding is limited to connections from the machine at the &amp;quot;beginning&amp;quot; of the tunnel, i.e. the {{Ic|&amp;lt;tunnel address&amp;gt;}} is set to {{Ic|localhost}}. Local forwarding requires no additional configuration, however remote forwarding is limited by the remote server&#039;s SSH daemon configuration. See the {{Ic|GatewayPorts}} option in {{Ic|sshd_config(5)}} for more information.&lt;br /&gt;
&lt;br /&gt;
=== マルチプレクス ===&lt;br /&gt;
&lt;br /&gt;
The SSH daemon usually listens on port 22. However, it is common practice for many public internet hotspots to block all traffic that is not on the regular HTTP/S ports (80 and 443, respectively), thus effectively blocking SSH connections. The immediate solution for this is to have {{ic|sshd}} listen additionally on one of the whitelisted ports:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ssh/sshd_config|&lt;br /&gt;
Port 22&lt;br /&gt;
Port 443&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
However, it is likely that port 443 is already in use by a web server serving HTTPS content, in which case it is possible to use a multiplexer, such as {{Pkg|sslh}}, which listens on the multiplexed port and can intelligently forward packets to many services.&lt;br /&gt;
&lt;br /&gt;
=== SSH の高速化 ===&lt;br /&gt;
&lt;br /&gt;
同一のホストのセッションは全て単一の接続を使うようにすることで、後のログインを劇的に高速化することができます。{{ic|/etc/ssh/ssh_config}} や {{ic|$HOME/.ssh/config}} の適当なホストの下に以下の行を追加してください:&lt;br /&gt;
 Host examplehost.com&lt;br /&gt;
   ControlMaster auto&lt;br /&gt;
   ControlPersist yes&lt;br /&gt;
   ControlPath ~/.ssh/socket-%r@%h:%p&lt;br /&gt;
&lt;br /&gt;
上記のオプションの詳しい説明は {{ic|ssh_config(5)}} マニュアルページを見て下さい。&lt;br /&gt;
&lt;br /&gt;
速度を向上させる別のオプションとして圧縮を有効化する {{ic|-C}} フラグがあります。{{ic|/etc/ssh/ssh_config}} の適切なホストの下に次の行を追加することで永続的に設定することができます:&lt;br /&gt;
 Compression yes&lt;br /&gt;
{{Warning|{{ic|man ssh}} states that &amp;quot;&#039;&#039;Compression is desirable on modem lines and other slow connections, but will only slow down things on fast networks&#039;&#039;&amp;quot;. This tip might be counterproductive depending on your network configuration.}}&lt;br /&gt;
&lt;br /&gt;
Login time can be shortened by using the {{ic|-4}} flag, which bypasses IPv6 lookup. This can be made permanent by adding this line under the proper host in {{ic|/etc/ssh/ssh_config}}:&lt;br /&gt;
 AddressFamily inet&lt;br /&gt;
&lt;br /&gt;
Changing the ciphers used by SSH to less cpu-demanding ones can improve speed. In this respect, the best choices are arcfour and blowfish-cbc.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please do not do this unless you know what you are doing; arcfour has a number of known weaknesses.}}&lt;br /&gt;
&lt;br /&gt;
To use alternative ciphers, run SSH with the {{ic|-c}} flag:&lt;br /&gt;
 $ ssh -c arcfour,blowfish-cbc user@server-address&lt;br /&gt;
&lt;br /&gt;
To use them permanently, add this line under the proper host in {{ic|/etc/ssh/ssh_config}}:&lt;br /&gt;
 Ciphers arcfour,blowfish-cbc&lt;br /&gt;
&lt;br /&gt;
=== SSHFS でリモートファイルシステムをマウントする ===&lt;br /&gt;
sshfs を使って (SSH でアクセスした) リモートのファイルシステムをローカルフォルダにマウントする方法は [[Sshfs]] の記事を参照してください。マウントしたファイルは様々なツールであらゆる操作することができます (コピー、名前の変更、vim で編集など)。基本的に shfs よりも sshfs を使用することを推奨します。sshfs は shfs の新しいバージョンであり、元の shfs は2004年から更新されていません。&lt;br /&gt;
&lt;br /&gt;
=== Keep alive ===&lt;br /&gt;
一定時間操作がないと ssh セッションは自動的にログアウトします。接続を維持するには以下をクライアントの {{ic|~/.ssh/config}} か {{ic|/etc/ssh/ssh_config}} に追加してください:&lt;br /&gt;
&lt;br /&gt;
 ServerAliveInterval 120&lt;br /&gt;
&lt;br /&gt;
これで120秒ごとに &amp;quot;keep alive&amp;quot; シグナルがサーバーに送信されます。&lt;br /&gt;
&lt;br /&gt;
反対に、外部からの接続を維持するには、次をサーバーの {{ic|/etc/ssh/sshd_config}} に設定します (数字は0より大きく):&lt;br /&gt;
 &lt;br /&gt;
 ClientAliveInterval 120&lt;br /&gt;
&lt;br /&gt;
=== ssh の設定に接続データを保存する ===&lt;br /&gt;
Whenever you want to connect to a ssh server, you usually have to type at least its address and the username. To save that typing work for servers you regularly connect to, you can use the personal {{ic|~/.ssh/config}} or the global {{ic|/etc/ssh/ssh_config}} files as shown in the following example:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.ssh/config|&lt;br /&gt;
Host myserver&lt;br /&gt;
    HostName 123.123.123.123&lt;br /&gt;
    Port 12345&lt;br /&gt;
    User bob&lt;br /&gt;
    IdentityFile ~/.ssh/some_key_file&lt;br /&gt;
Host other_server&lt;br /&gt;
    HostName test.something.org&lt;br /&gt;
    User alice&lt;br /&gt;
    CheckHostIP no&lt;br /&gt;
    Cipher blowfish&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Now you can simply connect to the server by using the name you specified:&lt;br /&gt;
&lt;br /&gt;
 $ ssh myserver&lt;br /&gt;
&lt;br /&gt;
To see a complete list of the possible options, check out ssh_config&#039;s manpage on your system or the [http://www.openbsd.org/cgi-bin/man.cgi?query=ssh_config ssh_config documentation] on the official website.&lt;br /&gt;
&lt;br /&gt;
=== systemd で SSH トンネルを自動的に再起動 ===&lt;br /&gt;
&lt;br /&gt;
[[systemd]] を使ってブート時/ログイン時に SSH 接続を自動的に開始して、接続が失敗した時に再起動させることができます。SSH トンネルの管理に役立つツールとなります。&lt;br /&gt;
&lt;br /&gt;
以下のサービスでは、[[#ssh の設定に接続データを保存する|ssh の設定]]に保存された接続設定を使って、ログイン時に SSH トンネルを開始します。接続が何らかの理由で閉じられた場合、10秒待機してから再起動します:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/systemd/user/tunnel.service|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=SSH tunnel to myserver&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
Restart=always&lt;br /&gt;
RestartSec=10&lt;br /&gt;
ExecStart=/usr/bin/ssh -F %h/.ssh/config -N myserver&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
上記のユーザーサービスを[[有効化]]して[[起動]]してください。トンネルがタイムアウトするのを防ぐ方法は [[#Keep alive]] を見て下さい。起動時にトンネルを開始したい場合、ユニットをシステムサービスとして書きなおして下さい。&lt;br /&gt;
&lt;br /&gt;
=== Autossh - SSH セッションとトンネルの自動再起動 ===&lt;br /&gt;
ネットワークの状態が悪かったりしてクライアントが切断してしまい、セッションやトンネルの接続を維持できない場合、[http://www.harding.motd.ca/autossh/ Autossh] を使って自動的にセッションとトンネルを再起動できます。Autossh は[[公式リポジトリ]]からインストールできます。&lt;br /&gt;
&lt;br /&gt;
使用例:&lt;br /&gt;
 $ autossh -M 0 -o &amp;quot;ServerAliveInterval 45&amp;quot; -o &amp;quot;ServerAliveCountMax 2&amp;quot; username@example.com&lt;br /&gt;
[[sshfs]] を組み合わせる:&lt;br /&gt;
 $ sshfs -o reconnect,compression=yes,transform_symlinks,ServerAliveInterval=45,ServerAliveCountMax=2,ssh_command=&#039;autossh -M 0&#039; username@example.com: /mnt/example &lt;br /&gt;
[[プロキシ設定]]で設定した SOCKS プロクシを使って接続:&lt;br /&gt;
 $ autossh -M 0 -o &amp;quot;ServerAliveInterval 45&amp;quot; -o &amp;quot;ServerAliveCountMax 2&amp;quot; -NCD 8080 username@example.com &lt;br /&gt;
With the {{ic|-f}} option autossh can be made to run as a background process. Running it this way however means the passprase cannot be entered interactively.&lt;br /&gt;
&lt;br /&gt;
The session will end once you type {{ic|exit}} in the session, or the autossh process receives a SIGTERM, SIGINT of SIGKILL signal.&lt;br /&gt;
&lt;br /&gt;
==== systemd を使ってブート時に自動的に Autossh を起動する ====&lt;br /&gt;
If you want to automatically start autossh, it is now easy to get systemd to manage this for you. For example, you could create a systemd unit file like this:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=AutoSSH service for port 2222&lt;br /&gt;
 After=network.target&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 Environment=&amp;quot;AUTOSSH_GATETIME=0&amp;quot;&lt;br /&gt;
 ExecStart=/usr/bin/autossh -M 0 -NL 2222:localhost:2222 -o TCPKeepAlive=yes foo@bar.com&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
Here {{ic|1=AUTOSSH_GATETIME=0}} is an environment variable specifying how long ssh must be up before autossh considers it a successful connection, setting it to 0 autossh also ignores the first run failure of ssh. This may be useful when running autossh at boot. Other environment variables are available on the manpage. Of course, you can make this unit more complex if necessary (see the systemd documentation for details), and obviously you can use your own options for autossh, but note that the {{ic|-f}} implying {{ic|1=AUTOSSH_GATETIME=0}} does not work with systemd.&lt;br /&gt;
&lt;br /&gt;
Then place this in, for example, /etc/systemd/system/autossh.service. Afterwards, you can then enable your autossh tunnels with, e.g.:&lt;br /&gt;
&lt;br /&gt;
 $ systemctl start autossh&lt;br /&gt;
(or whatever you called the service file)&lt;br /&gt;
&lt;br /&gt;
If this works OK for you, you can make this permanent by running&lt;br /&gt;
&lt;br /&gt;
 $ systemctl enable autossh&lt;br /&gt;
&lt;br /&gt;
That way autossh will start automatically at boot.&lt;br /&gt;
&lt;br /&gt;
It is also easy to maintain several autossh processes, to keep several tunnels alive. Just create multiple .service files with different names.&lt;br /&gt;
&lt;br /&gt;
== ソケットアクティベーションで SSH ポート番号を変更する (sshd.socket) ==&lt;br /&gt;
&lt;br /&gt;
次の内容で {{ic|/etc/systemd/system/sshd.socket.d/port.conf}} ファイルを作成:&lt;br /&gt;
&lt;br /&gt;
 [Socket]&lt;br /&gt;
 # Disable default port&lt;br /&gt;
 ListenStream=&lt;br /&gt;
 # Set new port&lt;br /&gt;
 ListenStream=12345&lt;br /&gt;
&lt;br /&gt;
リロードすれば systemd は自動的に新しいポートを開きます:&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
=== チェックリスト ===&lt;br /&gt;
&lt;br /&gt;
以下は最初に行うべきトラブルシューティングのチェックリストです。何かする前に以下の問題をチェックすることを推奨します。&lt;br /&gt;
&lt;br /&gt;
==== SSH の設定を確認 ====&lt;br /&gt;
&lt;br /&gt;
1. クライアントとサーバーの {{ic|~/.ssh}} フォルダにユーザーがアクセスできるようにする:&lt;br /&gt;
&lt;br /&gt;
 $ chmod 700 /home/USER/.ssh&lt;br /&gt;
 $ chmod 600 /home/USER/.ssh/*&lt;br /&gt;
&lt;br /&gt;
2. ライアントとサーバーの {{ic|~/.ssh}} フォルダにある全てのファイルの所有者がユーザーになっていることを確認:&lt;br /&gt;
&lt;br /&gt;
 $ chown -R USER: /home/USER/.ssh&lt;br /&gt;
&lt;br /&gt;
3. クライアントの公開鍵を確認。サーバーの {{ic|authorized_keys}} やユーザーの {{ic|~/.ssh/}} ファイルにある {{ic|id_rsa.pub}} ファイルなど。&lt;br /&gt;
&lt;br /&gt;
4. {{ic|/etc/ssh/sshd_config}} の {{ic|AllowUsers or AllowGroups}} オプションで SSH のアクセスが制限されていないか確認。&lt;br /&gt;
&lt;br /&gt;
5. ユーザーにパスワードが設定されていることを確認。新しいユーザーを追加したあとパスワードが設定されていなかったり一度もログインされてなかったりすることがあります。&lt;br /&gt;
&lt;br /&gt;
==== SSH を再起動 + ユーザーの再ログイン ====&lt;br /&gt;
&lt;br /&gt;
6. {{ic|sshd}} (サーバー) を[[再起動]]。&lt;br /&gt;
&lt;br /&gt;
7. クライアントとホスト、両方でユーザー (シェル) の再ログイン。&lt;br /&gt;
&lt;br /&gt;
==== 期限切れのキーを削除 (任意) ====&lt;br /&gt;
&lt;br /&gt;
8. Delete old/invalid key rows in server&#039;s {{ic|~/.ssh/authorized_keys}} file.&lt;br /&gt;
&lt;br /&gt;
9. Delete old/invalid private and public keys within the clients {{ic|~/.ssh}} folder.&lt;br /&gt;
&lt;br /&gt;
==== 推奨事項 ====&lt;br /&gt;
&lt;br /&gt;
10. Keep as few keys as possible in user&#039;s {{ic|~/.ssh/authorized_keys}} file on the server.&lt;br /&gt;
&lt;br /&gt;
11. Secure server&#039;s {{ic|/home/USER/.ssh/authorized_keys}} file against manipulation:&lt;br /&gt;
&lt;br /&gt;
 $ chmod 400 /home/USER/.ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
=== 電源オフ/再起動した後も SSH 接続が残ってしまう ===&lt;br /&gt;
systemd が sshd の前に network を停止してしまうと電源を切った後も SSH 接続が繋がったままになります。この問題を修正するには、{{ic|After}} ステートメントを修正してください:&lt;br /&gt;
{{hc|/usr/lib/systemd/system/systemd-user-sessions.service|2=&lt;br /&gt;
#After=remote-fs.target&lt;br /&gt;
After=network.target}}&lt;br /&gt;
&lt;br /&gt;
=== 接続が拒否されるまたはタイムアウトする ===&lt;br /&gt;
&lt;br /&gt;
==== ルーターがポートフォワーディングをしていないか？ ====&lt;br /&gt;
&lt;br /&gt;
SKIP THIS STEP IF YOU ARE NOT BEHIND A NAT MODEM/ROUTER (eg, a VPS or otherwise publicly addressed host). Most home and small businesses will have a NAT modem/router.&lt;br /&gt;
&lt;br /&gt;
The first thing is to make sure that your router knows to forward any incoming ssh connection to your machine. Your external IP is given to you by your ISP, and it is associated with any requests coming out of your router. So your router needs to know that any incoming ssh connection to your external IP needs to be forwarded to your machine running sshd.&lt;br /&gt;
&lt;br /&gt;
Find your internal network address.&lt;br /&gt;
&lt;br /&gt;
 ip a&lt;br /&gt;
&lt;br /&gt;
Find your interface device and look for the inet field. Then access your router&#039;s configuration web interface, using your router&#039;s IP (find this on the web). Tell your router to forward it to your inet IP. Go to [http://portforward.com/] for more instructions on how to do so for your particular router.&lt;br /&gt;
&lt;br /&gt;
==== SSH が動作しているか？ ====&lt;br /&gt;
 $ ss -tnlp&lt;br /&gt;
&lt;br /&gt;
上記のコマンドで SSH ポートが開いていると表示されない場合、SSH は動作していません。{{ic|/var/log/messages}} にエラーがないか確認してください。&lt;br /&gt;
&lt;br /&gt;
==== 接続をブロックするようなファイアウォールのルールが存在しないか？ ====&lt;br /&gt;
&lt;br /&gt;
[[iptables]] によってポート {{ic|22}} の接続がブロックされている可能性があります。次のコマンドで確認してください:&lt;br /&gt;
{{bc|# iptables -nvL}}&lt;br /&gt;
{{ic|INPUT}} チェインのパケットを拒否するようなルールがないか見て下さい。そして、必要であれば、次のようなコマンドでポートのブロックを解除します:&lt;br /&gt;
{{bc|&lt;br /&gt;
# iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT&lt;br /&gt;
}}&lt;br /&gt;
ファイアウォールの設定に関する詳細は[[ファイアウォール]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
==== Is the traffic even getting to your computer? ====&lt;br /&gt;
Start a traffic dump on the computer you&#039;re having problems with:&lt;br /&gt;
&lt;br /&gt;
 # tcpdump -lnn -i any port ssh and tcp-syn&lt;br /&gt;
&lt;br /&gt;
This should show some basic information, then wait for any matching traffic to happen before displaying it. Try your connection now. If you do not see any output when you attempt to connect, then something outside of your computer is blocking the traffic (e. g., hardware firewall, NAT router etc.).&lt;br /&gt;
&lt;br /&gt;
==== ISP またはサードパーティによってデフォルトのポートがブロックされてないか？ ====&lt;br /&gt;
{{Note|このステップは次のことを確認した後で実行してください。ファイアーウォールを何も起動していないこと。DMZ へのルータを正しく設定している、またはコンピュータへポートを転送していること。それでもまだ動かない場合。ここで診断のステップと解決法が見つかるでしょう。}}&lt;br /&gt;
&lt;br /&gt;
ときどき ISP（インターネット・サービス・プロバイダ）が SSH のデフォルトポート（22番）をブロックしている場合があります。この場合はあなたが何をしても（ポートを開ける、スタックを強化する、フラッドアタックを防御する、など）無意味になります。これを確認するためには、全てのインターフェイス（0.0.0.0）をリッスンする sshd を立ち上げ、リモートから接続してみます。&lt;br /&gt;
&lt;br /&gt;
このようなエラーメッセージが出る場合：&lt;br /&gt;
 ssh: connect to host www.inet.hr port 22: Connection refused&lt;br /&gt;
&lt;br /&gt;
これはそのポートが ISP にブロックされていないが、サーバのそのポートで SSH が起動していないことを意味します&lt;br /&gt;
（[[wikipedia:Security_through_obscurity|security through obscurity]] を参照）。&lt;br /&gt;
&lt;br /&gt;
しかし、次のようなエラーメッセージが出る場合：&lt;br /&gt;
 ssh: connect to host 111.222.333.444 port 22: Operation timed out &lt;br /&gt;
&lt;br /&gt;
これは何かがポート 22 での TCP トラフィックを拒否（reject）していることを意味します。そのポートはあなたのサーバ上のファイアーウォールか第三者（ISP など）のどちらかによってステルスされています。自分のサーバでファイアーウォールが起動していないことが確かなら、またルータやスイッチの中でグレムリンが育っていないことが確かなら、ISP がトラフィックをブロックしています。&lt;br /&gt;
&lt;br /&gt;
ダブルチェックのために、サーバ上で Wireshark を起動を起動してポート 22 でのトラフィックをリッスンしてみましょう。Wireshark はレイヤ 2 のパケット・スニファリング・ユーティリティであり、TCP/UDP はレイヤ 3 以上なので（[[wikipedia:Internet protocol suite|IP Network stack]]を参照）、もしリモートから接続するときに何も受け取っていなければ、十中八九、第三者がブロックしています。&lt;br /&gt;
&lt;br /&gt;
===== 問題診断 =====&lt;br /&gt;
{{Pkg|tcpdump}} または {{Pkg|wireshark-cli}} パッケージの Wireshark を[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
tcpdump の場合:&lt;br /&gt;
 # tcpdump -ni &#039;&#039;interface&#039;&#039; &amp;quot;port 22&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wireshark の場合:&lt;br /&gt;
 $ tshark -f &amp;quot;tcp port 22&amp;quot; -i &#039;&#039;interface&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{ic|&#039;&#039;interface&#039;&#039;}} は WAN 接続に使っているネットワークインターフェイスに置き換えてください (確認したいときは {{ic|ip a}} を実行)。リモートで接続を試行してもパケットが全く受け取れない場合、ISP によってポート 22 のトラフィックがブロックされている可能性があります。&lt;br /&gt;
&lt;br /&gt;
===== 解決方法 =====&lt;br /&gt;
解決方法は、単に ISP がブロックしていない他のポートを使うことです。{{ic|/etc/ssh/sshd_config}} を編集して他のポートを使うようにしましょう。例えば次を追加します：&lt;br /&gt;
&lt;br /&gt;
 Port 22&lt;br /&gt;
 Port 1234&lt;br /&gt;
&lt;br /&gt;
そしてこのファイル中の他の Port 設定をコメントアウトします。「Port 22」をコメントにして「Port 1234」を追加するだけでは、sshd がポート 1234 しかリッスンしなくなるので、この問題は解決しません。この 2 行どちらも使用し、sshd が両方のポートをリッスンするようにします。&lt;br /&gt;
&lt;br /&gt;
あとは {{ic|systemctl restart sshd.service}} で sshd を起動するだけです。そして ssh クライアントでも同じポートに変更します。これには多くの手段がありますが、その中の 2 つだけを見てみましょう。&lt;br /&gt;
&lt;br /&gt;
==== Read from socket failed: connection reset by peer ====&lt;br /&gt;
最近の openssh のバージョンでは、楕円曲線暗号関連のバグのせいで、上記のエラーメッセージで接続が失敗することがあります。その場合 {{ic|~/.ssh/config}} に次の行を追加してください:&lt;br /&gt;
&lt;br /&gt;
 HostKeyAlgorithms ssh-rsa-cert-v01@openssh.com,ssh-dss-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-dss-cert-v00@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-rsa,ssh-dss&lt;br /&gt;
&lt;br /&gt;
openssh 5.9 では、上記の修正方法は働きません。代わりに、{{ic|~/.ssh/config}} に以下の行を記述してください:&lt;br /&gt;
&lt;br /&gt;
 Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc &lt;br /&gt;
 MACs hmac-md5,hmac-sha1,hmac-ripemd160&lt;br /&gt;
&lt;br /&gt;
openssh バグフォーラムの [http://www.gossamer-threads.com/lists/openssh/dev/51339 議論] も参照。&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;[your shell]: No such file or directory&amp;quot; / ssh_exchange_identification problem ===&lt;br /&gt;
One possible cause for this is the need of certain SSH clients to find an absolute path (one returned by {{Ic|whereis -b [your shell]}}, for instance) in {{Ic|$SHELL}}, even if the shell&#039;s binary is located in one of the {{Ic|$PATH}} entries.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Terminal unknown&amp;quot; や &amp;quot;Error opening terminal&amp;quot; エラーメッセージ===&lt;br /&gt;
ssh でログイン時に &amp;quot;Terminal unknown&amp;quot; のようなエラーが表示されることがあります。nano などの ncurses アプリケーションを実行すると &amp;quot;Error opening terminal&amp;quot; というメッセージが表示されます。この問題を解決する方法は2つあります。{{ic|$TERM}} 変数を使って簡単に修正する方法と terminfo ファイルを使って根本的に解決する方法です。&lt;br /&gt;
&lt;br /&gt;
====$TERM 変数を設定する解決策====&lt;br /&gt;
リモートサーバーに接続した後に以下のコマンドを使って {{ic|$TERM}} 変数を &amp;quot;xterm&amp;quot; に設定してください:&lt;br /&gt;
&lt;br /&gt;
 $ TERM&amp;amp;#61;xterm&lt;br /&gt;
&lt;br /&gt;
この方法はあくまで次善策であり、たまにしか接続しない ssh サーバーで使うようにしてください。良くない副作用があるからです。また、接続するたびにコマンドを実行する必要があります。もしくは {{ic|~.bashrc}} で設定してください。&lt;br /&gt;
&lt;br /&gt;
====terminfo ファイルを使う解決策====&lt;br /&gt;
A profound solution is transferring the terminfo file of the terminal on your client computer to the ssh server. In this example we cover how to setup the terminfo file for the &amp;quot;rxvt-unicode-256color&amp;quot; terminal.&lt;br /&gt;
Create the directory containing the terminfo files on the ssh server, while you are logged in to the server issue this command:&lt;br /&gt;
&lt;br /&gt;
 $ mkdir -p ~/.terminfo/r/&lt;br /&gt;
&lt;br /&gt;
Now copy the terminfo file of your terminal to the new directory. Replace {{ic|rxvt-unicode-256color}} with your client&#039;s terminal in the following command and {{ic|ssh-server}} with the relevant user and server adress.&lt;br /&gt;
&lt;br /&gt;
 $ scp /usr/share/terminfo/r/&#039;&#039;rxvt-unicode-256color&#039;&#039; ssh-server:~/.terminfo/r/&lt;br /&gt;
&lt;br /&gt;
After logging in and out from the ssh server the problem should be fixed.&lt;br /&gt;
&lt;br /&gt;
=== Connection closed by x.x.x.x [preauth] ===&lt;br /&gt;
sshd のログでこのエラーが確認できる場合、HostKey が正しく設定されているか確認してください:&lt;br /&gt;
 HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
&lt;br /&gt;
=== OpenSSH 7.0 によって id_dsa が拒否される ===&lt;br /&gt;
&lt;br /&gt;
OpenSSH 7.0 では ssh-dss が無効になっており、http://www.openssh.com/legacy.html には id_dsa 鍵が使われている場合にサーバーにアクセスする方法が書かれていません:&lt;br /&gt;
&lt;br /&gt;
 PubkeyAcceptedKeyTypes +ssh-dss&lt;br /&gt;
&lt;br /&gt;
While this can be added a per host basis or with -o, to make sure &amp;quot;ProxyCommand ssh&amp;quot; still works, add it to ssh_config.&lt;br /&gt;
&lt;br /&gt;
=== no matching key exchange method found by OpenSSH 7.0 ===&lt;br /&gt;
&lt;br /&gt;
OpenSSH 7.0 also deprecated the key algorithm diffie-hellman-group1-sha1, as we could see in http://www.openssh.com/legacy.html.&lt;br /&gt;
&lt;br /&gt;
If the client and server are unable to agree on a mutual set of parameters then the connection will fail. OpenSSH (7.0 and greater) will produce an error message like this:&lt;br /&gt;
&lt;br /&gt;
  Unable to negotiate with 127.0.0.1: no matching key exchange method found.&lt;br /&gt;
  Their offer: diffie-hellman-group1-sha1&lt;br /&gt;
&lt;br /&gt;
In this case, the client and server were unable to agree on the key exchange algorithm. The server offered only a single method diffie-hellman-group1-sha1. OpenSSH supports this method, but does not enable it by default because is weak and within theoretical range of the so-called Logjam attack.&lt;br /&gt;
&lt;br /&gt;
The best resolution for these failures is to upgrade the software at the other end. OpenSSH only disables algorithms that we actively recommend against using because they are known to be weak. In some cases, this might not be immediately possible so you may need to temporarily re-enable the weak algorithms to retain access.&lt;br /&gt;
&lt;br /&gt;
For the case of the above error message, OpenSSH can be configured to enable the diffie-hellman-group1-sha1 key exchange algorithm (or any other that is disabled by default) using the KexAlgorithm option - either on the command-line:&lt;br /&gt;
&lt;br /&gt;
  ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 user@127.0.0.1&lt;br /&gt;
&lt;br /&gt;
or in the ~/.ssh/config file:&lt;br /&gt;
&lt;br /&gt;
  Host somehost.example.org&lt;br /&gt;
  	KexAlgorithms +diffie-hellman-group1-sha1&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
*[http://www.la-samhna.de/library/brutessh.html Defending against brute force ssh attacks]&lt;br /&gt;
*IBM developerWorks の [http://www.ibm.com/developerworks/jp/linux/library/l-keyc/ OpenSSH キー （鍵） の管理: 第 1 回] と [http://www.ibm.com/developerworks/jp/linux/library/l-keyc2/ 第 2 回]&lt;br /&gt;
* [https://stribika.github.io/2015/01/04/secure-secure-shell.html Secure Secure Shell]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Pacman/%E3%83%92%E3%83%B3%E3%83%88%E3%81%A8%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF&amp;diff=4524</id>
		<title>Pacman/ヒントとテクニック</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Pacman/%E3%83%92%E3%83%B3%E3%83%88%E3%81%A8%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF&amp;diff=4524"/>
		<updated>2015-12-26T23:08:05Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: /* シェルの設定 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:パッケージ管理]]&lt;br /&gt;
[[en:Pacman tips]]&lt;br /&gt;
[[es:Pacman tips]]&lt;br /&gt;
[[fr:Astuces Pacman]]&lt;br /&gt;
[[it:Pacman Tips]]&lt;br /&gt;
[[ru:Pacman tips]]&lt;br /&gt;
[[tr:Pacman ipuçları]]&lt;br /&gt;
[[zh-CN:Pacman Tips]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|pacman}}&lt;br /&gt;
{{Related|pacman のパフォーマンスの向上}}&lt;br /&gt;
{{Related|ミラー}}&lt;br /&gt;
{{Related|パッケージの作成}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
[[pacman]] を新しく使い始めた人向けのヒント集。&lt;br /&gt;
&lt;br /&gt;
== 外観と利便性の向上 ==&lt;br /&gt;
&lt;br /&gt;
=== カラー出力 ===&lt;br /&gt;
&lt;br /&gt;
バージョン 4.1 から Pacman にはカラーオプションが付きました。{{ic|pacman.conf}} の中の &amp;quot;Color&amp;quot; という行をアンコメントしてください。&lt;br /&gt;
&lt;br /&gt;
=== ショートカット ===&lt;br /&gt;
&lt;br /&gt;
以下では、よく使われる pacman コマンドの入力の手間を省くスクリプトエイリアスを説明しています。&lt;br /&gt;
&lt;br /&gt;
==== シェルの設定 ====&lt;br /&gt;
&lt;br /&gt;
以下の例を追加して下さい、[[Bash]] と [[Zsh]] のどちらでも動作します:&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
# pacman エイリアスの例&lt;br /&gt;
alias pacupg=&amp;quot;sudo pacman -Syu&amp;quot;     # リポジトリと同期し、古くなっているパッケージをアップデートする&lt;br /&gt;
alias pacdl=&amp;quot;pacman -Sw&amp;quot;            # 指定パッケージを .tar.xz としてダウンロードする&lt;br /&gt;
alias pacin=&amp;quot;sudo pacman -S&amp;quot;        # リポジトリからパッケージをインストールする&lt;br /&gt;
alias pacins=&amp;quot;sudo pacman -U&amp;quot;       # ファイルからパッケージをインストールする &lt;br /&gt;
alias pacre=&amp;quot;sudo pacman -R&amp;quot;        # 指定パッケージを削除する。その設定と依存関係は維持される。&lt;br /&gt;
alias pacrem=&amp;quot;sudo pacman -Rns&amp;quot;     # 指定パッケージとその設定、不要な依存関係を削除する&lt;br /&gt;
alias pacrep=&amp;quot;pacman -Si&amp;quot;           # リポジトリ内の指定パッケージに関する情報を表示する&lt;br /&gt;
alias pacreps=&amp;quot;pacman -Ss&amp;quot;          # リポジトリからパッケージを検索する&lt;br /&gt;
alias pacloc=&amp;quot;pacman -Qi&amp;quot;           # ローカルデータベース内の指定パッケージに関する情報を表示する&lt;br /&gt;
alias paclocs=&amp;quot;pacman -Qs&amp;quot;          # ローカルデータベースからパッケージを検索する&lt;br /&gt;
alias paclo=&amp;quot;pacman -Qdt&amp;quot;           # 全ての孤児パッケージを表示する&lt;br /&gt;
alias pacc=&amp;quot;sudo pacman -Scc&amp;quot;       # キャッシュ中の全パッケージを削除する&lt;br /&gt;
alias paclf=&amp;quot;pacman -Ql&amp;quot;            # 指定パッケージによりインストールされたファイルのリストを表示する&lt;br /&gt;
alias pacown=&amp;quot;pacman -Qo&amp;quot;           # 指定ファイルを所有するパッケージを表示する&lt;br /&gt;
alias pacexpl=&amp;quot;pacman -D --asexp&amp;quot;   # 1個以上のインストール済みパッケージを「明示的にインストールされた」とマークする &lt;br /&gt;
alias pacimpl=&amp;quot;pacman -D --asdep&amp;quot;   # 1個以上のインストール済みパッケージを「依存関係によりインストールされた」とマークする&lt;br /&gt;
&lt;br /&gt;
# さらなる pacman エイリアスの例&lt;br /&gt;
alias pacupd=&amp;quot;sudo pacman -Sy &amp;amp;&amp;amp; sudo abs&amp;quot;         # ローカルのパッケージと ABS のデータベースをリポジトリと同期する&lt;br /&gt;
alias pacinsd=&amp;quot;sudo pacman -S --asdeps&amp;quot;            # 指定パッケージを依存関係としてインストールする&lt;br /&gt;
alias pacmir=&amp;quot;sudo pacman -Syy&amp;quot;                    # /etc/pacman.d/mirrorlist を更新した後でパッケージのリストを強制的にリフレッシュする&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
以下のコマンドも便利ですが、危険でもあります。使用する時は、何が起こるのか完全に理解するようにしてください:&lt;br /&gt;
&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
# 以下の pacman のメッセージに対処する:&lt;br /&gt;
# &lt;br /&gt;
#     error: couldnt lock database: file exists&lt;br /&gt;
#     if you are sure a package manager is not already running, you can remove /var/lib/pacman/db.lck&lt;br /&gt;
&lt;br /&gt;
alias pacunlock=&amp;quot;sudo rm /var/lib/pacman/db.lck&amp;quot;   # ロックファイル /var/lib/pacman/db.lck を削除する&lt;br /&gt;
alias paclock=&amp;quot;sudo touch /var/lib/pacman/db.lck&amp;quot;  # ロックファイル /var/lib/pacman/db.lck を作成する&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== 使用方法 ====&lt;br /&gt;
&lt;br /&gt;
エイリアスの名前を入力するだけでそれぞれのコマンドが実行できます。例えば、リポジトリを同期して古くなっているパッケージをアップグレードするには:&lt;br /&gt;
 $ pacupg&lt;br /&gt;
リポジトリからパッケージをインストール:&lt;br /&gt;
 $ pacin &amp;lt;package1&amp;gt; &amp;lt;package2&amp;gt; &amp;lt;package3&amp;gt;&lt;br /&gt;
カスタムビルドパッケージをインストール:&lt;br /&gt;
 $ pacins /path/to/&amp;lt;package&amp;gt;&lt;br /&gt;
インストールしたパッケージを完全に削除:&lt;br /&gt;
 $ pacrem &amp;lt;package&amp;gt;&lt;br /&gt;
リポジトリからパッケージを検索:&lt;br /&gt;
 $ pacreps &amp;lt;keywords&amp;gt;&lt;br /&gt;
リポジトリにあるパッケージの情報 (サイズ、依存関係など) を表示:&lt;br /&gt;
 $ pacrep &amp;lt;keywords&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ノート ====&lt;br /&gt;
&lt;br /&gt;
上記のエイリアスは例にすぎません。構文サンプルに従って、便利なようにエイリアスの名前を変えることが可能です。例えば:&lt;br /&gt;
&lt;br /&gt;
 alias pacrem=&#039;sudo pacman -Rns&#039;&lt;br /&gt;
 alias pacout=&#039;sudo pacman -Rns&#039;&lt;br /&gt;
&lt;br /&gt;
上の場合、コマンド {{ic|pacrem}} と {{ic|pacout}} はどちらも同じコマンドを実行します。&lt;br /&gt;
&lt;br /&gt;
=== オペレーションと Bash 構文 ===&lt;br /&gt;
&lt;br /&gt;
pacman の標準の機能に加えて、初歩的な [[Bash]] コマンド・構文を使うことでユーザビリティを拡張する方法が存在します。&lt;br /&gt;
&lt;br /&gt;
* 名前に同じようなパターンがあるパッケージを多数インストールする必要があり、グループ全体やマッチするパッケージ全てはインストールしないとき。例えば {{Grp|kde}}:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S kde-{applets,theme,tools}&lt;br /&gt;
&lt;br /&gt;
* もちろん、これに制限はなく、拡張することができます:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S kde-{ui-{kde,kdemod},kdeartwork}&lt;br /&gt;
&lt;br /&gt;
* 場合によっては、{{Ic|-s}} が不必要な多くの結果を招いてしまうことがあります。こういうときにはパッケージの名前だけにマッチするように（説明やその他のフィールドには引っかからないように）制限をかけることが可能です:&lt;br /&gt;
&lt;br /&gt;
 # pacman -Ss &#039;^vim-&#039;&lt;br /&gt;
&lt;br /&gt;
* pacman にはバージョンカラムを隠す {{ic|-q}} オペランドがあり、&amp;quot;compiz&amp;quot; を名前の一部に含むパッケージを再インストールしたりすることが可能です:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S $(pacman -Qq | grep compiz)&lt;br /&gt;
&lt;br /&gt;
* もしくはリポジトリのパッケージ全てをインストールしてください (例: kde-unstable):&lt;br /&gt;
&lt;br /&gt;
 # pacman -S $(pacman -Slq kde-unstable)&lt;br /&gt;
&lt;br /&gt;
== メンテナンス ==&lt;br /&gt;
&lt;br /&gt;
[[The Arch Way]] に従ってシステムを清潔に保つための管理業務。&lt;br /&gt;
&lt;br /&gt;
[[システムメンテナンス]]も参照。&lt;br /&gt;
&lt;br /&gt;
=== 最後にインストールしたパッケージを表示 ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|expac}} をインストールして {{ic|&amp;lt;nowiki&amp;gt;expac --timefmt=&#039;%Y-%m-%d %T&#039; &#039;%l\t%n&#039; | sort | tail -20&amp;lt;/nowiki&amp;gt;}} または {{ic|&amp;lt;nowiki&amp;gt;expac --timefmt=%s &#039;%l\t%n&#039; | sort -n | tail -20&amp;lt;/nowiki&amp;gt;}} を実行してください。&lt;br /&gt;
&lt;br /&gt;
=== インストールしたパッケージを容量と一緒にリストアップ ===&lt;br /&gt;
&lt;br /&gt;
容量でソートしたインストール済みパッケージの一覧を見ることができます、これはハードドライブの空き容量を増やしたいときに役立ちます。&lt;br /&gt;
* {{Pkg|expac}} をインストールして {{ic|&amp;lt;nowiki&amp;gt;expac -s &amp;quot;%-30n %m&amp;quot; | sort -hk 2 | awk &#039;{printf &amp;quot;%s %.0f MiB\n&amp;quot;, $1, $2/1024/1024}&#039; | column -t&amp;lt;/nowiki&amp;gt;}} を実行する。&lt;br /&gt;
* pacgraph に -c オプションを付けて実行することで全てのインストールしたパッケージと容量のリストを作成できます。{{Pkg|pacgraph}} は [community] からインストールできます。&lt;br /&gt;
* base や base-devel に含まれていない明示的にインストールしたパッケージを容量や説明と共に一覧する: {{ic|&amp;lt;nowiki&amp;gt;expac -HM &amp;quot;%011m\t%-20n\t%10d&amp;quot; $( comm -23 &amp;lt;(pacman -Qqen|sort) &amp;lt;(pacman -Qqg base base-devel|sort) ) | sort -n&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== インストールしたパッケージをバージョンと一緒にリストアップ ===&lt;br /&gt;
&lt;br /&gt;
バグを報告したりインストールしたパッケージについて議論するときに、インストールしたパッケージのリストをパッケージのバージョンと一緒に取得する良いでしょう。&lt;br /&gt;
* 明示的にインストールしたパッケージを全て一覧する: {{ic| pacman -Qe }}。&lt;br /&gt;
* 外部からインストールしたパッケージを一覧する (通常は手動でダウンロード・インストールしたパッケージ): {{ic| pacman -Qm }}。&lt;br /&gt;
* 全てのネイティブなパッケージを一覧する (同期データベースからインストールしたパッケージ): {{ic| pacman -Qn }}.&lt;br /&gt;
* 正規表現でパッケージを一覧する: {{ic| &amp;lt;nowiki&amp;gt;pacman -Qs &amp;lt;regex&amp;gt; | awk &#039;BEGIN { RS=&amp;quot;\n&amp;quot; ; FS=&amp;quot;/&amp;quot; } { print $2 }&#039; | awk &#039;{ if(NF &amp;gt; 0) print $1, $2 }&#039;&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
* {{Pkg|expac}} をインストールして {{ic| expac -s &amp;quot;%-30n %v&amp;quot;}} を実行する&lt;br /&gt;
&lt;br /&gt;
=== アップデートを確認する ===&lt;br /&gt;
&lt;br /&gt;
Pacman には {{ic|checkupdates}} というスクリプトが付属しています。実行するのに root 権限は必要ありません。&lt;br /&gt;
&lt;br /&gt;
=== ファイルがどのパッケージにも所有されていないことを確認 ===&lt;br /&gt;
&lt;br /&gt;
pacman データベースの外のファイルを定期的にチェックすることを推奨します。これらのファイルは通例の方法を使って (例: {{ic|./configure &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install}}) でインストールしたサードパーティのアプリケーションであることが度々です。こうしたファイル（もしくはシンボリックリンク）をファイルシステムから検索するにはシンプルなスクリプトを使います:&lt;br /&gt;
&lt;br /&gt;
{{hc|pacman-disowned|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
tmp=${TMPDIR-/tmp}/pacman-disowned-$UID-$$&lt;br /&gt;
db=$tmp/db&lt;br /&gt;
fs=$tmp/fs&lt;br /&gt;
&lt;br /&gt;
mkdir &amp;quot;$tmp&amp;quot;&lt;br /&gt;
trap &#039;rm -rf &amp;quot;$tmp&amp;quot;&#039; EXIT&lt;br /&gt;
&lt;br /&gt;
pacman -Qlq | sort -u &amp;gt; &amp;quot;$db&amp;quot;&lt;br /&gt;
&lt;br /&gt;
find /etc /opt /usr ! -name lost+found \( -type d -printf &#039;%p/\n&#039; -o -print \) | sort &amp;gt; &amp;quot;$fs&amp;quot;&lt;br /&gt;
&lt;br /&gt;
comm -23 &amp;quot;$fs&amp;quot; &amp;quot;$db&amp;quot;&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
リストを生成するには:&lt;br /&gt;
&lt;br /&gt;
 $ pacman-disowned &amp;gt; non-db.txt&lt;br /&gt;
&lt;br /&gt;
各エントリを確認しないで {{ic|non-db.txt}} に載っているファイルを全て削除するのは&#039;&#039;&#039;よくありません&#039;&#039;&#039;。様々な設定ファイルやログなどがあるかもしれないので、{{Ic|grep}} を使って相互参照を広く確実に検索した後でこのリストを使うようにしてください。&lt;br /&gt;
&lt;br /&gt;
以下は役に立つワンライナーのスクリプトです。&lt;br /&gt;
&lt;br /&gt;
どのパッケージにも属していないディレクトリを表示:&lt;br /&gt;
&lt;br /&gt;
 alias pacman-disowned-dirs=&amp;quot;comm -23 &amp;lt;(sudo find / \( -path &#039;/dev&#039; -o -path &#039;/sys&#039; -o -path &#039;/run&#039; -o -path &#039;/tmp&#039; -o -path &#039;/mnt&#039; -o -path &#039;/srv&#039; -o -path &#039;/proc&#039; -o -path &#039;/boot&#039; -o -path &#039;/home&#039; -o -path &#039;/root&#039; -o -path &#039;/media&#039; -o -path &#039;/var/lib/pacman&#039; -o -path &#039;/var/cache/pacman&#039; \) -prune -o -type d -print | sed &#039;s/\([^/]\)$/\1\//&#039; | sort -u) &amp;lt;(pacman -Qlq | sort -u)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
どのパッケージにも属していないファイルを表示:&lt;br /&gt;
&lt;br /&gt;
 alias pacman-disowned-files=&amp;quot;comm -23 &amp;lt;(sudo find / \( -path &#039;/dev&#039; -o -path &#039;/sys&#039; -o -path &#039;/run&#039; -o -path &#039;/tmp&#039; -o -path &#039;/mnt&#039; -o -path &#039;/srv&#039; -o -path &#039;/proc&#039; -o -path &#039;/boot&#039; -o -path &#039;/home&#039; -o -path &#039;/root&#039; -o -path &#039;/media&#039; -o -path &#039;/var/lib/pacman&#039; -o -path &#039;/var/cache/pacman&#039; \) -prune -o -type f -print | sort -u) &amp;lt;(pacman -Qlq | sort -u)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== 孤立したパッケージの削除 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;再帰的に&#039;&#039;孤立したパッケージ（とその設定ファイル）を削除するには:&lt;br /&gt;
&lt;br /&gt;
 # pacman -Rns $(pacman -Qtdq)&lt;br /&gt;
&lt;br /&gt;
孤立したパッケージが見つからなかった場合、pacman は {{ic|error: no targets specified}} を出力します。{{ic|pacman -Rns}} に何も引数が指定されていないとこうなります。&lt;br /&gt;
&lt;br /&gt;
以下の関数を {{ic|~/.bashrc}} に挿入することで孤立したパッケージを簡単に削除できます:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.bashrc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
orphans() {&lt;br /&gt;
  if [[ ! -n $(pacman -Qdt) ]]; then&lt;br /&gt;
    echo &amp;quot;No orphans to remove.&amp;quot;&lt;br /&gt;
  else&lt;br /&gt;
    sudo pacman -Rns $(pacman -Qdtq)&lt;br /&gt;
  fi&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{Note|上記のスクリプトやコマンドは本当は孤立していないパッケージを表示する可能性があるため、実は孤立パッケージでないパッケージを削除する危険性があります。本当に孤立しているパッケージだけを削除するようにしたい場合、{{AUR|pkg_scripts}} パッケージの [http://xyne.archlinux.ca/projects/pkg_scripts/#help-message-pkg-list_true_orphans pkg-list_true_orphans] を使って下さい。}}&lt;br /&gt;
&lt;br /&gt;
=== 使用していないパッケージの削除 ===&lt;br /&gt;
&lt;br /&gt;
システムは軽いほうがメンテナンスしやすいので、ときどき明示的にインストールパッケージを眺めて、使用していないパッケージを削除するべきだと&#039;&#039;手動で&#039;&#039;選択すると良いでしょう。&lt;br /&gt;
&lt;br /&gt;
公式リポジトリに含まれているパッケージで明示的にインストールしたパッケージを表示するには:&lt;br /&gt;
&lt;br /&gt;
 $ pacman -Qen&lt;br /&gt;
&lt;br /&gt;
公式リポジトリに含まれていないパッケージで明示的にインストールしたパッケージを表示するには:&lt;br /&gt;
&lt;br /&gt;
 $ pacman -Qem&lt;br /&gt;
&lt;br /&gt;
=== base グループ以外の全てのパッケージを削除する ===&lt;br /&gt;
&lt;br /&gt;
base グループを除く全てのパッケージを削除する必要がある場合は、このワンライナーを試して下さい:&lt;br /&gt;
&lt;br /&gt;
 # pacman -R $(comm -23 &amp;lt;(pacman -Qq|sort) &amp;lt;((for i in $(pacman -Qqg base); do pactree -ul $i; done)|sort -u|cut -d &#039; &#039; -f 1))&lt;br /&gt;
&lt;br /&gt;
ソース: [https://bbs.archlinux.org/viewtopic.php?id=130176 Look at discussion here]&lt;br /&gt;
&lt;br /&gt;
ノート:&lt;br /&gt;
&lt;br /&gt;
# {{ic|comm}} requires sorted input otherwise you get e.g. {{ic|comm: file 1 is not in sorted order}}.&lt;br /&gt;
# {{ic|pactree}} prints the package name followed by what it provides. For example:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ pactree -lu logrotate|&lt;br /&gt;
logrotate&lt;br /&gt;
popt&lt;br /&gt;
glibc&lt;br /&gt;
linux-api-headers&lt;br /&gt;
tzdata&lt;br /&gt;
dcron cron&lt;br /&gt;
bash&lt;br /&gt;
readline&lt;br /&gt;
ncurses&lt;br /&gt;
gzip}}&lt;br /&gt;
&lt;br /&gt;
The {{ic|dcron cron}} line seems to cause problems, that is why {{ic|cut -d &#039; &#039; -f 1}} is needed - to keep just the package name.&lt;br /&gt;
&lt;br /&gt;
=== 公式にインストールされたパッケージのみを一覧する ===&lt;br /&gt;
&lt;br /&gt;
 $ pacman -Qqn&lt;br /&gt;
&lt;br /&gt;
同期データベースに存在するパッケージを一覧します。非公式のリポジトリを設定している場合は、そのリポジトリからインストールしたパッケージも表示されます。&lt;br /&gt;
&lt;br /&gt;
=== 複数のパッケージの依存パッケージ一覧を取得 ===&lt;br /&gt;
&lt;br /&gt;
Dependencies are alphabetically sorted and doubles are removed.&lt;br /&gt;
Note that you can use {{ic|pacman -Qi}} to improve response time a little. But&lt;br /&gt;
you will not be able to query as many packages. Unfound packages are simply skipped&lt;br /&gt;
(hence the {{ic|2&amp;gt;/dev/null}}).&lt;br /&gt;
You can get dependencies of AUR packages as well if you use {{ic|yaourt -Si}},&lt;br /&gt;
but it will slow down the queries.&lt;br /&gt;
&lt;br /&gt;
 $ pacman -Si $@ 2&amp;gt;/dev/null | awk -F &amp;quot;: &amp;quot; -v filter=&amp;quot;^Depends&amp;quot; \ &#039;$0 ~ filter {gsub(/[&amp;gt;=&amp;lt;][^ ]*/,&amp;quot;&amp;quot;,$2) ; gsub(/ +/,&amp;quot;\n&amp;quot;,$2) ; print $2}&#039; | sort -u&lt;br /&gt;
&lt;br /&gt;
もしくは、{{ic|expac}} を使うことも可能です: {{ic|expac -l &#039;\n&#039; %E -S $@ &amp;amp;#124; sort -u}}。&lt;br /&gt;
&lt;br /&gt;
=== 複数のパッケージの容量を取得 ===&lt;br /&gt;
&lt;br /&gt;
以下のシェル関数を使うことができます:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.bashrc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
pacman-size()&lt;br /&gt;
{&lt;br /&gt;
	CMD=&amp;quot;pacman -Si&amp;quot;&lt;br /&gt;
	SEP=&amp;quot;: &amp;quot;&lt;br /&gt;
	TOTAL_SIZE=0&lt;br /&gt;
	&lt;br /&gt;
	RESULT=$(eval &amp;quot;${CMD} $@ 2&amp;gt;/dev/null&amp;quot; | awk -F &amp;quot;$SEP&amp;quot; -v filter=&amp;quot;Size&amp;quot; -v pkg=&amp;quot;^Name&amp;quot; \&lt;br /&gt;
	  &#039;$0 ~ pkg {pkgname=$2} $0 ~ filter {gsub(/\..*/,&amp;quot;&amp;quot;) ; printf(&amp;quot;%6s KiB %s\n&amp;quot;, $2, pkgname)}&#039; | sort -u -k3)&lt;br /&gt;
	&lt;br /&gt;
	echo &amp;quot;$RESULT&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	## Print total size.&lt;br /&gt;
	echo &amp;quot;$RESULT&amp;quot; | awk &#039;{TOTAL=$1+TOTAL} END {printf(&amp;quot;Total : %d KiB\n&amp;quot;,TOTAL)}&#039;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
依存関係リストと同じように {{ic|pacman -Qi}} を代わりに使うこともできますが、AUR の PKGBUILD にサイズ情報は含まれていないので [[yaourt]] では出来ません。&lt;br /&gt;
&lt;br /&gt;
ワンライナー:&lt;br /&gt;
&lt;br /&gt;
 $ pacman -Si &amp;quot;$@&amp;quot; 2&amp;gt;/dev/null | awk -F &amp;quot;: &amp;quot; -v filter=&amp;quot;Size&amp;quot; -v pkg=&amp;quot;Name&amp;quot; &#039;$0 ~ pkg {pkgname=$2} $0 ~ filter {gsub(/\..*/,&amp;quot;&amp;quot;) ; printf(&amp;quot;%6s KiB %s\n&amp;quot;, $2, pkgname)}&#039; | sort -u -k3 | tee &amp;gt;(awk &#039;{TOTAL=$1+TOTAL} END {printf(&amp;quot;Total : %d KiB\n&amp;quot;,TOTAL)}&#039;)&lt;br /&gt;
&lt;br /&gt;
You should replace &amp;quot;$@&amp;quot; with packages, or put this line in a shell function.&lt;br /&gt;
&lt;br /&gt;
=== 変更された設定ファイルを一覧する ===&lt;br /&gt;
If you want to backup your system configuration files you could copy all files in {{ic|/etc/}}, but usually you&#039;re only interested in the files that you have changed. In this case you want to list those changed configuration files, we can do this with the following command:&lt;br /&gt;
 # pacman -Qii | awk &#039;/^MODIFIED/ {print $2}&#039;&lt;br /&gt;
The following script does the same. You need to run it as root or with sudo.&lt;br /&gt;
{{hc|changed-files.sh|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
for package in /var/lib/pacman/local/*; do&lt;br /&gt;
	sed &#039;/^%BACKUP%$/,/^%/!d&#039; $package/files | tail -n+2 | grep -v &#039;^$&#039; | while read file hash; do&lt;br /&gt;
		[ &amp;quot;$(md5sum /$file | (read hash file; echo $hash))&amp;quot; != &amp;quot;$hash&amp;quot; ] &amp;amp;&amp;amp; echo $(basename $package) /$file&lt;br /&gt;
	done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== 依存されていないパッケージを全て表示する ===&lt;br /&gt;
&lt;br /&gt;
インストールしたパッケージの中で、どのパッケージにも依存されていないパッケージのリストを生成したい場合、以下のスクリプトを使うことができます。ハードドライブの容量を増やそうとしていて、覚えがない大量のパッケージがインストールされている場合、このスクリプトはとても役に立ちます。出力を見ることで必要なくなったパッケージを見つけることができます。&lt;br /&gt;
&lt;br /&gt;
{{Note|このスクリプトは明示的にインストールしたパッケージも含めて、どのパッケージにも依存されていない全てのパッケージを表示します。依存パッケージとしてインストールされていながら、どのパッケージにも必要とされていないパッケージを表示するには、[[#孤立したパッケージの削除]] を見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
{{hc|clean|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# This script is designed to help you clean your computer from unneeded&lt;br /&gt;
# packages. The script will find all packages that no other installed package&lt;br /&gt;
# depends on. It will output this list of packages excluding any you have&lt;br /&gt;
# placed in the ignore list. You may browse through the script&#039;s output and&lt;br /&gt;
# remove any packages you do not need.&lt;br /&gt;
&lt;br /&gt;
# Enter groups and packages here which you know you wish to keep. They will&lt;br /&gt;
# not be included in the list of unrequired packages later.&lt;br /&gt;
ignoregrp=&amp;quot;base base-devel&amp;quot;&lt;br /&gt;
ignorepkg=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
comm -23 &amp;lt;(pacman -Qqt | sort) &amp;lt;(echo $ignorepkg | tr &#039; &#039; &#039;\n&#039; | cat &amp;lt;(pacman -Sqg $ignoregrp) - | sort -u)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
パッケージの説明も見るには:&lt;br /&gt;
&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
expac -HM &amp;quot;%-20n\t%10d&amp;quot; $( comm -23 &amp;lt;(pacman -Qqt|sort) &amp;lt;(pacman -Qqg base base-devel|sort) )&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Systemd を使ってローカルデータベースをバックアップ ===&lt;br /&gt;
&lt;br /&gt;
[[systemd]] は pacman のローカルデータベースのスナップショットを（データベースが変更される度に）作成することができます。&lt;br /&gt;
&lt;br /&gt;
{{Note|AUR にもっと細かく設定できるバージョンがあります: {{AUR|pakbak-git}}。}}&lt;br /&gt;
&lt;br /&gt;
以下のスクリプトを使って下さい ({{ic|$pakbak}} の値はバックアップ先に置き換えて下さい)。{{ic|pakbak.service}} を[[有効化]]することで起動時に自動的に実行させることができます:&lt;br /&gt;
&lt;br /&gt;
{{hc|/usr/lib/systemd/scripts/pakbak_script|2=&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
declare -r pakbak=&#039;&#039;&amp;quot;/pakbak.tar.xz&amp;quot;&#039;&#039;;  ## set backup location&lt;br /&gt;
tar -cJf &amp;quot;$pakbak&amp;quot; &amp;quot;/var/lib/pacman/local&amp;quot;;  ## compress &amp;amp; store pacman local database in $pakbak&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{hc|/usr/lib/systemd/system/pakbak.service|2=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Back up pacman database&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=oneshot&lt;br /&gt;
ExecStart=/bin/bash /usr/lib/systemd/scripts/pakbak_script&lt;br /&gt;
RemainAfterExit=no&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{hc|/usr/lib/systemd/system/pakbak.path|2=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Back up pacman database&lt;br /&gt;
&lt;br /&gt;
[Path]&lt;br /&gt;
PathChanged=/var/lib/pacman/local&lt;br /&gt;
Unit=pakbak.service&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== インストールとリカバリー ==&lt;br /&gt;
&lt;br /&gt;
パッケージを取得・復活させる他の方法。&lt;br /&gt;
&lt;br /&gt;
=== パッケージを CD/DVD や USB スティックからインストールする ===&lt;br /&gt;
&lt;br /&gt;
パッケージや、パッケージグループをダウンロードするには:&lt;br /&gt;
&lt;br /&gt;
 # cd ~/Packages&lt;br /&gt;
 # pacman -Syw base base-devel grub-bios xorg gimp --cachedir .&lt;br /&gt;
 # repo-add ./custom.db.tar.gz ./*&lt;br /&gt;
&lt;br /&gt;
ダウンロードしたら &amp;quot;Packages&amp;quot; フォルダを CD/DVD に焼くか USB スティック、外部 HDD などにコピーしてください。&lt;br /&gt;
&lt;br /&gt;
インストールするには:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; メディアをマウントする:&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/repo&lt;br /&gt;
 # mount /dev/sr0 /mnt/repo    # CD/DVD の場合&lt;br /&gt;
 # mount /dev/sdxY /mnt/repo   # USB スティックの場合。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; {{ic|pacman.conf}} を編集して他のリポジトリ (例: extra, core, etc.) の&#039;&#039;前に&#039;&#039;リポジトリを追加してください。この手順は重要です。これで標準のリポジトリに優先して CD/DVD/USB のファイルがインストールされるようになります:&lt;br /&gt;
&lt;br /&gt;
{{hc|# nano /etc/pacman.conf|2=&lt;br /&gt;
[custom]&lt;br /&gt;
SigLevel = PackageRequired&lt;br /&gt;
Server = file:///mnt/repo/Packages}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; 最後に、pacman データベースを同期して新しいリポジトリを使えるようにしてください:&lt;br /&gt;
&lt;br /&gt;
 # pacman -Sy&lt;br /&gt;
&lt;br /&gt;
=== カスタムローカルリポジトリ ===&lt;br /&gt;
&lt;br /&gt;
pacman 3 では個人的なリポジトリのデータベースの作成をより簡単にするため {{ic|repo-add}} という名前の新しいスクリプトが導入されました。詳しい使い方は {{ic|repo-add --help}} を実行して見て下さい。&lt;br /&gt;
&lt;br /&gt;
リポジトリに含むパッケージを全て一つのディレクトリに保存して、次のコマンドを実行してください (&#039;&#039;repo&#039;&#039; はカスタムリポジトリの名前に置き換えてください):&lt;br /&gt;
&lt;br /&gt;
 $ repo-add /path/to/repo.db.tar.gz /path/to/*.pkg.tar.xz&lt;br /&gt;
&lt;br /&gt;
{{ic|repo-add}} を使う際、データベースとパッケージは同じディレクトリにある必要はないので注意してください。ただしそのデータベースで pacman を使うときには、揃っていないといけません。&lt;br /&gt;
&lt;br /&gt;
新しいパッケージを追加する（そして古いパッケージが存在していたら削除する）には、次を実行してください:&lt;br /&gt;
&lt;br /&gt;
 $ repo-add /path/to/repo.db.tar.gz /path/to/packagetoadd-1.0-1-i686.pkg.tar.xz&lt;br /&gt;
&lt;br /&gt;
{{Note|If there is a package that needs to be removed from the repository, read up on {{Ic|repo-remove}}.}}&lt;br /&gt;
&lt;br /&gt;
ローカルリポジトリを作成できたら、リポジトリを {{ic|pacman.conf}} に追加してください。{{ic|db.tar.gz}} ファイルの名前がリポジトリの名前です。{{ic|file://}} url を使って直接参照するか、{{ic|ftp://localhost/path/to/directory}} を使って FTP でアクセスしてください。&lt;br /&gt;
&lt;br /&gt;
カスタムリポジトリを[[非公式ユーザーリポジトリ]]に追加すれば、コミュニティはそれを使うことができるようになります。&lt;br /&gt;
&lt;br /&gt;
=== pacman のキャッシュをネットワークで共有する ===&lt;br /&gt;
&lt;br /&gt;
==== 読み取り専用キャッシュ ====&lt;br /&gt;
&lt;br /&gt;
If you&#039;re looking for a quick and dirty solution, you can simply run a standalone webserver which other computers can use as a first mirror: {{ic|darkhttpd /var/cache/pacman/pkg}}. Just add this server at the top of your mirror list. Be aware that you might get a lot of 404 errors, due to cache misses, depending on what you do, but pacman will try the next (real) mirrors when that happens.&lt;br /&gt;
&lt;br /&gt;
==== 読み書き可能キャッシュ ====&lt;br /&gt;
&lt;br /&gt;
{{Tip|See [[pacserve]] for an alternative (and probably simpler) solution than what follows.}}&lt;br /&gt;
&lt;br /&gt;
複数のコンピュータ間でパッケージを共有するには、ネットワークベースのマウントプロトコルを使って {{ic|/var/cache/pacman/}} を共有します。このセクションでは shfs または sshfs を使ってパッケージキャッシュと関連するライブラリディレクトリを同一ローカルネットワーク上の複数のコンピュータで共有する方法を示します。ネットワークで共有されるキャッシュは、ファイルシステムの選択やその他の要因で、遅くなることがあります。&lt;br /&gt;
&lt;br /&gt;
まず、ネットワークをサポートするファイルシステムをインストールしてください。例えば [[sshfs]], [[shfs]], ftpfs, [[Samba|smbfs]], [[NFS|nfs]] など。&lt;br /&gt;
&lt;br /&gt;
{{Tip|sshfs や shfs を使う場合、[[SSH 鍵]]を読んで下さい。}}&lt;br /&gt;
&lt;br /&gt;
Then, to share the actual packages, mount {{ic|/var/cache/pacman/pkg}} from the server to {{ic|/var/cache/pacman/pkg}} on every client machine.&lt;br /&gt;
&lt;br /&gt;
==== BitTorrent Sync を使って pacman のパッケージキャッシュを同期する ====&lt;br /&gt;
&lt;br /&gt;
[[BitTorrent Sync]] はネットワークを介してフォルダを同期する新方法です (LAN でもインターネットでも動作します)。ピアツーピアなのでサーバーを設定する必要はありません: 詳しくはリンクを参照してください。&lt;br /&gt;
BitTorrent Sync を使って pacman のキャッシュを共有する方法:&lt;br /&gt;
* まず同期したいマシンに AUR から {{AUR|btsync}} パッケージをインストール。&lt;br /&gt;
* [[BitTorrent Sync]] の wiki ページや AUR パッケージのインストール手順に従う。&lt;br /&gt;
** set up BitTorrent Sync to work for the root account. This process requires read/write to the pacman package cache. &lt;br /&gt;
** make sure to set a good password on btsync&#039;s web UI  &lt;br /&gt;
** btsync の systemd デーモンを起動。&lt;br /&gt;
** in the btsync Web GUI add a new synchronized folder on the first machine and generate a new Secret. Point the folder to {{ic|/var/cache/pacman/pkg}}&lt;br /&gt;
** Add the folder on all the other machines using the same Secret to share the cached packages between all systems. Or, to set the first system as a master and the others as slaves, use the Read Only Secret. Be sure to point it to {{ic|/var/cache/pacman/pkg}}&lt;br /&gt;
&lt;br /&gt;
Now the machines should connect and start synchronizing their cache. Pacman works as expected even during synchronization. The process of syncing is entirely automatic.&lt;br /&gt;
&lt;br /&gt;
==== 要らなくなったキャッシュが消えないようにする ====&lt;br /&gt;
&lt;br /&gt;
By default, {{Ic|pacman -Sc}} removes package tarballs from the cache that correspond to packages that are not installed on the machine the command was issued on. Because pacman cannot predict what packages are installed on all machines that share the cache, it will end up deleting files that should not be.&lt;br /&gt;
&lt;br /&gt;
To clean up the cache so that only &#039;&#039;outdated&#039;&#039; tarballs are deleted, add this entry in the {{ic|[options]}} section of {{ic|/etc/pacman.conf}}:&lt;br /&gt;
&lt;br /&gt;
 CleanMethod = KeepCurrent&lt;br /&gt;
&lt;br /&gt;
=== インストールしたパッケージのリストのバックアップと復旧 ===&lt;br /&gt;
&lt;br /&gt;
pacman によってインストールしたパッケージのバックアップを定期的に行うのはグッドプラクティスです。何らかの理由でリカバリーできないシステムクラッシュが発生した時、pacman を使って全く同じパッケージを簡単に新しい環境に再インストールすることができるようになります。&lt;br /&gt;
&lt;br /&gt;
* まず、ローカルにない現在のパッケージの一覧をバックアップしてください: {{ic|$ pacman -Qqen &amp;gt; pkglist.txt}}&lt;br /&gt;
&lt;br /&gt;
* {{ic|pkglist.txt}} を USB キーやその他メディア gist.github.com, Evernote, Dropbox などに保存してください。&lt;br /&gt;
&lt;br /&gt;
* {{ic|pkglist.txt}} ファイルを新しいインストールにコピーして、ファイルが含まれているディレクトリにまで移動してください。&lt;br /&gt;
&lt;br /&gt;
* 次のコマンドを実行することでバックアップリストからインストールを行います: {{ic|# pacman -S $(&amp;lt; pkglist.txt)}}&lt;br /&gt;
&lt;br /&gt;
上記のようにリストが生成されない場合、おそらく foreign パッケージ (設定したリポジトリに存在しないパッケージ、もしくは AUR のパッケージ) が存在します。&lt;br /&gt;
&lt;br /&gt;
そのような場合でも、リストから利用可能なパッケージを全てインストールすることができます:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S --needed $(comm -12 &amp;lt;(pacman -Slq|sort) &amp;lt;(sort badpkdlist) )&lt;br /&gt;
&lt;br /&gt;
説明:&lt;br /&gt;
&lt;br /&gt;
* {{ic|pacman -Slq}} lists all available softwares, but the list is sorted by repository first, hence the {{ic|sort}} command.&lt;br /&gt;
* {{ic|comm}} コマンドを動作させるにはファイルをソートする必要があります。&lt;br /&gt;
* {{ic|-12}} パラメータは両方のエントリで共通する行を表示します。&lt;br /&gt;
* {{ic|--needed}} スイッチを使うことで既にインストールされているパッケージはスキップされます。&lt;br /&gt;
&lt;br /&gt;
[[yaourt]] を使うことで AUR からリポジトリにないパッケージを全てインストールするのを試行することもできます (何がおこるかわかってない場合は推奨しません):&lt;br /&gt;
&lt;br /&gt;
 $ yaourt -S --needed $(comm -13 &amp;lt;(pacman -Slq|sort) &amp;lt;(sort badpkdlist) )&lt;br /&gt;
&lt;br /&gt;
最後に、リストに記されていない全てのパッケージをシステム上から削除することができます:&lt;br /&gt;
&lt;br /&gt;
{{Warning|このコマンドは注意して使って下さい、pacman の出力をよくチェックしましょう。}}&lt;br /&gt;
&lt;br /&gt;
 # pacman -Rsu $(comm -23 &amp;lt;(pacman -Qq|sort) &amp;lt;(sort pkglist))&lt;br /&gt;
&lt;br /&gt;
=== base や base-devel に存在しないダウンロード済みパッケージを一覧 ===&lt;br /&gt;
&lt;br /&gt;
次のコマンドは {{Grp|base}} や {{Grp|base-devel}} に存在しない、ユーザーが手動でインストールしたパッケージを全て表示します:&lt;br /&gt;
&lt;br /&gt;
 $ comm -23 &amp;lt;(pacman -Qeq | sort) &amp;lt;(pacman -Qgq base base-devel | sort)&lt;br /&gt;
&lt;br /&gt;
インストールしたパッケージの中で特定のリポジトリに存在しないパッケージを表示するには (例えば {{ic|&#039;&#039;repo_name&#039;&#039;}}):&lt;br /&gt;
&lt;br /&gt;
 $ comm -23 &amp;lt;(pacman -Qtq | sort) &amp;lt;(pacman -Slq &#039;&#039;repo_name&#039;&#039; | sort)&lt;br /&gt;
&lt;br /&gt;
インストールしたパッケージの中で {{ic|&#039;&#039;repo_name&#039;&#039;}} リポジトリに存在するパッケージを表示するには:&lt;br /&gt;
&lt;br /&gt;
 $ comm -12 &amp;lt;(pacman -Qtq | sort) &amp;lt;(pacman -Slq &#039;&#039;repo_name&#039;&#039; | sort)&lt;br /&gt;
&lt;br /&gt;
=== 全てのパッケージの再インストール ===&lt;br /&gt;
&lt;br /&gt;
全てのネイティブのパッケージを再インストールするには、次を使って下さい:&lt;br /&gt;
&lt;br /&gt;
 # pacman -Qenq | pacman -S -&lt;br /&gt;
&lt;br /&gt;
外部の (AUR) パッケージは別に再インストールする必要があります。外部のパッケージは {{ic|pacman -Qemq}} で一覧できます。&lt;br /&gt;
&lt;br /&gt;
デフォルトで Pacman はインストールの理由（明示的にインストールしたか、依存でインストールしたか）を維持します。&lt;br /&gt;
&lt;br /&gt;
=== pacman のローカルデータベースを復元する ===&lt;br /&gt;
&lt;br /&gt;
ローカルデータベースの復元が必要だと pacman が示す場合:&lt;br /&gt;
&lt;br /&gt;
* {{ic|pacman -Q}} で何も出力がされず、{{Ic|pacman -Syu}} でシステムが最新だと表示されるとき。&lt;br /&gt;
* {{ic|pacman -S package}} を使ってパッケージをインストールしようとすると、既にインストールされている依存パッケージのリストが出力される。&lt;br /&gt;
* ({{Pkg|pacman}} に含まれている) {{ic|testdb}} でデータベースが壊れていると表示される。&lt;br /&gt;
&lt;br /&gt;
以上の場合、十中八九、インストールしたソフトウェアの pacman データベースである {{ic|/var/lib/pacman/local}} が破損していたり削除されています。これは深刻な問題ですが、以下の手順に従うことで復元することができます。&lt;br /&gt;
&lt;br /&gt;
まず、pacman のログファイルが存在するか確認します:&lt;br /&gt;
&lt;br /&gt;
 $ ls /var/log/pacman.log&lt;br /&gt;
&lt;br /&gt;
ログファイルが存在しない場合は、この方法で続行することは不可能です。[https://bbs.archlinux.org/viewtopic.php?pid=670876 Xyne のパッケージ検出スクリプト] を使ってデータベースを再作成してみてください。それができない場合、解決方法としてはシステム全体を再インストールするしかありません。&lt;br /&gt;
&lt;br /&gt;
==== ログフィルタースクリプト ====&lt;br /&gt;
{{hc|pacrecover|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/bash -e&lt;br /&gt;
&lt;br /&gt;
. /etc/makepkg.conf&lt;br /&gt;
&lt;br /&gt;
PKGCACHE=$((grep -m 1 &#039;^CacheDir&#039; /etc/pacman.conf || echo &#039;CacheDir = /var/cache/pacman/pkg&#039;) | sed &#039;s/CacheDir = //&#039;)&lt;br /&gt;
&lt;br /&gt;
pkgdirs=(&amp;quot;$@&amp;quot; &amp;quot;$PKGDEST&amp;quot; &amp;quot;$PKGCACHE&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
while read -r -a parampart; do&lt;br /&gt;
  pkgname=&amp;quot;${parampart[0]}-${parampart[1]}-*.pkg.tar.xz&amp;quot;&lt;br /&gt;
  for pkgdir in ${pkgdirs[@]}; do&lt;br /&gt;
    pkgpath=&amp;quot;$pkgdir&amp;quot;/$pkgname&lt;br /&gt;
    [ -f $pkgpath ] &amp;amp;&amp;amp; { echo $pkgpath; break; };&lt;br /&gt;
  done || echo ${parampart[0]} 1&amp;gt;&amp;amp;2&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
	&lt;br /&gt;
スクリプトを実行可能にしてください:&lt;br /&gt;
&lt;br /&gt;
 $ chmod +x pacrecover&lt;br /&gt;
&lt;br /&gt;
==== パッケージの復旧リストを生成する ====&lt;br /&gt;
&lt;br /&gt;
{{Warning|If for some reason your [[pacman]] cache or [[makepkg]] package destination contain packages for other architectures, remove them before continuation.}}&lt;br /&gt;
&lt;br /&gt;
スクリプトを実行してください (任意でパッケージが含まれている追加のディレクトリをパラメータで渡して下さい):&lt;br /&gt;
&lt;br /&gt;
 $ paclog-pkglist /var/log/pacman.log | ./pacrecover &amp;gt;files.list 2&amp;gt;pkglist.orig&lt;br /&gt;
&lt;br /&gt;
このコマンドで2つのファイルが作成されます: マシンに存在するパッケージファイルが載った {{Ic|files.list}} と、ダウンロードするべきパッケージが載った {{Ic|pkglist.orig}} です。後者ではマシンに存在する、古いバージョンのパッケージのファイルと、新しいバージョンのファイルでミスマッチが発生することがあります。ミスマッチは手動で修正する必要があります。&lt;br /&gt;
&lt;br /&gt;
Here is a way to automatically restrict second list to packages available in a repository:&lt;br /&gt;
&lt;br /&gt;
 $ { cat pkglist.orig; pacman -Slq; } | sort | uniq -d &amp;gt; pkglist&lt;br /&gt;
&lt;br /&gt;
重要な &#039;&#039;base&#039;&#039; パッケージが欠けていないか確認して、リストに加えます:&lt;br /&gt;
&lt;br /&gt;
 $ comm -23 &amp;lt;(pacman -Sgq base) pkglist.orig &amp;gt;&amp;gt; pkglist&lt;br /&gt;
&lt;br /&gt;
Proceed once the contents of both lists are satisfactory, since they will be used to restore pacman&#039;s installed package database; {{ic|/var/lib/pacman/local/}}.&lt;br /&gt;
&lt;br /&gt;
==== リカバリを実行する ====&lt;br /&gt;
&lt;br /&gt;
リカバリのための bash エイリアスを定義してください:&lt;br /&gt;
&lt;br /&gt;
 # recovery-pacman() {&lt;br /&gt;
     pacman &amp;quot;$@&amp;quot;       \&lt;br /&gt;
     --log /dev/null   \&lt;br /&gt;
     --noscriptlet     \&lt;br /&gt;
     --dbonly          \&lt;br /&gt;
     --force           \&lt;br /&gt;
     --nodeps          \&lt;br /&gt;
     --needed          \&lt;br /&gt;
     #&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
{{ic|--log /dev/null}} allows to avoid needless pollution of pacman log, {{Ic|--needed}} will save some time by skipping packages, already present in database, {{Ic|--nodeps}} will allow installation of cached packages, even if packages being installed depend on newer versions. Rest of options will allow &#039;&#039;&#039;pacman&#039;&#039;&#039; to operate without reading/writing filesystem.&lt;br /&gt;
&lt;br /&gt;
同期データベースを作成:&lt;br /&gt;
&lt;br /&gt;
 # pacman -Sy&lt;br /&gt;
&lt;br /&gt;
{{ic|files.list}} からローカルで利用可能なパッケージファイルをインストールしてデータベースの生成を開始:&lt;br /&gt;
&lt;br /&gt;
 # recovery-pacman -U $(&amp;lt; files.list)&lt;br /&gt;
&lt;br /&gt;
{{ic|pkglist}} から残りをインストール:&lt;br /&gt;
&lt;br /&gt;
 # recovery-pacman -S $(&amp;lt; pkglist)&lt;br /&gt;
&lt;br /&gt;
Update the local database so that packages that are not required by any other package are marked as explicitly installed and the other as dependences. You will need be extra careful in the future when removing packages, but with the original database lost is the best we can do.&lt;br /&gt;
&lt;br /&gt;
 # pacman -D --asdeps $(pacman -Qq)&lt;br /&gt;
 # pacman -D --asexplicit $(pacman -Qtq)&lt;br /&gt;
&lt;br /&gt;
Optionally check all installed packages for corruption:&lt;br /&gt;
&lt;br /&gt;
 # pacman -Qk&lt;br /&gt;
&lt;br /&gt;
任意で[[#ファイルがどのパッケージにも所有されていないことを確認|ファイルがどのパッケージにも所有されていないことを確認]]してください。&lt;br /&gt;
&lt;br /&gt;
全てのパッケージをアップデート:&lt;br /&gt;
&lt;br /&gt;
 # pacman -Su&lt;br /&gt;
&lt;br /&gt;
=== 既存のインストールから USB キーを回復させる ===&lt;br /&gt;
&lt;br /&gt;
If you have Arch installed on a USB key and manage to mess it up (e.g. removing it while it is still being written to), then it is possible to re-install all the packages and hopefully get it back up and working again (assuming USB key is mounted in /newarch)&lt;br /&gt;
&lt;br /&gt;
 # pacman -S $(pacman -Qq --dbpath /newarch/var/lib/pacman) --root /newarch --dbpath /newarch/var/lib/pacman&lt;br /&gt;
&lt;br /&gt;
=== .pkg ファイルの中身を展開する ===&lt;br /&gt;
&lt;br /&gt;
{{ic|.xz}} で終わっている {{ic|.pkg}} ファイルは tar で固められた圧縮ファイルであり、次のコマンドで解凍できます:&lt;br /&gt;
&lt;br /&gt;
 $ tar xvf package.tar.xz&lt;br /&gt;
&lt;br /&gt;
ファイルを {{ic|.pkg}} から展開したい場合、この方法を使うことができます。&lt;br /&gt;
&lt;br /&gt;
=== .pkg ファイルに含まれているファイルを回覧する ===&lt;br /&gt;
&lt;br /&gt;
例えば、{{Pkg|systemd}} パッケージに入っている {{ic|/etc/systemd/logind.conf}} の中身を見たいのならば:&lt;br /&gt;
&lt;br /&gt;
 $ tar -xOf /var/cache/pacman/pkg/systemd-204-3-x86_64.pkg.tar.xz etc/systemd/logind.conf&lt;br /&gt;
&lt;br /&gt;
もしくは {{pkg|vim}} を使ってアーカイブをブラウズすることもできます:&lt;br /&gt;
 $ vim /var/cache/pacman/pkg/systemd-204-3-x86_64.pkg.tar.xz&lt;br /&gt;
&lt;br /&gt;
=== 古いパッケージのライブラリを使っているアプリケーションを探す ===&lt;br /&gt;
&lt;br /&gt;
Even if you installed a package the existing long-running programs (like daemons and servers) still keep using code from old package libraries. And it is a bad idea to let these programs running if the old library contains a security bug.&lt;br /&gt;
&lt;br /&gt;
Here is a way how to find all the programs that use old packages code:&lt;br /&gt;
&lt;br /&gt;
 # lsof +c 0 | grep -w DEL | awk &#039;1 { print $1 &amp;quot;: &amp;quot; $NF }&#039; | sort -u&lt;br /&gt;
It will print running program name and old library that was removed or replaced with newer content.&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Fsck&amp;diff=4485</id>
		<title>Fsck</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Fsck&amp;diff=4485"/>
		<updated>2015-12-24T16:03:37Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: トラブルシューティングの部分を翻訳&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;br /&gt;
[[Category:ファイルシステム]]&lt;br /&gt;
[[en:Fsck]]&lt;br /&gt;
[[fr:Fsck]]&lt;br /&gt;
[[ru:Fsck]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Ext4}}&lt;br /&gt;
{{Related|Btrfs}}&lt;br /&gt;
{{Related|fstab}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
[[Wikipedia:ja:Fsck|fsck]] は &#039;&#039;&amp;quot;file system check&amp;quot;&#039;&#039; の略であり、Linux のファイルシステムをチェックしたり修復するのに使われます。通常、全てのファイルシステムをチェックするのに必要な時間をけずるため、fsck プログラムは異なる物理ディスクドライブのファイルシステムを同時に処理します (参照: {{ic|man fsck}})。&lt;br /&gt;
&lt;br /&gt;
[[Arch ブートプロセス|Arch Linux のブートプロセス]]では起動するたびに簡便に fsck を実行してドライブ上の全てのパーティションを自動的にチェックします。そのため、特に必要がないかぎりは基本的にコマンドラインを使用する必要はありません。&lt;br /&gt;
&lt;br /&gt;
== ブート時のチェック ==&lt;br /&gt;
&lt;br /&gt;
=== 仕組み ===&lt;br /&gt;
&lt;br /&gt;
2つの方法があります:&lt;br /&gt;
&lt;br /&gt;
# mkinitcpio には fsck フックによって、マウントする前に root ファイルシステムを fsck するオプションがあります。これを使う場合、root を {{ic|rw}} カーネルパラメータで読み書き可能でマウントする必要があります [https://projects.archlinux.org/mkinitcpio.git/commit/?id=449b3e543c]。&lt;br /&gt;
# systemd は ({{ic|/etc/fstab}} またはユーザーによるユニットファイルで指定された) fsck パス番号が 0 より大きいファイルシステムの fsck を実行します。root ファイルシステムの場合、最初にカーネルパラメータ {{ic|ro}} で読み取り専用でマウントして、それから [[fstab]] から読み書き可能で再度マウントする必要があります ({{ic|defaults}} マウントオプションには {{ic|rw}} が含まれています)。&lt;br /&gt;
&lt;br /&gt;
デフォルトで1番目の方法が推奨されています。[[インストールガイド]]に従った場合はこちらを使うことになります。2番目の方法を使いたい場合は、{{ic|mkinitcpio.conf}} から fsck フックを削除してカーネルコマンドラインで {{ic|ro}} を使ってください。どちらの方法を使っていたとしても、カーネルパラメータ {{ic|1=fsck.mode=skip}} を使うことで fsck を完全に無効化することが可能です。&lt;br /&gt;
&lt;br /&gt;
=== 強制的にチェック ===&lt;br /&gt;
&lt;br /&gt;
[[カーネルパラメータ]]で起動時に {{ic|1=fsck.mode=force}} を設定することで強制的に fsck をすることもできます。マシンに存在する全てのファイルシステムをチェックします。&lt;br /&gt;
&lt;br /&gt;
{{Note|他の GNU/Linux ディストリビューションを使っていた場合、{{ic|forcefsck}} という名前のファイルをファイルシステムのルートに書き出す方法や、{{ic|shutdown}} コマンドと {{ic|-F}} フラグを使用する方法は、昔の [[SysVinit]] や [[Wikipedia:ja:Upstart|Upstart]] の初期バージョンでしか動作せず、[[systemd]] では使えないので注意してください。Arch Linux で使うことができるのは上述の方法だけです。}}&lt;br /&gt;
&lt;br /&gt;
== Tips and tricks ==&lt;br /&gt;
&lt;br /&gt;
=== 破損ブロックを修復 ===&lt;br /&gt;
&lt;br /&gt;
破損箇所を自動的に修復するには、次を実行:&lt;br /&gt;
&lt;br /&gt;
{{Warning|このコマンドは修復するべきかどうか尋ねません。コマンドを実行した時点で答えは &#039;&#039;&#039;Yes&#039;&#039;&#039; と受け取ります。}}&lt;br /&gt;
&lt;br /&gt;
 # fsck -a&lt;br /&gt;
&lt;br /&gt;
=== 破損ブロックをインタラクティブに修復 ===&lt;br /&gt;
{{Tip|これはブートパーティション上のファイルが変更されており、ジャーナルを更新するのに失敗した場合に使えます。この場合はブートパーティションをアンマウントしてから次のコマンドを実行してください:}}&lt;br /&gt;
破損箇所を修復するには、次を実行:&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
# fsck -r &amp;lt;drive&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== チェックの頻度を変更 ===&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、fsck は30回起動するたびにファイルシステムをチェックします (パーティションごとに別々にカウントされます)。チェックの頻度を変更するには、次を実行:&lt;br /&gt;
&lt;br /&gt;
 # tune2fs -c 20 /dev/sda1&lt;br /&gt;
&lt;br /&gt;
上の例では、{{ic|20}} が次のチェックを行うまでの起動回数です。&lt;br /&gt;
&lt;br /&gt;
{{ic|1}} を設定すると起動時に毎回スキャンを行い、{{ic|0}} を設定すると一切スキャンしなくなります。&lt;br /&gt;
&lt;br /&gt;
{{Tip|指定パーティションの fsck 実行頻度と現在のマウント回数を見るには次のコマンドを使います: &lt;br /&gt;
 # dumpe2fs -h /dev/sda1 &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep -i &#039;mount count&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== fstab のオプション ===&lt;br /&gt;
&lt;br /&gt;
[[fstab]] はシステムの設定ファイルであり、マウントするパーティション (ファイルシステム) とファイルシステムツリーを Linux カーネルに指示するのに使われます。&lt;br /&gt;
&lt;br /&gt;
基本的な {{ic|/etc/fstab}} エントリは以下のようになります:&lt;br /&gt;
&lt;br /&gt;
 /dev/sda1   /         ext4      defaults       0  &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
 /dev/sda2   /other    ext4      defaults       0  &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
 /dev/sda3   /win      ntfs-3g   defaults       0  &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
6番目のカラム (太字) が fsck のオプションです。&lt;br /&gt;
&lt;br /&gt;
* 0 = チェックしない。&lt;br /&gt;
* 1 = 最初にチェックするファイルシステム (パーティション)。{{ic|/}} (root パーティション) は 1 に設定してください。&lt;br /&gt;
* 2 = 他のチェックするファイルシステム。&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== 分割した /usr パーティションで fsck が動作しない ===&lt;br /&gt;
&lt;br /&gt;
# {{ic|/etc/mkinitcpio.conf}} に必要な[[Mkinitcpio#/usr パーティションを分割する|フック]]を記述していることを確認してください。また、このファイルを編集した後にはかならず initramfs イメージを再生成する必要があります。&lt;br /&gt;
# [[fstab]] を確認してください。最後のフィールドはルートパーティションだけを &amp;quot;1&amp;quot; にする必要があります。それ以外はすべて &amp;quot;2&amp;quot; か &amp;quot;0&amp;quot; にします。他の誤字もないように注意深く確認してください。&lt;br /&gt;
&lt;br /&gt;
=== ext2fs : no external journal ===&lt;br /&gt;
&lt;br /&gt;
電源切断により、ext3/4 ファイルシステムが通常の方法で修復できないほど破損する場合があります。普通は fsck が外部ジャーナルを見つけられないというプロンプトを出します。その場合は次の一連のコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
ディレクトリを指定してそのパーティションをアンマウントします&lt;br /&gt;
 # umount &amp;lt;directory&amp;gt;&lt;br /&gt;
新しいジャーナルをパーティションに書き込みます&lt;br /&gt;
 # tune2fs -j /dev/&amp;lt;partition&amp;gt;&lt;br /&gt;
fsck を起動してパーティションを修復します&lt;br /&gt;
 # fsck -p /dev/&amp;lt;partition&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E3%81%AE%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%B3&amp;diff=4474</id>
		<title>ディスクのクローン</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E3%81%AE%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%B3&amp;diff=4474"/>
		<updated>2015-12-23T16:35:55Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: 一部翻訳&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:データ圧縮とアーカイブ]]&lt;br /&gt;
[[Category:システムリカバリ]]&lt;br /&gt;
[[en:Disk cloning]]&lt;br /&gt;
[[it:Disk cloning]]&lt;br /&gt;
[[ru:Disk cloning]]&lt;br /&gt;
[[tr:Disk klonlama]]&lt;br /&gt;
[[zh-cn:Disk cloning]]&lt;br /&gt;
ディスクのクローンとはパーティションやハードドライブ全体のイメージを作成することを言います。[[バックアッププログラム|バックアップ]]や[[ファイルリカバリ|リカバリ]]用に他のコンピューターにドライブをコピーするのに役立ちます。&lt;br /&gt;
&lt;br /&gt;
== dd を使う ==&lt;br /&gt;
&lt;br /&gt;
dd コマンドはシンプルでありながら、多目的に使える強力なツールです。ファイルシステムのタイプやオペレーティングシステムとは関係なく、ブロックごとに、コピーを行うことができます。ライブ CD などの、ライブ環境から dd を使用すると便利です。&lt;br /&gt;
&lt;br /&gt;
{{Warning|この種のコマンドの常として、使うときは慎重にならなければなりません。さもないとデータを破壊するおそれがあります。入力ファイル({{ic|1=if=}})と出力ファイル({{ic|1=of=}})の順序に注意し、逆にしないように！必ずコピー先ドライブまたはパーティションのサイズがコピー元のサイズ以上になっているようにしてください ({{ic|1=if=}})。}}&lt;br /&gt;
&lt;br /&gt;
=== パーティションのクローン ===&lt;br /&gt;
&lt;br /&gt;
物理ディスク {{ic|/dev/sda}} のパーティション 1 を、物理ディスク {{ic|/dev/sdb}} のパーティション 1 に複製。&lt;br /&gt;
 # dd if=/dev/sda1 of=/dev/sdb1 bs=512 conv=noerror,sync&lt;br /&gt;
&lt;br /&gt;
{{Warning|出力ファイル{{ic|1=of=}} (この例では{{ic|sdb1}})が存在しない場合は、ルートファイルシステムにこの名前のファイルが作成されてしまいます。}}&lt;br /&gt;
&lt;br /&gt;
=== ハードディスク全体のクローン ===&lt;br /&gt;
&lt;br /&gt;
物理ディスク {{ic|/dev/sd&#039;&#039;X&#039;&#039;}} を物理ディスク {{ic|/dev/sdY}} に複製:&lt;br /&gt;
 # dd if=/dev/sd&#039;&#039;X&#039;&#039; of=/dev/sd&#039;&#039;Y&#039;&#039; bs=512 conv=noerror,sync&lt;br /&gt;
&lt;br /&gt;
このコマンドは MBR (とブートローダー)、全てのパーティション、UUID、データを含めディスクの全てを複製します。&lt;br /&gt;
* {{ic|noerror}} は読み取りエラーを全て無視して操作を続行します。dd のデフォルトの挙動ではエラーがあると dd は動作を停止します。&lt;br /&gt;
* {{ic|sync}} は読み取りエラーが存在した場合、入力ブロックをゼロで埋めるため、データのオフセットも同期します。&lt;br /&gt;
* {{ic|1=bs=512}} はブロックサイズを 512 バイト（ハードドライブの「古典的な」ブロックサイズ）にセットします。自分のハードドライブが 4KiB のブロックサイズを持っているときだけ 512 を 4096 にすることができます。また、以下の警告も読んでください。これはブロックサイズを変えるだけでなく、読み取りエラーがどのように伝播するかにも関係しています。&lt;br /&gt;
&lt;br /&gt;
{{Warning|ブロックサイズを指定すると、読み取りエラーの制御方法が影響を受けます。以下を読んでください。}}&lt;br /&gt;
&lt;br /&gt;
dd では入力ブロックサイズ（IBS）と出力ブロックサイズ（OBS）の指定ができます。{{ic|bs}} をセットすると IBS と OBS の両方をセットしたことになります。例えばブロックサイズを 1MiB にすると、通常は 1024*1024 バイト単位で読み書きします。しかし読み取りエラーが起きるとおかしくなります。{{ic|noerror,sync}} オプションを使うと dd は読み取りエラーをゼロで埋めるようになると思いがちですが、そうではありません。ドキュメントによると dd は&#039;&#039;読み取りが完了した後で&#039;&#039;OBSをIBSと同じサイズになるようゼロ埋めします。つまりそのブロックの&#039;&#039;最後&#039;&#039;にゼロが追加されます。したがって、1MiB のブロックの最初でたった 512 バイトの読み取りエラーがあるだけで、1MiB 全体が駄目になってしまうことを意味します。例えば 12ERROR89 というデータの読み取りで ERROR の部分にエラーがあると、結果は 120000089 ではなく 128900000 になります。&lt;br /&gt;
&lt;br /&gt;
自分のディスクにエラーがないと自信を持てるなら、ブロックサイズを大きくしてもよいでしょう。そうするとコピー速度が数倍向上します。例えば、単純な Celeron 2.7 GHz のシステムで bs を 512 から 64 KiB に変えたところ、コピー速度は 35 MB/s から 120 MB/s になりました。しかしくれぐれも、コピー元ディスクで読み取りエラーがあった場合はコピー先ディスクで&#039;&#039;破損ブロック&#039;&#039;になってしまうことに注意してください。つまり 512 バイトの読み取りエラーが1回あるだけで出力先ブロックの 64 KiB 全体が駄目になってしまいます。&lt;br /&gt;
&lt;br /&gt;
{{Tip|&#039;&#039;dd&#039;&#039; の進捗状況を表示したい場合、{{ic|1=status=progress}} オプションを使って下さい。詳しくは [[Core Utilities#dd]] を参照。}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* ext2/3/4 ファイルシステムで一意な UUID を復活させるには、各パーティションで {{ic|tune2fs /dev/sdXY -U random}} を実行してください。&lt;br /&gt;
* dd で変更したパーティションテーブルはカーネルには認識されません。再起動することなしにカーネルに変更を通知するには、partprobe （GNU Parted に含まれる）のようなユーティリティを使ってください。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== MBR のバックアップ ===&lt;br /&gt;
&lt;br /&gt;
MBR はディスクの頭512バイトに保存されています。MBR は3つの構成部位から成ります:&lt;br /&gt;
&lt;br /&gt;
# 最初の446バイトにはブートローダーが含まれます。&lt;br /&gt;
# 次の64バイトにはパーティションテーブルが含まれます (16バイトごとに4エントリ、1つのエントリに1つのプライマリパーティション)。&lt;br /&gt;
# 最後の2バイトには識別子が含まれます。&lt;br /&gt;
&lt;br /&gt;
MBR を {{ic|mbr.img}} ファイルに保存するには:&lt;br /&gt;
 # dd if=/dev/sdX of=/path/to/mbr_file.img bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
リストアするには (注意: 以下の操作で既存のパーティションテーブルが破壊されディスク上の全てのデータにアクセスできなくなる可能性があります):&lt;br /&gt;
 # dd if=/path/to/mbr_file.img of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
ブートローダーだけをリストアして、プライマリパーティションテーブルのエントリはそのままにしたい場合、MBR の最初の446バイトだけをリストアしてください:&lt;br /&gt;
 # dd if=/path/to/mbr_file.img of=/dev/sdX bs=446 count=1&lt;br /&gt;
&lt;br /&gt;
パーティションテーブルだけをリストアするには、次のコマンドを使用します:&lt;br /&gt;
 # dd if=/path/to/mbr_file.img of=/dev/sdX bs=1 skip=446 count=64&lt;br /&gt;
&lt;br /&gt;
完全な dd ディスクイメージから MBR を取得することもできます:&lt;br /&gt;
 # dd if=/path/to/disk.img of=/path/to/mbr_file.img bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
=== ディスクイメージの作成 ===&lt;br /&gt;
&lt;br /&gt;
1. liveCD や liveUSB から起動。&lt;br /&gt;
&lt;br /&gt;
2. コピー元ドライブの全てのパーティションがマウント解除されていることを確認する。&lt;br /&gt;
&lt;br /&gt;
3. 外部 HD をマウント。&lt;br /&gt;
&lt;br /&gt;
4. ドライブをバックアップ:&lt;br /&gt;
 # dd if=/dev/sd&#039;&#039;X&#039;&#039; conv=sync,noerror bs=64K | gzip -c  &amp;gt; &#039;&#039;/path/to/backup.img.gz&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
必要であれば (外部 HD が FAT32 でフォーマットされている場合など) ディスクイメージを分割します (&#039;&#039;split&#039;&#039; の [[man ページ]]を参照):&lt;br /&gt;
&lt;br /&gt;
 # dd if=/dev/sd&#039;&#039;X&#039;&#039; conv=sync,noerror bs=64K | gzip -c | split -a3 -b2G - &#039;&#039;/path/to/backup.img.gz&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ローカルに十分なディスク空き容量がない場合は、イメージをsshで転送すればよいです：&lt;br /&gt;
&lt;br /&gt;
 # dd if=/dev/sd&#039;&#039;X&#039;&#039; conv=sync,noerror bs=64K | gzip -c | ssh user@local dd of=backup.img.gz&lt;br /&gt;
&lt;br /&gt;
5. イメージ内に保存されたパーティションテーブルを解釈できるようにするために、ドライブのレイアウトに関する付加情報を保存します。&lt;br /&gt;
その情報の中で最も重要なのはシリンダーサイズです。&lt;br /&gt;
&lt;br /&gt;
 # fdisk -l /dev/sd&#039;&#039;X&#039;&#039; &amp;gt; &#039;&#039;/path/to/list_fdisk.info&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|You may wish to use a block size ({{ic|1=bs=}}) that is equal to the amount of cache on the HD you are backing up. For example, {{ic|1=bs=8192K}} works for an 8 MiB cache. The 64 Kib mentioned in this article is better than the default {{ic|1=bs=512}} bytes, but it will run faster with a larger {{ic|1=bs=}}.}}&lt;br /&gt;
&lt;br /&gt;
=== システムのリストア ===&lt;br /&gt;
&lt;br /&gt;
システムをリストアするには:&lt;br /&gt;
 # gunzip -c &#039;&#039;/path/to/backup.img.gz&#039;&#039; | dd of=/dev/sd&#039;&#039;X&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
もしくはイメージが複数のボリュームに分かれている場合:&lt;br /&gt;
 # cat &#039;&#039;/path/to/backup.img.gz*&#039;&#039; | gunzip -c | dd of=/dev/sd&#039;&#039;X&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== ディスククローンソフトウェア ==&lt;br /&gt;
&lt;br /&gt;
=== Arch でディスククローン ===&lt;br /&gt;
&lt;br /&gt;
* [[Partclone]] にはパーティション上の使用されているブロックを保存・復旧するためのユーティリティが入っており ext2, ext3, ext4, hfs+, reiserfs, reiser4, btrfs, vmfs3, vmfs5, xfs, jfs, ufs, ntfs, fat(12/16/32), exfat がサポートされています。オプションで、ncurses インターフェイスを使うこともできます。Partclone は community リポジトリからインストールできます。&lt;br /&gt;
* [http://www.partimage.org/ Partimage] は &#039;&#039;ncurses&#039;&#039; プログラムで、community リポジトリに入っています。Partimage は現在 &#039;&#039;ext4&#039;&#039; や &#039;&#039;btrfs&#039;&#039; ファイルシステムをサポートしていません。NTFS のサポートは実験段階です。&lt;br /&gt;
&lt;br /&gt;
=== Arch の外からディスククローン ===&lt;br /&gt;
&lt;br /&gt;
If you wish to backup or propagate your Arch install root, you are probably better off booting into something else and clone the partition from there. Some suggestions:&lt;br /&gt;
&lt;br /&gt;
* [http://partedmagic.com/doku.php?id=start PartedMagic] has a very nice live cd/usb with PartImage and other recovery tools.&lt;br /&gt;
* [http://www.mondorescue.org/ Mindi] is a linux distribution specifically for disk clone backup. It comes with its own cloning program, Mondo Rescue.&lt;br /&gt;
* [[wikipedia:Acronis_True_Image|Acronis True Image]] is a commercial disk cloner for Windows. It allows you to create a live (from within Windows), so you do not need a working Windows install on the actual machine to use it. After registration of the Acronis software on their website, you will be able to download a Linux-based Live CD and/or plugins for BartPE for creation of the Windows-based live CD. It can also create a WinPE Live CD based on Windows. The created ISO Live CD image by Acronis doesn&#039;t have the [http://www.syslinux.org/wiki/index.php/Isohybrid hybrid boot] ability and cannot be written to USB storage as a raw file.&lt;br /&gt;
* [http://www.fsarchiver.org/Main_Page FSArchiver] allows you to save the contents of a file system to a compressed archive file. Can be found on the [http://www.sysresccd.org/Main_Page System Rescue CD].&lt;br /&gt;
* [http://clonezilla.org/ Clonezilla] is an enhanced partition imager which can also restore entire disks as well as partitions. Clonezilla is included on the Arch Linux installation media.&lt;br /&gt;
* [http://redobackup.org/ Redo Backup and Recovery] is a Live CD featuring a graphical front-end to &#039;&#039;partclone&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [[Wikipedia:List of disk cloning software]]&lt;br /&gt;
* [https://bbs.archlinux.org/viewtopic.php?id=4329 Arch Linux フォーラムスレッド]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Nginx&amp;diff=4425</id>
		<title>Nginx</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Nginx&amp;diff=4425"/>
		<updated>2015-12-20T00:50:04Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: fix typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;br /&gt;
[[Category:ウェブサーバー]]&lt;br /&gt;
[[de:Nginx]]&lt;br /&gt;
[[en:Nginx]]&lt;br /&gt;
[[ru:Nginx]]&lt;br /&gt;
[[zh-CN:Nginx]]&lt;br /&gt;
[[Wikipedia:ja:nginx|nginx]] (&amp;quot;エンジンエックス&amp;quot;と発音します)は2005年から Igor Sysoev（ロシア）によって開発されている、フリーでオープンソースかつハイパフォーマンスな HTTP サーバーかつリバースプロクシで、IMAP/POP3 プロクシサーバーとしても機能します。Netcraft の [http://news.netcraft.com/archives/2014/01/03/january-2014-web-server-survey.html January 2014 Web Server Survey] によると、世界中の全てのドメインのうち 14.4% は Nginx によってホストされています。一方、[[Apache]] は41.64%をホストしています。Nginx は主に、その安定性・多機能・単純な設定・低リソース消費によって知られています。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
[[公式リポジトリ]]から {{Pkg|nginx}} パッケージを[[Pacman|インストール]]できます。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ruby on Rails&#039;&#039; のためにインストールするには、[[Ruby on Rails#Rails パーフェクトセットアップ]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
セキュリティを向上させるために chroot によるインストールをするには、[[#chroot でインストール]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
== サービスの開始 ==&lt;br /&gt;
&lt;br /&gt;
Nginx サービスを走らせるには:&lt;br /&gt;
 # systemctl start nginx&lt;br /&gt;
&lt;br /&gt;
スタートアップ時に Nginx サービスを起動するには:&lt;br /&gt;
 # systemctl enable nginx&lt;br /&gt;
&lt;br /&gt;
http://127.0.0.1 にデフォルトで表示されるページは:&lt;br /&gt;
 /usr/share/nginx/html/index.html&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
nginx における最初の手順は [http://nginx.org/en/docs/beginners_guide.html 公式のビギナーズガイド] で説明されています。{{ic|/etc/nginx/}} にあるファイルを編集することで Nginx の設定ができます。メインの設定ファイルは {{ic|/etc/nginx/nginx.conf}} です。&lt;br /&gt;
&lt;br /&gt;
より詳しい解説はこちら: 公式の [http://nginx.org/en/docs/ ドキュメント] にある [http://wiki.nginx.org/Configuration Nginx Configuration Examples]。&lt;br /&gt;
&lt;br /&gt;
=== 一般設定 ===&lt;br /&gt;
&lt;br /&gt;
{{ic|worker_processes}} の適当な値を探って下さい。この設定は最終的に nginx が受け入れる接続の数と利用できるプロセスの数を定義します。通常、システムのハードウェアのスレッド数にすると良いでしょう。また、バージョン 1.3.8 と 1.2.5 から {{ic|worker_processes}} には {{ic|auto}} と設定することができ、最適な値を自動的に検出します ([http://nginx.org/en/docs/ngx_core_module.html#worker_processes ソース])。&lt;br /&gt;
&lt;br /&gt;
nginx が受け入れる最大接続数は {{ic|1=max_clients = worker_processes * worker_connections}} で計算できます。&lt;br /&gt;
&lt;br /&gt;
==== サーバーブロック ====&lt;br /&gt;
&lt;br /&gt;
{{ic|server}} ブロックを使うことで複数のドメインを利用することができます。&amp;quot;バーチャルホスト&amp;quot;とも呼ばれますが、これは [[Apache]] の用語です。{{ic|server}} ブロックの利用方法は [http://wiki.nginx.org/ServerBlockExample Apache] とは異なっています。&lt;br /&gt;
&lt;br /&gt;
以下の例では2つのドメインの接続をサーバーが待機します: {{ic|domainname1.dom}} と {{ic|domainname2.dom}}:&lt;br /&gt;
{{hc|/etc/nginx/nginx.conf|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
server {&lt;br /&gt;
        listen 80;&lt;br /&gt;
        server_name domainname1.dom;&lt;br /&gt;
        root /usr/share/nginx/domainname1.dom/html;&lt;br /&gt;
        location / {&lt;br /&gt;
           index index.php index.html index.htm;&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
        listen 80;&lt;br /&gt;
        server_name domainname2.dom;&lt;br /&gt;
        root /usr/share/nginx/domainname2.dom/html;&lt;br /&gt;
        ...&lt;br /&gt;
}&lt;br /&gt;
...&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{ic|nginx.service}} を[[再起動]]して変更を適用します。&lt;br /&gt;
&lt;br /&gt;
クライアントからの接続時にこれらのドメイン名を解決するには、[[BIND]] や [[dnsmasq]] などのDNSサーバーを設定する必要があります。&lt;br /&gt;
&lt;br /&gt;
ローカルマシンでバーチャルホストをテストするには、{{ic|/etc/hosts}} ファイルにバーチャルネームを追加してください:&lt;br /&gt;
 127.0.0.1 domainname1.dom &lt;br /&gt;
 127.0.0.1 domainname2.dom&lt;br /&gt;
&lt;br /&gt;
==== SSL ====&lt;br /&gt;
SSL を使用するには、{{pkg|openssl}} をインストールする必要があります。&lt;br /&gt;
&lt;br /&gt;
自己署名証明書を作成してください (キーのサイズや効力の日数は変更できます):&lt;br /&gt;
 # cd /etc/nginx/&lt;br /&gt;
 # openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out cert.key&lt;br /&gt;
 # chmod 600 cert.key&lt;br /&gt;
 # openssl req -new -key cert.key -out cert.csr&lt;br /&gt;
 # openssl x509 -req -days 365 -in cert.csr -signkey cert.key -out cert.crt&lt;br /&gt;
&lt;br /&gt;
HTTPS サーバーの server ブロックを以下のように修正してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/nginx/nginx.conf|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
        listen       443 ssl;&lt;br /&gt;
        server_name  localhost;&lt;br /&gt;
&lt;br /&gt;
        ssl_certificate      cert.crt;&lt;br /&gt;
        ssl_certificate_key  cert.key;&lt;br /&gt;
&lt;br /&gt;
        ssl_session_cache    shared:SSL:1m;&lt;br /&gt;
        ssl_session_timeout  5m;&lt;br /&gt;
&lt;br /&gt;
        ssl_ciphers  HIGH:!aNULL:!MD5;&lt;br /&gt;
        ssl_prefer_server_ciphers  on;&lt;br /&gt;
&lt;br /&gt;
	root   /usr/share/nginx/html;&lt;br /&gt;
        location / {&lt;br /&gt;
            index  index.html index.htm index.php;&lt;br /&gt;
        }&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{ic|nginx.service}} を再起動して変更を適用します。&lt;br /&gt;
&lt;br /&gt;
=== FastCGI ===&lt;br /&gt;
&lt;br /&gt;
FastCGI、または FCGI はウェブサーバーでインタラクティブなプログラムを動作させるためのプロトコルです。FastCGI は Common Gateway Interface (CGI) の変種で、ウェブサーバーと CGI プログラムのオーバーヘッドを減らすよう設計されていて、サーバーはより多くのウェブページのリクエストを一度に捌くことができます。&lt;br /&gt;
&lt;br /&gt;
Nginx には FastCGI が組み込まれており多くの外部ツールが動きます、例えば Perl、[[PHP]]、[[Python]] など。これらを使うためにはまず FastCGI サーバーを動かす必要があります。&lt;br /&gt;
&lt;br /&gt;
==== PHP を動かす ====&lt;br /&gt;
&lt;br /&gt;
PHP のために FastCGI サーバーを動かす方法は複数あります。ここでは推奨方法として php-fpm を使う方法を記載しています。&lt;br /&gt;
&lt;br /&gt;
===== 手順1: PHP の設定 =====&lt;br /&gt;
&lt;br /&gt;
{{Pkg|php}} をインストールしてください。{{ic|/etc/php/php.ini}} の中にある {{Ic|open_basedir}} に PHP ファイルが含まれているベースディレクトリを （{{ic|/srv/http/}} や {{ic|/usr/share/webapps/}} のような感じで）指定しなくてはなりません:&lt;br /&gt;
 open_basedir = /usr/share/webapps/:/srv/http/:/home/:/tmp/:/usr/share/pear/&lt;br /&gt;
&lt;br /&gt;
そうしたら必要なモジュールを設定しましょう。例えば sqlite3 を使うなら {{Pkg|php-sqlite}} をインストールして、{{ic|/etc/php/php.ini}} の次の行をアンコメントして有効にします:&lt;br /&gt;
 extension=sqlite3.so&lt;br /&gt;
&lt;br /&gt;
{{Note|chroot 環境で nginx を動かしている場合 (chroot は {{ic|/srv/nginx-jail}} で、ウェブページは {{ic|/srv/nginx-jail/www}}) です。{{ic|/etc/php/php-fpm.conf}} ファイルを編集して {{ic|chroot /srv/nginx-jail}} と {{ic|1=listen = /srv/nginx-jail/run/php-fpm/php-fpm.sock}} ディレクティブを pool セクション (デフォルトは {{ic|[www]}}) の中に記述する必要があります。ソケットファイルのディレクトリが存在しない場合は作成してください。}}&lt;br /&gt;
&lt;br /&gt;
====== MariaDB ======&lt;br /&gt;
[[MariaDB]] で説明されているようにして MySQL/MariaDB を設定してください。&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/php/php.ini}} の以下の行の [http://www.php.net/manual/en/mysqlinfo.api.choosing.php 少なくともどれか一つ] をアンコメント:&lt;br /&gt;
 extension=pdo_mysql.so&lt;br /&gt;
 extension=mysqli.so&lt;br /&gt;
{{Warning|PHP 5.5 から、{{ic|mysql.so}} は [http://www.php.net/manual/de/migration55.deprecated.php 廃止] されログファイルにエラーが表示されます。}}&lt;br /&gt;
&lt;br /&gt;
ウェブスクリプトのために最小権限の MySQL ユーザーを追加することができます。また、{{ic|/etc/mysql/my.cnf}} を編集して {{ic|skip-networking}} 行をアンコメントすると MySQL サーバーはローカルホストからしかアクセスできなくなります。変更を適用するには MySQL を再起動する必要があります。&lt;br /&gt;
&lt;br /&gt;
{{Tip|データベースを利用するために [[phpMyAdmin]], [[Adminer]], {{Pkg|mysql-workbench}} などのツールをインストールしても良いでしょう。}}&lt;br /&gt;
&lt;br /&gt;
===== 手順2: php-fpm =====&lt;br /&gt;
&lt;br /&gt;
* http://php-fpm.org&lt;br /&gt;
&lt;br /&gt;
{{Pkg|php-fpm}} をインストールします:&lt;br /&gt;
 # pacman -S php-fpm&lt;br /&gt;
&lt;br /&gt;
設定ファイルは {{ic|/etc/php/php-fpm.conf}} です。&lt;br /&gt;
&lt;br /&gt;
サービスを動かします:&lt;br /&gt;
 # systemctl start php-fpm&lt;br /&gt;
&lt;br /&gt;
{{Ic|php-fpm}} をスタートアップ時に有効にします:&lt;br /&gt;
 # systemctl enable php-fpm.service&lt;br /&gt;
&lt;br /&gt;
===== 手順3: Nginx の設定 =====&lt;br /&gt;
&lt;br /&gt;
それぞれの {{ic|server}} ブロックの中の {{ic|location}} ブロックに PHP アプリケーションを次のように記述します: &lt;br /&gt;
&lt;br /&gt;
 location ~ \.php$ {&lt;br /&gt;
      fastcgi_pass   unix:/run/php-fpm/php-fpm.sock;&lt;br /&gt;
      fastcgi_index  index.php;&lt;br /&gt;
      include        fastcgi.conf;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
{{Ic|/etc/nginx/php.conf}} を作って設定をそこに書く場合、このファイルを {{Ic|server}} ブロックに入れて下さい。&lt;br /&gt;
 server = {&lt;br /&gt;
     ...&lt;br /&gt;
     include  php.conf;&lt;br /&gt;
     ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
.html や .htm ファイルを PHP として処理したい場合は、以下のようにしてください:&lt;br /&gt;
 location ~ \.(php|html|htm)$ {&lt;br /&gt;
      fastcgi_pass  unix:/run/php-fpm/php-fpm.sock;&lt;br /&gt;
      fastcgi_index  index.php;&lt;br /&gt;
      include        fastcgi_params;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
拡張子が .php でないファイルを php-fpm で動かすことを {{Ic|/etc/php/php-fpm.conf}} で有効にする必要があります:&lt;br /&gt;
 security.limit_extensions = .php .html .htm&lt;br /&gt;
&lt;br /&gt;
設定を変えた後は php-fpm デーモンを再起動してください。&lt;br /&gt;
 # systemctl restart php-fpm&lt;br /&gt;
&lt;br /&gt;
{{Note|{{Ic|fastcgi_pass}} 引数に&#039;&#039;&#039;注意を払って下さい&#039;&#039;&#039;、FastCGI サーバーの設定ファイルで定義された TCP や Unix ソケットでなくてはなりません。&#039;&#039;&#039;デフォルトの&#039;&#039;&#039; {{Ic|php-fpm}} (Unix) ソケットは&lt;br /&gt;
 fastcgi_pass unix:/run/php-fpm/php-fpm.sock;&lt;br /&gt;
&#039;&#039;&#039;デフォルトの代わりに&#039;&#039;&#039;、通常の TCP ソケットを使うこともできます&lt;br /&gt;
 fastcgi_pass 127.0.0.1:9000;&lt;br /&gt;
ただし Unix ドメインソケットの方が高速です。}}&lt;br /&gt;
&lt;br /&gt;
Nginx のための FastCGI 設定がある {{Ic|fastcgi.conf}} か {{Ic|fastcgi_params}} が含まれていますが、後者は使われなくなりました。これらのファイルは Nginx をインストールしたときに作られます。&lt;br /&gt;
&lt;br /&gt;
最後に、Nginx が動作している場合は再起動してください:&lt;br /&gt;
 # systemctl restart nginx&lt;br /&gt;
&lt;br /&gt;
FastCGI をテストしたい場合は、{{ic|/usr/share/nginx/html/index.php}} を次の内容で作成して&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
   phpinfo();&lt;br /&gt;
 ?&amp;gt; &lt;br /&gt;
ブラウザで http://127.0.0.1/index.php を開いて下さい。&lt;br /&gt;
&lt;br /&gt;
以下は実際の設定例です。例の中では {{ic|root}} パスは {{ic|server}} の下に直接指定されており (デフォルト設定のように) {{ic|location}} の中には置いていません。&lt;br /&gt;
&lt;br /&gt;
 server {&lt;br /&gt;
     listen 80;&lt;br /&gt;
     server_name localhost;&lt;br /&gt;
     root /usr/share/nginx/html;&lt;br /&gt;
     location / {&lt;br /&gt;
         index index.html index.htm index.php;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     location ~ \.php$ {&lt;br /&gt;
         #fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)&lt;br /&gt;
         fastcgi_pass unix:/run/php-fpm/php-fpm.sock;&lt;br /&gt;
         fastcgi_index index.php;&lt;br /&gt;
         include fastcgi.conf;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== CGI を動かす ====&lt;br /&gt;
&lt;br /&gt;
この実装は CGI アプリケーションに必要です。&lt;br /&gt;
&lt;br /&gt;
===== 手順1: fcgiwrap =====&lt;br /&gt;
&lt;br /&gt;
{{Pkg|fcgiwrap}} をインストールしてください。&lt;br /&gt;
設定ファイルは {{ic|/usr/lib/systemd/system/fcgiwrap.socket}} です。&lt;br /&gt;
[[systemd]] の &#039;&#039;fcgiwrap.socket&#039;&#039; を有効化・起動します。&lt;br /&gt;
&lt;br /&gt;
この systemd ユニットファイルは現在 [https://bugs.archlinux.org/task/31696 ArchLinux のタスクページ]で議論されています。思い通りに動くか確認するためにユニットファイルを自分で検査すると良いでしょう。&lt;br /&gt;
&lt;br /&gt;
====== マルチワーカースレッド ======&lt;br /&gt;
&lt;br /&gt;
複数のワーカースレッドを生成したい場合は、{{AUR|multiwatch}} を使用するのが推奨されています。これはクラッシュした子スレッドの再起動の面倒をみてくれます。multiwatch は systemd が作成したソケットを管理できないため、unix ソケットを作成するには {{ic|spawn-fcgi}} を使う必要がありますが、ユニットファイルから直接実行した場合は fcgiwrap には問題が生じません。&lt;br /&gt;
&lt;br /&gt;
{{ic|/usr/lib/systemd/system/fcgiwrap.service}} から {{ic|/etc/systemd/system/fcgiwrap.service}} にユニットファイルをコピーして (存在する場合は {{ic|fcgiwrap.socket}} ユニットも)、{{ic|ExecStart}} 行を必要に応じて修正してください。以下は {{AUR|multiwatch}} を使用するユニットファイルです。{{ic|fcgiwrap.socket}} が実行中だったり有効になっていないことを確認してください、このユニットと衝突してしまうからです:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/fcgiwrap.service|2=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Simple CGI Server&lt;br /&gt;
After=nss-user-lookup.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
ExecStartPre=/bin/rm -f /run/fcgiwrap.socket&lt;br /&gt;
ExecStart=/usr/bin/spawn-fcgi -u http -g http -s /run/fcgiwrap.sock -n -- /usr/bin/multiwatch -f 10 -- /usr/sbin/fcgiwrap&lt;br /&gt;
ExecStartPost=/usr/bin/chmod 660 /run/fcgiwrap.sock&lt;br /&gt;
PrivateTmp=true&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|-f 10}} は生成する子スレッドの数に変更してください。&lt;br /&gt;
&lt;br /&gt;
{{Warning|The ExecStartPost line is required because of strange behaviour I&#039;m seeing when I use the {{ic|-M 660}} option for {{ic|spawn-fcgi}}.  The wrong mode is set.  This may be a bug?}}&lt;br /&gt;
&lt;br /&gt;
===== 手順2: Nginx の設定 =====&lt;br /&gt;
&lt;br /&gt;
CGI ウェブアプリケーションを置くそれぞれの {{Ic|server}} ブロックには以下のような {{Ic|location}} ブロックを記述します:&lt;br /&gt;
&lt;br /&gt;
 location ~ \.cgi$ {&lt;br /&gt;
      root           /path/to/server/cgi-bin;&lt;br /&gt;
      fastcgi_pass   unix:/run/fcgiwrap.sock;&lt;br /&gt;
      include        fastcgi.conf;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
{{Ic|fcgiwrap}} の&#039;&#039;&#039;デフォルト&#039;&#039;&#039; (Unix) ソケットは &#039;&#039;/run/fcgiwrap.sock&#039;&#039; です。&lt;br /&gt;
&lt;br /&gt;
== chroot でインストール ==&lt;br /&gt;
&lt;br /&gt;
[[chroot]] に Nginx をインストールすることでセキュリティレイヤーを追加することができます。セキュリティを最大限に高めるために、Nginx サーバーを動かすのに必要なファイルだけを入れて、全てのファイルは出来る限り最小限の権限にします。例えば、なるべく root が所有するようにして、{{ic|/usr/bin}} などのディレクトリは読み書きできないようにするなど。&lt;br /&gt;
&lt;br /&gt;
Arch はデフォルトでサーバーを実行するための {{ic|http}} ユーザーとグループが設定されています。chroot は {{ic|/srv/http}} で動作させます。&lt;br /&gt;
&lt;br /&gt;
この牢獄を作るための perl スクリプトが [https://gist.github.com/4365696 jail.pl gist] にあります。このスクリプトを使用するか、またはこの記事の指示に従って作成するか選ぶことができます。スクリプトは root で実行してください。変更を適用する前に行をアンコメントする必要があります。&lt;br /&gt;
&lt;br /&gt;
=== 必要なデバイスを作成 ===&lt;br /&gt;
&lt;br /&gt;
Nginx には {{ic|/dev/null}}, {{ic|/dev/random}}, {{ic|/dev/urandom}} が必要です。これらを chroot にインストールするために {{ic|/dev/}} フォルダを作成してデバイスを mknod で追加します。chroot が危険になったときでも、攻撃者が {{ic|/dev/sda1}} などの重要なデバイスにアクセスするには chroot から脱出しなくてはならないようにするために、{{ic|/dev/}} を全てマウントはしません。&lt;br /&gt;
&lt;br /&gt;
{{Tip|mknod の引数については {{ic|man mknod}} や {{ic|&amp;lt;nowiki&amp;gt;ls -l /dev/{null,random,urandom}&amp;lt;/nowiki&amp;gt;}} を見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
 # export JAIL=/srv/http&lt;br /&gt;
 # mkdir $JAIL/dev&lt;br /&gt;
 # mknod -m 0666 $JAIL/dev/null c 1 3&lt;br /&gt;
 # mknod -m 0666 $JAIL/dev/random c 1 8&lt;br /&gt;
 # mknod -m 0444 $JAIL/dev/urandom c 1 9&lt;br /&gt;
&lt;br /&gt;
=== 必要なフォルダを作成 ===&lt;br /&gt;
&lt;br /&gt;
Nginx を適切に実行するためにはたくさんのファイルが必要になります。それらをコピーする前に、ファイルを保存するためのフォルダを作成してください。ここでは Nginx のドキュメントルートが {{ic|/srv/http/www}} であると仮定します。&lt;br /&gt;
&lt;br /&gt;
 # mkdir -p $JAIL/etc/nginx/logs&lt;br /&gt;
 # mkdir -p $JAIL/usr/{lib,bin}&lt;br /&gt;
 # mkdir -p $JAIL/usr/share/nginx&lt;br /&gt;
 # mkdir -p $JAIL/var/{log,lib}/nginx&lt;br /&gt;
 # mkdir -p $JAIL/www/cgi-bin&lt;br /&gt;
 # mkdir -p $JAIL/{run,tmp}&lt;br /&gt;
 # cd $JAIL; ln -s usr/lib lib &lt;br /&gt;
&lt;br /&gt;
{{Note|64ビットのカーネルを使っている場合 {{ic|usr/lib}} に {{ic|lib64}} と {{ic|usr/lib64}} のシンボリックリンクを作成する必要があります: {{ic|cd $JAIL; ln -s usr/lib lib64}} と {{ic|cd $JAIL/usr; ln -s lib lib64}}。}}&lt;br /&gt;
&lt;br /&gt;
そして {{ic|$JAIL/tmp}} と {{ic|$JAIL/run}} を tmpfs でマウントします。攻撃者が RAM を全て喰いつくせないようにサイズを制限すると良いでしょう。&lt;br /&gt;
&lt;br /&gt;
 # mount -t tmpfs none $JAIL/run -o &#039;noexec,size=1M&#039;&lt;br /&gt;
 # mount -t tmpfs none $JAIL/tmp -o &#039;noexec,size=100M&#039;&lt;br /&gt;
&lt;br /&gt;
再起動してもマウントが維持されるように、以下のエントリを {{ic|/etc/fstab}} に追加します:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/fstab|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 tmpfs   /srv/http/run   tmpfs   rw,noexec,relatime,size=1024k   0       0&lt;br /&gt;
 tmpfs   /srv/http/tmp   tmpfs   rw,noexec,relatime,size=102400k 0       0&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== chroot に移住 ===&lt;br /&gt;
&lt;br /&gt;
まず平易なファイルをコピーします。&lt;br /&gt;
&lt;br /&gt;
 # cp -r /usr/share/nginx/* $JAIL/usr/share/nginx&lt;br /&gt;
 # cp -r /usr/share/nginx/html/* $JAIL/www&lt;br /&gt;
 # cp /usr/bin/nginx $JAIL/usr/bin/&lt;br /&gt;
 # cp -r /var/lib/nginx $JAIL/var/lib/nginx&lt;br /&gt;
&lt;br /&gt;
そして必要なライブラリをコピーします。ldd を使ってライブラリを確認して適当な場所にコピーして下さい。ハードリンクよりはコピーが推奨されます。攻撃者が書き込み権限を得たときに本当のシステムファイルが破壊されたり改変される可能性があるためです。&lt;br /&gt;
&lt;br /&gt;
 {{hc|$ ldd /usr/bin/nginx|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
   linux-vdso.so.1 (0x00007fffc41fe000)&lt;br /&gt;
   libpthread.so.0 =&amp;gt; /usr/lib/libpthread.so.0 (0x00007f57ec3e8000)&lt;br /&gt;
   libcrypt.so.1 =&amp;gt; /usr/lib/libcrypt.so.1 (0x00007f57ec1b1000)&lt;br /&gt;
   libstdc++.so.6 =&amp;gt; /usr/lib/libstdc++.so.6 (0x00007f57ebead000)&lt;br /&gt;
   libm.so.6 =&amp;gt; /usr/lib/libm.so.6 (0x00007f57ebbaf000)&lt;br /&gt;
   libpcre.so.1 =&amp;gt; /usr/lib/libpcre.so.1 (0x00007f57eb94c000)&lt;br /&gt;
   libssl.so.1.0.0 =&amp;gt; /usr/lib/libssl.so.1.0.0 (0x00007f57eb6e0000)&lt;br /&gt;
   libcrypto.so.1.0.0 =&amp;gt; /usr/lib/libcrypto.so.1.0.0 (0x00007f57eb2d6000)&lt;br /&gt;
   libdl.so.2 =&amp;gt; /usr/lib/libdl.so.2 (0x00007f57eb0d2000)&lt;br /&gt;
   libz.so.1 =&amp;gt; /usr/lib/libz.so.1 (0x00007f57eaebc000)&lt;br /&gt;
   libGeoIP.so.1 =&amp;gt; /usr/lib/libGeoIP.so.1 (0x00007f57eac8d000)&lt;br /&gt;
   libgcc_s.so.1 =&amp;gt; /usr/lib/libgcc_s.so.1 (0x00007f57eaa77000)&lt;br /&gt;
   libc.so.6 =&amp;gt; /usr/lib/libc.so.6 (0x00007f57ea6ca000)&lt;br /&gt;
   /lib64/ld-linux-x86-64.so.2 (0x00007f57ec604000)&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
 # cp /lib64/ld-linux-x86-64.so.2 $JAIL/lib&lt;br /&gt;
&lt;br /&gt;
{{ic|/usr/lib}} の中にあるファイルについては次のワンライナーが使えます:&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;# cp $(ldd /usr/bin/nginx | grep /usr/lib | sed -sre &#039;s/(.+)(\/usr\/lib\/\S+).+/\2/g&#039;) $JAIL/usr/lib&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|linux-vdso.so}} をコピーしないでください – 実際のライブラリではなく {{ic|/usr/lib}} には存在しません。64ビット環境の場合 {{ic|ld-linux-x86-64.so}} も {{ic|/lib64}} にあるように表示されます。}}&lt;br /&gt;
&lt;br /&gt;
必要なライブラリとシステムファイル以外のファイルをコピーします。&lt;br /&gt;
&lt;br /&gt;
{{bc|# cp /usr/lib/libnss_* $JAIL/usr/lib&lt;br /&gt;
# cp -rfvL /etc/{services,localtime,nsswitch.conf,nscd.conf,protocols,hosts,ld.so.cache,ld.so.conf,resolv.conf,host.conf,nginx} $JAIL/etc}}&lt;br /&gt;
 &lt;br /&gt;
Create restricted user/group files for the chroot. This way only the&lt;br /&gt;
users needed for the chroot to function exist as far as the chroot&lt;br /&gt;
knows, and none of the system users/groups are leaked to attackers&lt;br /&gt;
should they gain access to the chroot.&lt;br /&gt;
&lt;br /&gt;
{{hc|$JAIL/etc/group|&lt;br /&gt;
http:x:33:&lt;br /&gt;
nobody:x:99:&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{hc|$JAIL/etc/passwd|&lt;br /&gt;
http:x:33:33:http:/:/bin/false&lt;br /&gt;
nobody:x:99:99:nobody:/:/bin/false&lt;br /&gt;
}}&lt;br /&gt;
  &lt;br /&gt;
{{hc|$JAIL/etc/shadow|&lt;br /&gt;
http:x:14871::::::&lt;br /&gt;
nobody:x:14871::::::&lt;br /&gt;
}}&lt;br /&gt;
  &lt;br /&gt;
{{hc|$JAIL/etc/gshadow|&lt;br /&gt;
http:::&lt;br /&gt;
nobody:::&lt;br /&gt;
}}&lt;br /&gt;
  &lt;br /&gt;
 # touch $JAIL/etc/shells&lt;br /&gt;
 # touch $JAIL/run/nginx.pid&lt;br /&gt;
&lt;br /&gt;
Finally make set very restrictive permissions. As much as possible&lt;br /&gt;
should be owned by root and set unwritable.&lt;br /&gt;
&lt;br /&gt;
 # chown -R root:root $JAIL/&lt;br /&gt;
  &lt;br /&gt;
 # chown -R http:http $JAIL/www&lt;br /&gt;
 # chown -R http:http $JAIL/etc/nginx&lt;br /&gt;
 # chown -R http:http $JAIL/var/{log,lib}/nginx&lt;br /&gt;
 # chown http:http $JAIL/run/nginx.pid&lt;br /&gt;
  &lt;br /&gt;
 # find $JAIL/ -gid 0 -uid 0 -type d -print | xargs sudo chmod -rw&lt;br /&gt;
 # find $JAIL/ -gid 0 -uid 0 -type d -print | xargs sudo chmod +x&lt;br /&gt;
 # find $JAIL/etc -gid 0 -uid 0 -type f -print | xargs sudo chmod -x&lt;br /&gt;
 # find $JAIL/usr/bin -type f -print | xargs sudo chmod ug+rx&lt;br /&gt;
 # find $JAIL/ -group http -user http -print | xargs sudo chmod o-rwx&lt;br /&gt;
 # chmod +rw $JAIL/tmp&lt;br /&gt;
 # chmod +rw $JAIL/run&lt;br /&gt;
&lt;br /&gt;
If your server will bind port 80 (or any port 0-1024), give the&lt;br /&gt;
chrooted executable permission to bind these ports without root.&lt;br /&gt;
&lt;br /&gt;
 # setcap &#039;cap_net_bind_service=+ep&#039; $JAIL/usr/bin/nginx&lt;br /&gt;
&lt;br /&gt;
=== nginx.service を変更して chroot を起動 ===&lt;br /&gt;
&lt;br /&gt;
Before modifying the nginx.service unit file, it may be a good idea to copy it to&lt;br /&gt;
{{ic|/etc/systemd/system/}} since the unit files there take priority over those in {{ic|/usr/lib/systemd/system/}}. &lt;br /&gt;
This means upgrading nginx would not modify your custom .service file. &lt;br /&gt;
 # cp /usr/lib/systemd/system/nginx.service /etc/systemd/system/nginx.service&lt;br /&gt;
&lt;br /&gt;
The systemd unit must be changed to start up Nginx in the chroot, as&lt;br /&gt;
the http user, and store the pid file in the chroot &lt;br /&gt;
{{Note|I&#039;m not sure if the pid file needs to be stored in the chroot jail.}}&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/nginx.service|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=A high performance web server and a reverse proxy server&lt;br /&gt;
 After=syslog.target network.target&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 PIDFile=/srv/http/run/nginx.pid&lt;br /&gt;
 ExecStartPre=/usr/bin/chroot --userspec=http:http /srv/http /usr/bin/nginx -t -q -g &#039;pid /run/nginx.pid; daemon on; master_process on;&#039;&lt;br /&gt;
 ExecStart=/usr/bin/chroot --userspec=http:http /srv/http /usr/bin/nginx -g &#039;pid /run/nginx.pid; daemon on; master_process on;&#039;&lt;br /&gt;
 ExecReload=/usr/bin/chroot --userspec=http:http /srv/http /usr/bin/nginx -g &#039;pid /run/nginx.pid; daemon on; master_process on;&#039; -s reload&lt;br /&gt;
 ExecStop=/usr/bin/chroot --userspec=http:http /srv/http /usr/bin/nginx -g &#039;pid /run/nginx.pid;&#039; -s quit&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Upgrading nginx with pacman will not upgrade the chrooted nginx installation. You have to take care of the updates manually by repeating some of the steps above. Do not forget to also update the libraries it links against. }}&lt;br /&gt;
&lt;br /&gt;
You can now safely get rid of the non-chrooted nginx installation. &lt;br /&gt;
 # pacman -Rsc nginx&lt;br /&gt;
&lt;br /&gt;
If you do not remove the non-chrooted nginx installation, you may want to make sure that the running nginx process is in fact the chrooted one. You can do so by checking where {{ic|/proc/{PID}/root}} symmlinks to. If should link to {{ic|/srv/http}} instead of {{ic|/}}. &lt;br /&gt;
 # ps -C nginx | awk &#039;{print $1}&#039; | sed 1d | while read -r PID; do ls -l /proc/$PID/root; done&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== 設定の確認 ===&lt;br /&gt;
 # nginx -t&lt;br /&gt;
&lt;br /&gt;
結果:&lt;br /&gt;
&lt;br /&gt;
 nginx: the configuration file /etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
=== ローカル IP へのアクセスが localhost にリダイレクトされる ===&lt;br /&gt;
&lt;br /&gt;
Arch Linux [https://bbs.archlinux.org/viewtopic.php?pid=780561#p780561 フォーラム]からの解決法があります。&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/nginx/nginx.conf}} を開き、&amp;quot;server_name localhost&amp;quot; の前の # を取り除き、以下を付け加えます:&lt;br /&gt;
 server_name_in_redirect off;&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、nginx は設定にある server_name へのリクエストをすべてリダイレクトします。&lt;br /&gt;
&lt;br /&gt;
=== Error: 403 (Permission error) ===&lt;br /&gt;
&lt;br /&gt;
This is most likely a permission error. Are you sure whatever user configured in the Nginx configuration is able to read the correct files?&lt;br /&gt;
&lt;br /&gt;
If the files are located within a home directory, (e.g. {{ic|/home/arch/public/webapp}}) and you are sure the user running Nginx has the right permissions (you can temporarily chmod all the files to 777 in order to determine this), {{ic|/home/arch}} might be &#039;&#039;&#039;chmod 750&#039;&#039;&#039;, simply {{Ic|chmod}} it to &#039;&#039;751&#039;&#039;, and it should work.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;If you have changed your document root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you are sure that permissions are as they should be, make sure that your document root directory is not empty. Try creating index.html in there.&lt;br /&gt;
&lt;br /&gt;
=== Error: 404 (Pathinfo error) ===&lt;br /&gt;
&lt;br /&gt;
いくつかのフレームワーク （thinkphp、cakephp など）や CMS では pathinfo が必要です。&lt;br /&gt;
&lt;br /&gt;
1. {{ic|/etc/php/php.ini}} ファイルを開き、次のように付け加えます&lt;br /&gt;
 cgi.fix_pathinfo=1&lt;br /&gt;
2. {{ic|/etc/nginx/nginx.conf}} を開き、次の部分をコメントアウトします&lt;br /&gt;
&lt;br /&gt;
 location ~ \.php$ {&lt;br /&gt;
 ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
を&lt;br /&gt;
&lt;br /&gt;
 #location ~ \.php$ {&lt;br /&gt;
 #...&lt;br /&gt;
 #}&lt;br /&gt;
&lt;br /&gt;
そして以下を加えます&lt;br /&gt;
 location ~ ^(.+\.php)(.*)$ {&lt;br /&gt;
   root   /srv/http/nginx;&lt;br /&gt;
   fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock; 	&lt;br /&gt;
   #fastcgi_pass   127.0.0.1:9000; #Un-comment this and comment &amp;quot;fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;&amp;quot; if you are not using php-fpm.&lt;br /&gt;
   fastcgi_index  index.php;&lt;br /&gt;
   set $document_root2 $document_root;&lt;br /&gt;
   if ($document_root2 ~ &amp;quot;^(.*\\\\).*?[\\\\|\/]\.\.\/(.*)$&amp;quot;) { set $document_root2 $1$2; }&lt;br /&gt;
   if ($document_root2 ~ &amp;quot;^(.*\\\\).*?[\\\\|\/]\.\.\/(.*)$&amp;quot;) {	set $document_root2 $1$2; }&lt;br /&gt;
   if ($document_root2 ~ &amp;quot;^(.*\\\\).*?[\\\\|\/]\.\.\/(.*)$&amp;quot;) {	set $document_root2 $1$2; }&lt;br /&gt;
   if ($document_root2 ~ &amp;quot;^(.*\\\\).*?[\\\\|\/]\.\.\/(.*)$&amp;quot;) {	set $document_root2 $1$2; }&lt;br /&gt;
   if ($document_root2 ~ &amp;quot;^(.*\\\\).*?[\\\\|\/]\.\.\/(.*)$&amp;quot;) {	set $document_root2 $1$2; }&lt;br /&gt;
   fastcgi_split_path_info ^(.+\.php)(.*)$;&lt;br /&gt;
   fastcgi_param	SCRIPT_FILENAME	$document_root2$fastcgi_script_name;&lt;br /&gt;
   fastcgi_param	PATH_INFO	$fastcgi_path_info;&lt;br /&gt;
   fastcgi_param	PATH_TRANSLATED	$document_root2$fastcgi_path_info;&lt;br /&gt;
   include	fastcgi_params;&lt;br /&gt;
   fastcgi_param  DOCUMENT_ROOT      $document_root2;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
try_files を使う方法もあります:&lt;br /&gt;
 server {&lt;br /&gt;
 ..&lt;br /&gt;
    root /usr/share/nginx/html;&lt;br /&gt;
    index index.php;&lt;br /&gt;
    location / {&lt;br /&gt;
      try_files $uri $uri/ /index.php?$args;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Error: The page you are looking for is temporarily unavailable. Please try again later. ===&lt;br /&gt;
&lt;br /&gt;
FastCGI サーバーが動作していないか、ソケットが間違ったパーミッションに設定されています。&lt;br /&gt;
&lt;br /&gt;
=== Error: No input file specified ===&lt;br /&gt;
&lt;br /&gt;
おそらくスクリプトのフルパスを含んだ SCRIPT_FILENAME がありません。&lt;br /&gt;
nginx の設定 (fastcgi_param  SCRIPT_FILENAME) が完全でも、このエラーは php が requestd スクリプトをロードできないことを意味しています。これは単純にパーミッションの問題であることが普通で、root で php-cgi を実行するか&lt;br /&gt;
 # spawn-fcgi -a 127.0.0.1 -p 9000 -f /usr/bin/php-cgi&lt;br /&gt;
php-cgi を起動するグループとユーザーを作成する必要があります。例えば:&lt;br /&gt;
 # groupadd www&lt;br /&gt;
 # useradd -g www www&lt;br /&gt;
 # chmod +w /srv/www/nginx/html&lt;br /&gt;
 # chown -R www:www /srv/www/nginx/html&lt;br /&gt;
 # spawn-fcgi -a 127.0.0.1 -p 9000 -u www -g www -f /usr/bin/php-cgi&lt;br /&gt;
&lt;br /&gt;
他の可能性としては、{{ic|nginx.conf}} 内の &amp;quot;location ~ \.php$&amp;quot; セクションの &amp;quot;root&amp;quot; 引数が間違っていることがありえます。&amp;quot;root&amp;quot; が同じサーバーの &amp;quot;location /&amp;quot; と同じディレクトリを示しているか確認してください。もしくは root をグローバルに設定するには、location セクションで定義しないでください。&lt;br /&gt;
&lt;br /&gt;
Also keep in mind that your php script path was defined as {{ic|/srv/http}} by default using the variable &amp;quot;open_basedir&amp;quot; in {{ic|/etc/php/php.ini}}; you can change them if you need.&lt;br /&gt;
&lt;br /&gt;
Also notice that not only php script should have read permission, but also the entire directory structure should have execute permission so that PHP user can traverse the path.&lt;br /&gt;
&lt;br /&gt;
=== Error: FastCGI で空のページが表示される ===&lt;br /&gt;
&lt;br /&gt;
access.log にエラーが表示されず、コード200が返されるのに以下のような空のページが表示される場合:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;html&amp;gt;&lt;br /&gt;
   &amp;lt;head&amp;gt;&amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body&amp;gt;&amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://beutelevision.com/blog2/2013/08/26/nginx-with-php-fpm-generating-blank-page/ Thomas Beutel のブログ] に書かれた解決方法:&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/nginx/nginx.conf}} を編集して php の {{ic|location}} セクションに {{ic|fastcgi_param}} という行を追加:&lt;br /&gt;
&lt;br /&gt;
     location ~ \.php$ {&lt;br /&gt;
          ...&lt;br /&gt;
          include fastcgi_params;&lt;br /&gt;
          fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;&lt;br /&gt;
          ...&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
php_fpm では PHP ファイルのパスを認識するために以上のように設定する必要があります。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
* [http://nginx.org/ Nginx 公式サイト]&lt;br /&gt;
* [http://calomel.org/nginx.html Nginx HowTo]&lt;br /&gt;
* [http://wiki.gotux.net/config:nginx Easy Config Files]&lt;br /&gt;
* [http://www.tecmint.com/install-nginx-php-mysql-with-mariadb-engine-and-phpmyadmin-in-arch-linux/ Installing LEMP (Nginx, PHP, MySQL with MariaDB engine and PhpMyAdmin) in Arch Linux]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Partclone&amp;diff=4424</id>
		<title>Partclone</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Partclone&amp;diff=4424"/>
		<updated>2015-12-20T00:45:09Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: fix typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ファイルシステム]]&lt;br /&gt;
[[en:Partclone]]&lt;br /&gt;
[http://partclone.org Partclone] は有名な [http://www.partimage.org/Main_Page Partimage] と同じように、使用しているブロックだけを考慮してパーティションのバックアップ・リストアをすることができます。&lt;br /&gt;
&lt;br /&gt;
==インストール==&lt;br /&gt;
&lt;br /&gt;
[[公式リポジトリ]]から {{Pkg|partclone}} をインストールしてください。&lt;br /&gt;
&lt;br /&gt;
==ext4 でフォーマットされたパーティションで Partclone を使う==&lt;br /&gt;
&lt;br /&gt;
===圧縮を使用しない===&lt;br /&gt;
&lt;br /&gt;
圧縮を&#039;&#039;使わないで&#039;&#039;バックアップするには:&lt;br /&gt;
 $ partclone.ext4 -c -s /dev/sda1 -o ~/image_sda1.pcl&lt;br /&gt;
&lt;br /&gt;
リストアするには:&lt;br /&gt;
 $ partclone.ext4 -r -s ~/image_sda1.pcl -o /dev/sda1&lt;br /&gt;
&lt;br /&gt;
===圧縮を使用する===&lt;br /&gt;
&lt;br /&gt;
圧縮を&#039;&#039;使って&#039;&#039;バックアップするには:&lt;br /&gt;
 $ partclone.ext4 -c -s /dev/sda1 | gzip -c &amp;gt; ~/image_sda1.pcl.gz&lt;br /&gt;
&lt;br /&gt;
{{Note|最大限圧縮したいときは &amp;quot;gzip -c9&amp;quot; を使ってください。}}&lt;br /&gt;
&lt;br /&gt;
リストアするには:&lt;br /&gt;
 zcat ~/image_sda1.pcl.gz | partclone.ext4 -r -o /dev/sda1&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Getty&amp;diff=4423</id>
		<title>Getty</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Getty&amp;diff=4423"/>
		<updated>2015-12-19T23:46:14Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: newlineは改行コード（LF）のことだと思われるので&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;br /&gt;
[[Category:ブートプロセス]]&lt;br /&gt;
[[en:Getty]]&lt;br /&gt;
[[zh-CN:Getty]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|ディスプレイマネージャ}}&lt;br /&gt;
{{Related|ブートメッセージのクリアの無効化}}&lt;br /&gt;
{{Related|仮想端末に自動ログイン}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&#039;&#039;&#039;getty&#039;&#039;&#039; はターミナルのラインと接続されたターミナルを管理するプログラムの総称です。getty の目的は権限のないアクセスからシステムを保護することにあります。通常、getty のプロセスは [[init]] によって起動され、ターミナルのラインを管理します。Arch Linux の標準的な環境では、getty プロセスによって管理されるターミナルは仮想端末として実装されています。デフォルトで6つの仮想端末が用意され、普通は {{ic|Ctrl+Alt+F1}} から {{ic|Ctrl+Alt+F6}} を押すことでアクセスすることができます。&lt;br /&gt;
&lt;br /&gt;
== agetty ==&lt;br /&gt;
&lt;br /&gt;
{{ic|agetty}} プログラムは Arch Linux におけるデフォルトの getty であり、Arch Linux のベース環境に含まれている {{Pkg|util-linux}} パッケージに入っています。ログインを待機している間は改行コード（LF）が CR–LF に変換されないように TTY の設定を変更します。この設定によってコンソールに出力されたメッセージに&amp;quot;階段効果&amp;quot;が発生することがあります (例えば [[Init]] によって起動されたプログラムの出力)。&lt;br /&gt;
&lt;br /&gt;
== fgetty ==&lt;br /&gt;
&lt;br /&gt;
mingetty から派生した {{AUR|fgetty}} は [[Arch User Repository]] の非公式パッケージでインストールできます。fgetty は&amp;quot;階段効果&amp;quot;を起こしません。[[Wikipedia:Pluggable authentication module|Pluggable Authentication Module]] (SHA-2 を含む) に対応するにはパッチの適用された {{AUR|fgetty-pam}} が必要になります。&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;mingetty&#039;&#039;&#039; AUR {{AUR|mingetty}}&lt;br /&gt;
* &#039;&#039;&#039;[[qingy]]&#039;&#039;&#039; AUR パッケージ: {{AUR|qingy}}&lt;br /&gt;
* &#039;&#039;&#039;fbgetty&#039;&#039;&#039; 公式パッケージ: {{Pkg|fbgetty}}&lt;br /&gt;
* &#039;&#039;&#039;ngetty&#039;&#039;&#039; AUR: {{AUR|ngetty}}&lt;br /&gt;
* &#039;&#039;&#039;rungetty&#039;&#039;&#039; AUR: {{AUR|rungetty}}&lt;br /&gt;
* &#039;&#039;&#039;mgetty&#039;&#039;&#039; AUR: {{AUR|mgetty}}&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Bash&amp;diff=4422</id>
		<title>Bash</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Bash&amp;diff=4422"/>
		<updated>2015-12-19T23:26:06Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:コマンドシェル]]&lt;br /&gt;
[[de:Bash]]&lt;br /&gt;
[[en:Bash]]&lt;br /&gt;
[[es:Bash]]&lt;br /&gt;
[[it:Bash]]&lt;br /&gt;
[[ru:Bash]]&lt;br /&gt;
[[zh-CN:Bash]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Bash/関数}}&lt;br /&gt;
{{Related|環境変数}}&lt;br /&gt;
{{Related|Readline}}&lt;br /&gt;
{{Related|Bash カラープロンプト}}&lt;br /&gt;
{{Related|Fortune}}&lt;br /&gt;
{{Related|Pkgfile#&amp;quot;Command not found&amp;quot; フック}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&#039;&#039;&#039;Bash&#039;&#039;&#039; (Bourne-again Shell) は [[GNU プロジェクト]]による[[シェル|コマンドラインシェル]]・プログラミング言語です。Bash という名前は先祖の名前のオマージュから来ています: 長い間非推奨であった Bourne shell です。Bash は GNU/Linux を含む様々な UNIX ライクなオペレーティングシステムで動作します。&lt;br /&gt;
&lt;br /&gt;
== 実行 ==&lt;br /&gt;
&lt;br /&gt;
Bash の挙動は呼び出し方によって変わります。以下では様々なモードの説明を行います。&lt;br /&gt;
&lt;br /&gt;
tty における {{ic|login}} や [[SSH]] デーモンによって Bash が実行された場合、それは&#039;&#039;&#039;ログインシェル&#039;&#039;&#039;です。このモードは {{ic|-l}} もしくは {{ic|--login}} コマンドラインオプションを使うことでも呼び出すことができます。&lt;br /&gt;
&lt;br /&gt;
{{ic|-c}} オプションをつけずに実行された場合や何もオプションを付けずに実行された場合の Bash は&#039;&#039;&#039;インタラクティブシェル&#039;&#039;&#039;です。標準入力やエラーはターミナルに接続されます。&lt;br /&gt;
&lt;br /&gt;
=== レガシーモード ===&lt;br /&gt;
&lt;br /&gt;
Arch では {{ic|/bin/sh}} (Bourne shell の実行ファイルとして使用されていました) は {{ic|/bin/bash}} にシンボリックリンクされています。Bash が {{ic|sh}} という名前で起動された場合、POSIX 互換の伝統的な {{ic|sh}} の始動時の挙動を模倣します。&lt;br /&gt;
&lt;br /&gt;
レガシーモードで実行されたログインシェルは {{ic|/etc/profile}}、そして {{ic|~/.profile}} を読み込みます。&lt;br /&gt;
&lt;br /&gt;
=== 設定ファイル ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ファイル&lt;br /&gt;
! ファイルのコマンドが読み込まれて実行  (&#039;&#039;source&#039;&#039;) される時&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|/etc/profile}}&lt;br /&gt;
| &#039;&#039;ログイン&#039;&#039;シェルでもある&#039;&#039;インタラクティブ&#039;&#039;シェル (例えば、{{ic|/usr/bin/login}})。{{ic|/etc/profile.d/*.sh}} や {{ic|/etc/bash.bashrc}} に記述されたアプリケーションの設定を読み込みます。&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|/etc/bash.bashrc}}&lt;br /&gt;
| インタラクティブシェル (例えば、[[ターミナルエミュレータ]])。{{ic|1=-DSYS_BASHRC=&amp;quot;/etc/bash.bashrc&amp;quot;}} コンパイルフラグに依存します。{{ic|/usr/share/bash-completion/bash_completion}} を読み込みます。&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|~/.bash_profile}}&lt;br /&gt;
| ログインシェルでもあるインタラクティブシェル。{{ic|/etc/profile}} の後にユーザー別で読み込まれます。ファイルが存在しない場合は {{ic|~/.bash_login}} と {{ic|~/.profile}} がこの順番でチェックされます。スケルトンファイル {{ic|/etc/skel/.bash_profile}} は {{ic|~/.bashrc}} も読み込みます。&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|~/.bashrc}}&lt;br /&gt;
| インタラクティブシェル。{{ic|/etc/bash.bashrc}} の後にユーザー別で読み込まれます。&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|~/.bash_logout}}&lt;br /&gt;
| ログインシェルが終了した後。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
手短に言えば、全てのインタラクティブシェルは {{ic|/etc/bash.bashrc}} と {{ic|~/.bashrc}} を読み込み、インタラクティブな&#039;&#039;ログイン&#039;&#039;シェルはそれに加えて {{ic|/etc/profile}} と {{ic|~/.bash_profile}} も読み込みます。&lt;br /&gt;
&lt;br /&gt;
{{Note|インタラクティブだが、ログインシェルでない場合は {{ic|~/.bash_profile}} は&#039;&#039;読み込まれません&#039;&#039;が、親プロセス (ログインシェルでもあり得る) の環境は承継されます。詳しくは [http://mywiki.wooledge.org/ProcessManagement#On_processes.2C_environments_and_inheritance] を参照。}}&lt;br /&gt;
&lt;br /&gt;
順序の完全な説明は {{ic|man 1 bash}} や [http://www.gnu.org/software/bash/manual/bash.html#Bash-Startup-Files] の &#039;&#039;INVOCATION&#039;&#039; セクションを見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== シェルと環境変数 ===&lt;br /&gt;
&lt;br /&gt;
Bash と Bash によって実行されたプログラムの挙動は様々な環境変数によって左右されます。[[環境変数]]を使うことでコマンドの検索ディレクトリや使用するブラウザなどの有用な値を保存することができます。新しいシェルやスクリプトが起動されると親の変数が継承され、シェル変数の内部セットを使ってスタートします [http://www.kingcomputerservices.com/unix_101/understanding_unix_shells_and_environment_variables.htm]。&lt;br /&gt;
&lt;br /&gt;
Bash のシェル変数は環境変数にするためにエクスポートすることが可能です:&lt;br /&gt;
&lt;br /&gt;
 VARIABLE=content&lt;br /&gt;
 export VARIABLE&lt;br /&gt;
&lt;br /&gt;
もしくはショートカットを使って:&lt;br /&gt;
&lt;br /&gt;
 export VARIABLE=content&lt;br /&gt;
&lt;br /&gt;
環境変数は {{ic|~/.profile}} や {{ic|/etc/profile}} に記述するのがしきたりで、全ての bourne 互換シェルはこれらのファイルを使用します。&lt;br /&gt;
&lt;br /&gt;
詳しくは[[環境変数]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
== コマンドライン ==&lt;br /&gt;
&lt;br /&gt;
Bash のコマンドラインは [[Readline]] という名前の別のライブラリによって処理されています。Readline にはコマンドラインを使用するための多数のショートカットがあります。単語ごとに前後に移動、単語の削除など。また、入力したコマンドの[[Readline#履歴|履歴]]を管理するのも Readline の仕事です。最後に、また重要なことですが、Readline は[[Readline#マクロ|マクロ]]を作成するのを可能にします。&lt;br /&gt;
&lt;br /&gt;
=== タブ補完 ===&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Command-line_completion|タブ補完]]は {{ic|Tab}} を二回押すことによって途中まで入力したコマンドを自動で補完するオプションです (デフォルトで有効)。&lt;br /&gt;
&lt;br /&gt;
==== シングルタブ機能 ====&lt;br /&gt;
&lt;br /&gt;
複数の補完候補があるときに {{ic|Tab}} を一回押して表示するようにするには:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.inputrc|&lt;br /&gt;
set show-all-if-ambiguous on&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
また、補完ができないときに候補を表示するには:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.inputrc|&lt;br /&gt;
set show-all-if-unmodified on&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== プログラムとオプションを追加 ====&lt;br /&gt;
&lt;br /&gt;
Bash がネイティブでタブ補完をサポートしているのは: コマンド, ファイル名, 変数です。この機能は {{Pkg|bash-completion}} パッケージで拡張することができます。このパッケージは人気のコマンドやそのオプションのタブ補完のサブセットを追加して機能を拡張します。{{Pkg|bash-completion}} を使った場合、通常の補完は挙動が少し変わるので注意してください ({{ic|$ ls file.*&amp;lt;tab&amp;gt;&amp;lt;tab&amp;gt;}} など)。ただし、{{ic|$ compopt -o bashdefault &amp;lt;prog&amp;gt;}} で再度有効にすることができます (詳しくは [https://bbs.archlinux.org/viewtopic.php?id=128471] や [https://www.gnu.org/software/bash/manual/html_node/Programmable-Completion-Builtins.html] を参照)。また、古いシステムでは {{Pkg|bash-completion}} はあまり役に立たないかもしれません。&lt;br /&gt;
&lt;br /&gt;
==== プログラムとオプションを手動で追加 ====&lt;br /&gt;
&lt;br /&gt;
{{ic|complete -cf your_command}} という形式の行を使って基本的な補完ができます ({{Pkg|bash-completion}} の設定と衝突します):&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.bashrc|&lt;br /&gt;
complete -cf sudo&lt;br /&gt;
complete -cf man&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== 履歴補完 ===&lt;br /&gt;
&lt;br /&gt;
履歴補完は矢印キー (下と上) で使います (参照: [[Readline#履歴]] と [https://www.gnu.org/software/bash/manual/html_node/Readline-Init-File-Syntax.html Readline Init File Syntax]):&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.bashrc|&lt;br /&gt;
 bind &#039;&amp;quot;\e[A&amp;quot;: history-search-backward&#039;&lt;br /&gt;
 bind &#039;&amp;quot;\e[B&amp;quot;: history-search-forward&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
or:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.inputrc|&lt;br /&gt;
&amp;quot;\e[A&amp;quot;: history-search-backward&lt;br /&gt;
&amp;quot;\e[B&amp;quot;: history-search-forward&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Ctrl による高速な単語移動 ===&lt;br /&gt;
&lt;br /&gt;
Bash では {{ic|Ctrl+Left}} と {{ic|Ctrl+Right}} を使って単語ごとに素早く移動できるようにすることができます。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.inputrc|&lt;br /&gt;
&amp;quot;\e[1;5C&amp;quot;: forward-word&lt;br /&gt;
&amp;quot;\e[1;5D&amp;quot;: backward-word&lt;br /&gt;
&amp;quot;\e[5C&amp;quot;: forward-word&lt;br /&gt;
&amp;quot;\e[5D&amp;quot;: backward-word&lt;br /&gt;
&amp;quot;\e\e[C&amp;quot;: forward-word&lt;br /&gt;
&amp;quot;\e\e[D&amp;quot;: backward-word&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Zsh の run-help 機能 ===&lt;br /&gt;
&lt;br /&gt;
Zsh では {{ic|Alt+h}} を押すことで入力したコマンドのマニュアルを呼び出すことができます。同じことは Bash でも以下の行を {{ic|inputrc}} ファイルに追加することで可能です:&lt;br /&gt;
{{hc|/etc/inputrc|&lt;br /&gt;
&amp;quot;\eh&amp;quot;: &amp;quot;\C-a\eb\ed\C-y\e#man \C-y\C-m\C-p\C-p\C-a\C-d\C-e&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== エイリアス ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Alias_(command)|alias]] は特定の単語を別の文字列で置き換えるコマンドです。システムコマンドを短縮したり、日頃使っているコマンドにデフォルトの引数を追加するのに使用します。&lt;br /&gt;
&lt;br /&gt;
個人的なエイリアスはなるべく {{ic|~/.bashrc}} に保存し、システム全体の (全てのユーザーに影響を与える) エイリアスは {{ic|/etc/bash.bashrc}} に記述します。エイリアスの例は [https://gist.github.com/anonymous/a9055e30f97bd19645c2] や [[Pacman ヒント#ショートカット]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
関数については、[[Bash/関数]]を参照。&lt;br /&gt;
&lt;br /&gt;
== Tips and tricks ==&lt;br /&gt;
&lt;br /&gt;
=== プロンプトのカスタマイズ ===&lt;br /&gt;
&lt;br /&gt;
Bash のプロンプトは {{ic|$PS1}} 変数で変わります。Bash プロンプトをカラー化したい場合、以下を使って下さい:&lt;br /&gt;
{{hc|~/.bashrc|2=&lt;br /&gt;
#PS1=&#039;[\u@\h \W]\$ &#039;  # To leave the default one&lt;br /&gt;
#DO NOT USE RAW ESCAPES, USE TPUT&lt;br /&gt;
reset=$(tput sgr0)&lt;br /&gt;
red=$(tput setaf 1)&lt;br /&gt;
blue=$(tput setaf 4)&lt;br /&gt;
green=$(tput setaf 2)&lt;br /&gt;
&lt;br /&gt;
PS1=&#039;\[$red\]\u\[$reset\] \[$blue\]\w\[$reset\] \[$red\]\$ \[$reset\]\[$green\] &#039;&lt;br /&gt;
}}&lt;br /&gt;
上の {{ic|$PS1}} は赤色の記号と緑色のコンソールテキストの root の Bash プロンプトで有用です。詳しくは、次を参照: [[Bash カラープロンプト]]。&lt;br /&gt;
&lt;br /&gt;
==== タイトルのカスタマイズ ====&lt;br /&gt;
&lt;br /&gt;
{{ic|$PROMPT_COMMAND}} 変数を使うことでプロンプトの前にコマンドを実行することができます。例えば、タイトルを現在のカレントディレクトリに変更:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.bashrc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
export PROMPT_COMMAND=&#039;echo -ne &amp;quot;\033]0;$PWD\007&amp;quot;&#039;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
以下の設定はタイトルを最後に実行したコマンドに変更します、history ファイルが常に最新か確認してください:&lt;br /&gt;
{{hc|~/.bashrc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
export HISTCONTROL=ignoreboth&lt;br /&gt;
export HISTIGNORE=&#039;history*&#039;&lt;br /&gt;
export PROMPT_COMMAND=&#039;history -a;echo -en &amp;quot;\e]2;&amp;quot;;history 1|sed &amp;quot;s/^[ \t]*[0-9]\{1,\}  //g&amp;quot;;echo -en &amp;quot;\e\\&amp;quot;;&#039;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== ターミナルで Ctrl+z を無効化 ===&lt;br /&gt;
&lt;br /&gt;
コマンドを以下のようにすることで {{ic|Ctrl+z}} 機能 (アプリケーションの停止/終了) を無効化できます:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 trap &amp;quot;&amp;quot; 20&lt;br /&gt;
 &#039;&#039;adom&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
これで {{AUR|adom}} で {{ic|Shift+z}} の代わりに間違って {{ic|Ctrl+z}} を押してしまっても {{ic|Ctrl+z}} は無視されるため何も起こりません。&lt;br /&gt;
&lt;br /&gt;
=== ログアウト後に画面をクリア ===&lt;br /&gt;
&lt;br /&gt;
仮想ターミナルでログアウト後に画面を消去するには:&lt;br /&gt;
{{hc|~/.bash_logout|&lt;br /&gt;
clear&lt;br /&gt;
reset&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== ASCII カレンダー ===&lt;br /&gt;
&lt;br /&gt;
[http://www.openbsd.org/cgi-bin/man.cgi?query=calendar&amp;amp;sektion=1 calendar] ファイルを {{ic|~/.calendar}} ディレクトリにインストールするには {{Pkg|rpmextract}} パッケージが必要になります。インストールしたらホームディレクトリから、以下を実行してください:&lt;br /&gt;
&lt;br /&gt;
 $ mkdir -p ~/.calendar&lt;br /&gt;
 $ curl -o calendar.rpm ftp://ftp.univie.ac.at/systems/linux/fedora/epel/5/x86_64/calendar-1.25-4.el5.x86_64.rpm&lt;br /&gt;
 $ rpm2cpio calendar.rpm | bsdtar -C ~/.calendar --strip-components=4 -xf - ./usr/share/c*&lt;br /&gt;
&lt;br /&gt;
次のコマンドでカレンダーアイテムを出力します:&lt;br /&gt;
&lt;br /&gt;
 $ sed -n &amp;quot;/$(date +%m\\/%d\\\|%b\*\ %d)/p&amp;quot; $(find ~/.calendar /usr/share/calendar -maxdepth 1 -type f -name &#039;c*&#039; 2&amp;gt;/dev/null);&lt;br /&gt;
&lt;br /&gt;
=== パスを入力したら自動で &amp;quot;cd&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
シェルにパスだけを入力したとき Bash に {{ic|cd }} を自動で前につけるようにすることができます。例えば:&lt;br /&gt;
{{hc|$ /etc|&lt;br /&gt;
bash: /etc: Is a directory&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
しかし以下の設定をすると:&lt;br /&gt;
{{hc|~/.bashrc|&lt;br /&gt;
shopt -s autocd&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
次の通り:&lt;br /&gt;
 [user@host ~] $ /etc&lt;br /&gt;
 cd /etc&lt;br /&gt;
 [user@host etc]&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== ウィンドウをリサイズした時の行の折り返し ===&lt;br /&gt;
&lt;br /&gt;
[[ターミナルエミュレータ]]のウィンドウサイズを変更した時、Bash はリサイズシグナルを受け取れないことがあります。そうすると入力したテキストが正しく折り返されずにプロンプトをはみ出してしまいます。{{ic|checkwinsize}} シェルオプションはコマンドごとにウィンドウサイズの確認を行い、必要ならば、{{ic|LINES}} と {{ic|COLUMNS}} の値を更新します。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.bashrc|&lt;br /&gt;
shopt -s checkwinsize&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== ignoreeof が設定されているのにシェルが終了する ===&lt;br /&gt;
&lt;br /&gt;
{{ic|ignoreeof}} オプションを設定したのに何度も {{ic|ctrl-d}} を押すとシェルが終了するのは、このオプションではこのキーバインド (正確には EOF 文字列) を押しても10回まではシェルが終了しないようになっているためです。&lt;br /&gt;
&lt;br /&gt;
回数を上げるには、IGNOREEOF 変数を設定してください。例:&lt;br /&gt;
 export IGNOREEOF=100&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.gnu.org/software/bash/manual/bashref.html Bash Reference]&lt;br /&gt;
* [https://www.gnu.org/software/bash/manual/bash.html Bash manual page]&lt;br /&gt;
* [https://www.gnu.org/software/bash/manual/html_node/Readline-Init-File-Syntax.html Readline Init File Syntax]&lt;br /&gt;
* [http://www.aosabook.org/en/bash.html The Bourne-Again Shell] - The third chapter of &#039;&#039;The Architecture of Open Source Applications&#039;&#039;&lt;br /&gt;
* [http://shellcheck.net Shellcheck] - Check bash scripts for common errors&lt;br /&gt;
&lt;br /&gt;
=== チュートリアル ===&lt;br /&gt;
&lt;br /&gt;
* [http://mywiki.wooledge.org/BashGuide BashGuide on Greg&#039;s Wiki]&lt;br /&gt;
* [http://mywiki.wooledge.org/BashFAQ BashFAQ on Greg&#039;s Wiki]&lt;br /&gt;
* [http://wiki.bash-hackers.org/doku.php Bash Hackers Wiki]&lt;br /&gt;
* [http://tldp.org/LDP/abs/html/ Advanced Bash Scripting Guide]&lt;br /&gt;
* [http://www.grymoire.com/Unix/Quote.html Quote Tutorial]&lt;br /&gt;
* [http://linuxtutorial.todolistme.net Introduction to Bash]&lt;br /&gt;
&lt;br /&gt;
=== コミュニティ ===&lt;br /&gt;
&lt;br /&gt;
* [irc://irc.freenode.net#bash An active and friendly IRC channel for Bash]&lt;br /&gt;
* [http://bashscripts.org Bashscripts.org]&lt;br /&gt;
&lt;br /&gt;
=== サンプル ===&lt;br /&gt;
&lt;br /&gt;
* [http://tldp.org/HOWTO/Xterm-Title-4.html How to change the title of an xterm]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E3%81%AE%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%B3&amp;diff=4421</id>
		<title>ディスクのクローン</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E3%81%AE%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%B3&amp;diff=4421"/>
		<updated>2015-12-19T23:14:54Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: 一部翻訳&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:データ圧縮とアーカイブ]]&lt;br /&gt;
[[Category:システムリカバリ]]&lt;br /&gt;
[[en:Disk cloning]]&lt;br /&gt;
[[it:Disk cloning]]&lt;br /&gt;
[[ru:Disk cloning]]&lt;br /&gt;
[[tr:Disk klonlama]]&lt;br /&gt;
[[zh-cn:Disk cloning]]&lt;br /&gt;
ディスクのクローンとはパーティションやハードドライブ全体のイメージを作成することを言います。[[バックアッププログラム|バックアップ]]や[[ファイルリカバリ|リカバリ]]用に他のコンピューターにドライブをコピーするのに役立ちます。&lt;br /&gt;
&lt;br /&gt;
== dd を使う ==&lt;br /&gt;
&lt;br /&gt;
dd コマンドはシンプルでありながら、多目的に使える強力なツールです。ファイルシステムのタイプやオペレーティングシステムとは関係なく、ブロックごとに、コピーを行うことができます。ライブ CD などの、ライブ環境から dd を使用すると便利です。&lt;br /&gt;
&lt;br /&gt;
{{Warning|この種のコマンドの常として、使うときは慎重にならなければなりません。さもないとデータを破壊するおそれがあります。入力ファイル({{ic|1=if=}})と出力ファイル({{ic|1=of=}})の順序に注意し、逆にしないように！必ずコピー先ドライブまたはパーティションのサイズがコピー元のサイズ以上になっているようにしてください ({{ic|1=if=}})。}}&lt;br /&gt;
&lt;br /&gt;
=== パーティションのクローン ===&lt;br /&gt;
&lt;br /&gt;
物理ディスク {{ic|/dev/sda}} のパーティション 1 を、物理ディスク {{ic|/dev/sdb}} のパーティション 1 に複製。&lt;br /&gt;
 # dd if=/dev/sda1 of=/dev/sdb1 bs=512 conv=noerror,sync&lt;br /&gt;
&lt;br /&gt;
{{Warning|出力ファイル{{ic|1=of=}} (この例では{{ic|sdb1}})が存在しない場合は、ルートファイルシステムにこの名前のファイルが作成されてしまいます。}}&lt;br /&gt;
&lt;br /&gt;
=== ハードディスク全体のクローン ===&lt;br /&gt;
&lt;br /&gt;
物理ディスク {{ic|/dev/sd&#039;&#039;X&#039;&#039;}} を物理ディスク {{ic|/dev/sdY}} に複製:&lt;br /&gt;
 # dd if=/dev/sd&#039;&#039;X&#039;&#039; of=/dev/sd&#039;&#039;Y&#039;&#039; bs=512 conv=noerror,sync&lt;br /&gt;
&lt;br /&gt;
このコマンドは MBR (とブートローダー)、全てのパーティション、UUID、データを含めディスクの全てを複製します。&lt;br /&gt;
* {{ic|noerror}} は読み取りエラーを全て無視して操作を続行します。dd のデフォルトの挙動ではエラーがあると dd は動作を停止します。&lt;br /&gt;
* {{ic|sync}} は読み取りエラーが存在した場合、入力ブロックをゼロで埋めるため、データのオフセットも同期します。&lt;br /&gt;
* {{ic|1=bs=512}} sets the block size to 512 bytes, the &amp;quot;classic&amp;quot; block size for hard drives. If and only if your hard drives have a 4 Kib block size, you may use &amp;quot;4096&amp;quot; instead of &amp;quot;512&amp;quot;. Also, please read the warning below, because there is more to this than just &amp;quot;block sizes&amp;quot; -it also influences how read errors propagate.&lt;br /&gt;
&lt;br /&gt;
{{Warning|The block size you specify influences how read errors are handled. Read below.}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;dd&#039;&#039; utility technically has an &amp;quot;input block size&amp;quot; (IBS) and an &amp;quot;output block size&amp;quot; (OBS). When you set {{ic|bs}}, you effectively set both IBS and OBS. Normally, if your block size is, say, 1 Mib, &#039;&#039;dd&#039;&#039; will read 1024*1024 bytes and write as many bytes. But if a read error occurs, things will go wrong. Many people seem to think that &#039;&#039;dd&#039;&#039; will &amp;quot;fill up read errors with zeroes&amp;quot; if you use the {{ic|noerror,sync}} options, but this is not what happens. &#039;&#039;dd&#039;&#039; will, according to documentation, fill up the OBS to IBS size &#039;&#039;after completing its read&#039;&#039;, which means adding zeroes at the &#039;&#039;end&#039;&#039; of the block. This means, for a disk, that effectively the whole 1 Mib would become messed up because of a single 512 byte read error in the beginning of the read: 12ERROR89 would become 128900000 instead of 120000089.&lt;br /&gt;
&lt;br /&gt;
If you are positive that your disk does not contain any errors, you could proceed using a larger block size, which will increase the speed of your copying several fold. For example, changing bs from 512 to 64 Ki changed copying speed from 35 MB/s to 120 MB/s on a simple Celeron 2.7 GHz system. But keep in mind that read errors on the source disk will end up as &#039;&#039;block errors&#039;&#039; on the destination disk, i.e. a single 512-byte read error will mess up the whole 64 Kib output block.&lt;br /&gt;
&lt;br /&gt;
{{Tip|&#039;&#039;dd&#039;&#039; の進捗状況を表示したい場合、{{ic|1=status=progress}} オプションを使って下さい。詳しくは [[Core Utilities#dd]] を参照。}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* To regain unique UUIDs of an &#039;&#039;ext2/3/4&#039;&#039; filesystem, use {{ic|tune2fs /dev/sd&#039;&#039;XY&#039;&#039; -U random}} on every partition.&lt;br /&gt;
* Partition table changes from &#039;&#039;dd&#039;&#039; are not registered by the kernel. To notify of changes without rebooting, use a utility like &#039;&#039;partprobe&#039;&#039; (part of [[GNU Parted]]).&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== MBR のバックアップ ===&lt;br /&gt;
&lt;br /&gt;
MBR はディスクの頭512バイトに保存されています。MBR は3つの構成部位から成ります:&lt;br /&gt;
&lt;br /&gt;
# 最初の446バイトにはブートローダーが含まれます。&lt;br /&gt;
# 次の64バイトにはパーティションテーブルが含まれます (16バイトごとに4エントリ、1つのエントリに1つのプライマリパーティション)。&lt;br /&gt;
# 最後の2バイトには識別子が含まれます。&lt;br /&gt;
&lt;br /&gt;
MBR を {{ic|mbr.img}} ファイルに保存するには:&lt;br /&gt;
 # dd if=/dev/sdX of=/path/to/mbr_file.img bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
リストアするには (注意: 以下の操作で既存のパーティションテーブルが破壊されディスク上の全てのデータにアクセスできなくなる可能性があります):&lt;br /&gt;
 # dd if=/path/to/mbr_file.img of=/dev/sdX&lt;br /&gt;
&lt;br /&gt;
ブートローダーだけをリストアして、プライマリパーティションテーブルのエントリはそのままにしたい場合、MBR の最初の446バイトだけをリストアしてください:&lt;br /&gt;
 # dd if=/path/to/mbr_file.img of=/dev/sdX bs=446 count=1&lt;br /&gt;
&lt;br /&gt;
パーティションテーブルだけをリストアするには、次のコマンドを使用します:&lt;br /&gt;
 # dd if=/path/to/mbr_file.img of=/dev/sdX bs=1 skip=446 count=64&lt;br /&gt;
&lt;br /&gt;
完全な dd ディスクイメージから MBR を取得することもできます:&lt;br /&gt;
 # dd if=/path/to/disk.img of=/path/to/mbr_file.img bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
=== ディスクイメージの作成 ===&lt;br /&gt;
&lt;br /&gt;
1. liveCD や liveUSB から起動。&lt;br /&gt;
&lt;br /&gt;
2. コピー元ドライブの全てのパーティションがマウント解除されていることを確認する。&lt;br /&gt;
&lt;br /&gt;
3. 外部 HD をマウント。&lt;br /&gt;
&lt;br /&gt;
4. ドライブをバックアップ:&lt;br /&gt;
 # dd if=/dev/sd&#039;&#039;X&#039;&#039; conv=sync,noerror bs=64K | gzip -c  &amp;gt; &#039;&#039;/path/to/backup.img.gz&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
必要であれば (外部 HD が FAT32 でフォーマットされている場合など) ディスクイメージを分割します (&#039;&#039;split&#039;&#039; の [[man ページ]]を参照):&lt;br /&gt;
&lt;br /&gt;
 # dd if=/dev/sd&#039;&#039;X&#039;&#039; conv=sync,noerror bs=64K | gzip -c | split -a3 -b2G - &#039;&#039;/path/to/backup.img.gz&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ローカルに十分なディスク空き容量がない場合は、イメージをsshで転送すればよいです：&lt;br /&gt;
&lt;br /&gt;
 # dd if=/dev/sd&#039;&#039;X&#039;&#039; conv=sync,noerror bs=64K | gzip -c | ssh user@local dd of=backup.img.gz&lt;br /&gt;
&lt;br /&gt;
5. イメージ内に保存されたパーティションテーブルを解釈できるようにするために、ドライブのレイアウトに関する付加情報を保存します。&lt;br /&gt;
その情報の中で最も重要なのはシリンダーサイズです。&lt;br /&gt;
&lt;br /&gt;
 # fdisk -l /dev/sd&#039;&#039;X&#039;&#039; &amp;gt; &#039;&#039;/path/to/list_fdisk.info&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|You may wish to use a block size ({{ic|1=bs=}}) that is equal to the amount of cache on the HD you are backing up. For example, {{ic|1=bs=8192K}} works for an 8 MiB cache. The 64 Kib mentioned in this article is better than the default {{ic|1=bs=512}} bytes, but it will run faster with a larger {{ic|1=bs=}}.}}&lt;br /&gt;
&lt;br /&gt;
=== システムのリストア ===&lt;br /&gt;
&lt;br /&gt;
システムをリストアするには:&lt;br /&gt;
 # gunzip -c &#039;&#039;/path/to/backup.img.gz&#039;&#039; | dd of=/dev/sd&#039;&#039;X&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
もしくはイメージが複数のボリュームに分かれている場合:&lt;br /&gt;
 # cat &#039;&#039;/path/to/backup.img.gz*&#039;&#039; | gunzip -c | dd of=/dev/sd&#039;&#039;X&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== ディスククローンソフトウェア ==&lt;br /&gt;
&lt;br /&gt;
=== Arch でディスククローン ===&lt;br /&gt;
&lt;br /&gt;
* [[Partclone]] にはパーティション上の使用されているブロックを保存・復旧するためのユーティリティが入っており ext2, ext3, ext4, hfs+, reiserfs, reiser4, btrfs, vmfs3, vmfs5, xfs, jfs, ufs, ntfs, fat(12/16/32), exfat がサポートされています。オプションで、ncurses インターフェイスを使うこともできます。Partclone は community リポジトリからインストールできます。&lt;br /&gt;
* [http://www.partimage.org/ Partimage] は &#039;&#039;ncurses&#039;&#039; プログラムで、community リポジトリに入っています。Partimage は現在 &#039;&#039;ext4&#039;&#039; や &#039;&#039;btrfs&#039;&#039; ファイルシステムをサポートしていません。NTFS のサポートは実験段階です。&lt;br /&gt;
&lt;br /&gt;
=== Arch の外からディスククローン ===&lt;br /&gt;
&lt;br /&gt;
If you wish to backup or propagate your Arch install root, you are probably better off booting into something else and clone the partition from there. Some suggestions:&lt;br /&gt;
&lt;br /&gt;
* [http://partedmagic.com/doku.php?id=start PartedMagic] has a very nice live cd/usb with PartImage and other recovery tools.&lt;br /&gt;
* [http://www.mondorescue.org/ Mindi] is a linux distribution specifically for disk clone backup. It comes with its own cloning program, Mondo Rescue.&lt;br /&gt;
* [[wikipedia:Acronis_True_Image|Acronis True Image]] is a commercial disk cloner for Windows. It allows you to create a live (from within Windows), so you do not need a working Windows install on the actual machine to use it. After registration of the Acronis software on their website, you will be able to download a Linux-based Live CD and/or plugins for BartPE for creation of the Windows-based live CD. It can also create a WinPE Live CD based on Windows. The created ISO Live CD image by Acronis doesn&#039;t have the [http://www.syslinux.org/wiki/index.php/Isohybrid hybrid boot] ability and cannot be written to USB storage as a raw file.&lt;br /&gt;
* [http://www.fsarchiver.org/Main_Page FSArchiver] allows you to save the contents of a file system to a compressed archive file. Can be found on the [http://www.sysresccd.org/Main_Page System Rescue CD].&lt;br /&gt;
* [http://clonezilla.org/ Clonezilla] is an enhanced partition imager which can also restore entire disks as well as partitions. Clonezilla is included on the Arch Linux installation media.&lt;br /&gt;
* [http://redobackup.org/ Redo Backup and Recovery] is a Live CD featuring a graphical front-end to &#039;&#039;partclone&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [[Wikipedia:List of disk cloning software]]&lt;br /&gt;
* [https://bbs.archlinux.org/viewtopic.php?id=4329 Arch Linux フォーラムスレッド]&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E5%BF%98%E3%82%8C%E3%81%A6%E3%81%97%E3%81%BE%E3%81%A3%E3%81%9F_root_%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%E3%81%99%E3%82%8B&amp;diff=4420</id>
		<title>忘れてしまった root パスワードをリセットする</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E5%BF%98%E3%82%8C%E3%81%A6%E3%81%97%E3%81%BE%E3%81%A3%E3%81%9F_root_%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%E3%81%99%E3%82%8B&amp;diff=4420"/>
		<updated>2015-12-19T23:00:21Z</updated>

		<summary type="html">&lt;p&gt;Aosho235: 2つの方法を区別しやすくした&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:システムリカバリ]]&lt;br /&gt;
[[Category:セキュリティ]]&lt;br /&gt;
[[ar:Password Recovery]]&lt;br /&gt;
[[en:Password Recovery]]&lt;br /&gt;
[[it:Password Recovery]]&lt;br /&gt;
[[ru:Password Recovery]]&lt;br /&gt;
[[zh-cn:Password Recovery]]&lt;br /&gt;
このページでは忘れてしまった root パスワードをリカバリする方法を記述します。複数の方法があります。&lt;br /&gt;
&lt;br /&gt;
== LiveCD を使う ==&lt;br /&gt;
&lt;br /&gt;
LiveCD を使ってリカバリする方法は2つあります: change root と {{Ic|passwd}} コマンドを使う方法、またはパスワードエントリを消去する方法です。アーキテクチャが一致していれば、どの Linux の LiveCD でも使うことができます。&lt;br /&gt;
&lt;br /&gt;
=== Change Rootとpasswdを使う方法 ===&lt;br /&gt;
&lt;br /&gt;
# LiveCD を起動して [[Change Root|change root]] して下さい。&lt;br /&gt;
# {{Ic|passwd}} コマンドでルートパスワードを再設定します。&lt;br /&gt;
# [[Change Root|change root]] を終了してください。&lt;br /&gt;
# 再起動して、先に設定したパスワードを使います。&lt;br /&gt;
&lt;br /&gt;
=== パスワードエントリを消去する方法 ===&lt;br /&gt;
&lt;br /&gt;
1. LiveCD を起動しルートパーティション(&#039;&#039;&#039;/&#039;&#039;&#039;)をマウントしてください:&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/arch&lt;br /&gt;
 mount /dev/sda2 /mnt/arch&lt;br /&gt;
&lt;br /&gt;
2. 好きなエディタでパスワードを編集します。vim の場合:&lt;br /&gt;
&lt;br /&gt;
 vim /mnt/arch/etc/shadow&lt;br /&gt;
&lt;br /&gt;
3. root 行の2番目の項目を削除してください ([[vim]] では項目の最初の文字まで移動し &#039;&#039;&#039;d/:/&#039;&#039;&#039; とタイプしてから &#039;&#039;&#039;Enter&#039;&#039;&#039; を押す):&lt;br /&gt;
&lt;br /&gt;
 root:&#039;&#039;&#039;$1$9gDquXRP$gbOHLXuqslL.rw81q4pHc1&#039;&#039;&#039;:14589::::::&lt;br /&gt;
&lt;br /&gt;
4. ファイルを保存します。 (&#039;&#039;&#039;:x&#039;&#039;&#039; in vim).&lt;br /&gt;
&lt;br /&gt;
5. 再起動します。root ログインにパスワードは要求されなくなっているはずです。&lt;br /&gt;
&lt;br /&gt;
== Bash を起動するために GRUB を使う ==&lt;br /&gt;
&lt;br /&gt;
1. 起動時、GRUB メニューから適切なブートエントリを選び &#039;&#039;&#039;e&#039;&#039;&#039; を押します。&lt;br /&gt;
&lt;br /&gt;
2. kernel 行を選びもう一度 &#039;&#039;&#039;e&#039;&#039;&#039; を押して編集に入ります。&lt;br /&gt;
&lt;br /&gt;
3. 行の終末に {{Ic|1=init=/bin/bash}} を追加して下さい。&lt;br /&gt;
&lt;br /&gt;
4. &#039;&#039;&#039;b&#039;&#039;&#039; を押して起動します(この変更は一時的なものであり、menu.lst には書き込まれません)。起動後、bash プロンプトが表示されます。&lt;br /&gt;
&lt;br /&gt;
5. ルートファイルシステムが readonly でマウントされているはずなので、read/write でマウントし直します:&lt;br /&gt;
&lt;br /&gt;
 # mount -n -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
6. {{Ic|passwd}} コマンドを使って新しい root パスワードを作って下さい。&lt;br /&gt;
&lt;br /&gt;
7. 再起動します。次からはパスワードを忘れないようにしましょう。&lt;br /&gt;
&lt;br /&gt;
{{Note|init システムによってキーボードが正しくロードされず、bash プロンプトで何も入力できなくなることがあります。このような場合には、違う方法を使って下さい。}}&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.howtoforge.com/how-to-reset-a-forgotten-root-password-with-knoppix-p2 このガイド]に例が載っています。&lt;/div&gt;</summary>
		<author><name>Aosho235</name></author>
	</entry>
</feed>