<?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=Hkiku482</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=Hkiku482"/>
	<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/Hkiku482"/>
	<updated>2026-05-25T10:28:25Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Nftables&amp;diff=41332</id>
		<title>Nftables</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Nftables&amp;diff=41332"/>
		<updated>2026-02-13T18:48:27Z</updated>

		<summary type="html">&lt;p&gt;Hkiku482: /* マスカレード */ 同期&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:nftables}}&lt;br /&gt;
[[Category:ファイアウォール]]&lt;br /&gt;
[[en:nftables]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|iptables}}&lt;br /&gt;
{{Related|Firewalld}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
[https://netfilter.org/projects/nftables/ nftables] は既存の ip-, ip6-, arp-, ebtables フレームワークを置き換える netfilter のプロジェクトです。新しいパケットフィルタリングフレームワーク、新しいユーザースペースユーティリティ (nft)、そして ip- と ip6tables の互換レイヤーを提供します。現行のフック、接続追跡システム、ユーザースペースのキューイングコンポーネント、そして netfilter のログサブシステムを使っています。&lt;br /&gt;
&lt;br /&gt;
nftables は3つのメインコンポーネントから構成されています: カーネルの実装、libnl netlink communication そして nftables ユーザースペースフロントエンド。カーネルは netlink の設定インターフェイスだけでなく、小さなクラス言語インタプリタを使用するランタイムのルールセットの評価も提供します。libnl にはカーネルと通信するためのローレベルな関数が含まれています。nftables フロントエンドはユーザーが対話するものです。&lt;br /&gt;
&lt;br /&gt;
[https://wiki.nftables.org/wiki-nftables/index.php/Main_Page nftables の公式 wiki] には詳しい情報が載っています。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
nftables のユーザーランドユーティリティは {{Pkg|nftables}} パッケージで利用できます。開発版の {{AUR|nftables-git}} パッケージも存在します。&lt;br /&gt;
&lt;br /&gt;
{{Tip|ほとんどの [[iptables#Front-ends|iptables フロントエンド]] はnftables の直接的または間接的なサポートを備えていませんが、導入することは可能です。[https://www.spinics.net/lists/netfilter/msg58215.html] nftables と iptables の両方をサポートするグラフィカルなフロントエンドとしては、[[firewalld]] があります。[https://firewalld.org/2018/07/nftables-backend]}}&lt;br /&gt;
&lt;br /&gt;
== 使用方法 ==&lt;br /&gt;
&lt;br /&gt;
nftables ではコマンドラインで作成される一時的なルールと、ファイルに保存して読み込まれる永続的なルールを区別していません。デフォルトファイルの {{ic|/etc/nftables.conf}} には &amp;quot;inet filter&amp;quot; という名前のシンプルな ipv4/ipv6 ファイアウォールテーブルが既に記述されています。&lt;br /&gt;
&lt;br /&gt;
{{ic|nftables.service}} を[[起動]]・[[有効化]]してください。&lt;br /&gt;
&lt;br /&gt;
以下のコマンドでルールセットを確認できます:&lt;br /&gt;
&lt;br /&gt;
 # nft list ruleset&lt;br /&gt;
&lt;br /&gt;
=== シンプルなファイアウォール ===&lt;br /&gt;
​&lt;br /&gt;
{{Pkg|nftables}} には、{{ic|/etc/nftables.conf}} ファイルに保存されたシンプルで安全なファイアウォール設定が付属しています。&lt;br /&gt;
​&lt;br /&gt;
{{ic|nftables.service}} は、[[起動]]または[[有効化]]時に、このファイルからルールを読み込みます。&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
nftables のユーザースペースユーティリティ {{ic|nft}} は現在カーネルのためにルールセットを処理する前にほとんどのルールセットの評価を行います。ルールはチェインに保存され、チェインはテーブルに保存されます。下のセクションではルールを作成・編集する方法を説明します。&lt;br /&gt;
&lt;br /&gt;
下のセクションで行った変更は全て一時的なものになります。変更を永続化するにはルールセットを {{ic|/etc/nftables.conf}} に保存してください (ルールセットは {{ic|nftables.service}} によって読み込まれます):&lt;br /&gt;
&lt;br /&gt;
 # nft list ruleset &amp;gt; /etc/nftables.conf&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|nft list}} は変数の定義を出力しません。{{ic|/etc/nftables.conf}} に何か記述していた場合、定義は失われます。ルールによって使われていた変数は変数の値に置き換えられます。}}&lt;br /&gt;
&lt;br /&gt;
ファイルから入力するには {{ic|-f}} フラグを使用します:&lt;br /&gt;
&lt;br /&gt;
 # nft -f &#039;&#039;filename&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ロード済みのルールは自動的に消去されることはないので注意してください。&lt;br /&gt;
&lt;br /&gt;
利用可能なコマンドの一覧は {{man|8|nft}} を参照してください。&lt;br /&gt;
&lt;br /&gt;
===テーブル===&lt;br /&gt;
&lt;br /&gt;
テーブルは[[#チェイン|チェイン]]を保持します。iptables のテーブルと違って、nftables には初めから組み込まれているテーブルはありません。テーブルの数や名前はユーザーが自由に決めることができますが、各テーブルにはアドレスファミリーをひとつしか保持することができません。5つのファミリーのうち指定したファミリーのパケットにだけ適用されます:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! nftables ファミリー || iptables ユーティリティ&lt;br /&gt;
|-&lt;br /&gt;
| ip || iptables&lt;br /&gt;
|-&lt;br /&gt;
| ip6 || ip6tables&lt;br /&gt;
|-&lt;br /&gt;
| inet || iptables と ip6tables&lt;br /&gt;
|-&lt;br /&gt;
| arp || arptables&lt;br /&gt;
|-&lt;br /&gt;
| bridge || ebtables&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{ic|ip}} (IPv4) がデフォルトのファミリーです。特に指定がなければ {{ic|ip}} が使われます。&lt;br /&gt;
&lt;br /&gt;
IPv4 と IPv6 の両方に適用されるルールを作成するには {{ic|inet}} を使います。{{ic|inet}} を使うには Linux 3.15 以上が必要で、{{ic|ip}} と {{ic|ip6}} ファミリーを統一してルールを簡単に定義できます。&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|inet}} は {{ic|nat}} タイプのチェインでは使えず、{{ic|filter}} タイプのチェインを使う必要があります ([https://www.spinics.net/lists/netfilter/msg56411.html ソース])。}}&lt;br /&gt;
&lt;br /&gt;
アドレスフファミリーの完全な定義は {{man|8|nft}} の {{ic|ADDRESS FAMILIES}} セクションを参照してください。&lt;br /&gt;
&lt;br /&gt;
以下で例示しているコマンドの {{ic|&#039;&#039;family&#039;&#039;}} は全て任意であり、指定しなかった場合は {{ic|ip}} が使われます。&lt;br /&gt;
&lt;br /&gt;
==== テーブルの作成 ====&lt;br /&gt;
&lt;br /&gt;
以下のコマンドで新しいテーブルが追加されます:&lt;br /&gt;
&lt;br /&gt;
 # nft add table &#039;&#039;family&#039;&#039; &#039;&#039;table&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== テーブルの表示 ====&lt;br /&gt;
&lt;br /&gt;
全てのテーブルを表示するには:&lt;br /&gt;
&lt;br /&gt;
 # nft list tables&lt;br /&gt;
&lt;br /&gt;
==== テーブル内のチェインとルールの表示 ====&lt;br /&gt;
&lt;br /&gt;
指定したテーブルの全てのチェインとルールを表示するには:&lt;br /&gt;
&lt;br /&gt;
 # nft list table &#039;&#039;family&#039;&#039; &#039;&#039;table&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
例えば {{ic|inet}} ファミリーの {{ic|filter}} テーブルのルールを全て表示するには:&lt;br /&gt;
&lt;br /&gt;
 # nft list table inet filter&lt;br /&gt;
&lt;br /&gt;
==== テーブルの削除 ====&lt;br /&gt;
&lt;br /&gt;
テーブルを削除するには:&lt;br /&gt;
&lt;br /&gt;
 # nft delete table &#039;&#039;family&#039;&#039; &#039;&#039;table&#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;
 # nft flush table &#039;&#039;family&#039;&#039; &#039;&#039;table&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===チェイン===&lt;br /&gt;
&lt;br /&gt;
チェインの用途は[[#ルール|ルール]]を保持することです。iptables のチェインと違って、nftables には初めから組み込まれているチェインはありません。そのためチェインが netfilter フレームワークにあるタイプやフックをどれも使わない場合、iptables とは異なりチェインを通り抜けるパケットは nftables の影響を受けません。&lt;br /&gt;
&lt;br /&gt;
チェインには2つのタイプがあります。&#039;&#039;base&#039;&#039; チェインはネットワークスタックからのパケットのエントリポイントとなります。フックの値を指定することができます。&#039;&#039;regular&#039;&#039; チェインはジャンプターゲットとして使用することができます。&lt;br /&gt;
&lt;br /&gt;
以下のコマンドで使っている {{ic|&#039;&#039;family&#039;&#039;}} は全て任意であり、指定しなかった場合は {{ic|ip}} が使われます。&lt;br /&gt;
&lt;br /&gt;
==== チェインの作成 ====&lt;br /&gt;
&lt;br /&gt;
===== Regular チェイン =====&lt;br /&gt;
&lt;br /&gt;
以下のコマンドは {{ic|&#039;&#039;table&#039;&#039;}} という名前のテーブルに {{ic|&#039;&#039;chain&#039;&#039;}} という名前のレギュラーチェインを追加します:&lt;br /&gt;
&lt;br /&gt;
 # nft add chain &#039;&#039;family&#039;&#039; &#039;&#039;table&#039;&#039; &#039;&#039;chain&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
例えば、{{ic|inet}} アドレスファミリーの {{ic|filter}} テーブルに {{ic|tcpchain}} という名前のレギュラーチェインを追加するには:&lt;br /&gt;
&lt;br /&gt;
 # nft add chain inet filter tcpchain&lt;br /&gt;
&lt;br /&gt;
===== Base チェイン =====&lt;br /&gt;
&lt;br /&gt;
ベースチェインを追加するにはフックとプライオリティの値を指定します:&lt;br /&gt;
&lt;br /&gt;
 # nft add chain &#039;&#039;family&#039;&#039; &#039;&#039;table&#039;&#039; &#039;&#039;chain&#039;&#039; { type &#039;&#039;type&#039;&#039; hook &#039;&#039;hook&#039;&#039; priority &#039;&#039;priority&#039;&#039; \; }&lt;br /&gt;
&lt;br /&gt;
{{ic|&#039;&#039;type&#039;&#039;}} は {{ic|filter}}, {{ic|route}}, {{ic|nat}} のどれかから選ぶことができます。&lt;br /&gt;
&lt;br /&gt;
IPv4/IPv6/Inet アドレスファミリーでは {{ic|&#039;&#039;hook&#039;&#039;}} は {{ic|prerouting}}, {{ic|input}}, {{ic|forward}}, {{ic|output}}, {{ic|postrouting}} のどれかになります。他のファミリーのフックについては {{man|8|nft}} を参照してください。&lt;br /&gt;
&lt;br /&gt;
{{ic|&#039;&#039;priority&#039;&#039;}} には整数値を指定します。低い値のチェインが先に処理され、負の値を指定することもできます [https://wiki.nftables.org/wiki-nftables/index.php/Configuring_chains#Base_chain_types]。&lt;br /&gt;
&lt;br /&gt;
例えば、input パケットをフィルタリングするベースチェインを追加するには:&lt;br /&gt;
&lt;br /&gt;
 # nft add chain inet filter input { type filter hook input priority 0\; }&lt;br /&gt;
&lt;br /&gt;
{{ic|add}} を {{ic|create}} に置き換えると、チェインが既に存在するときにエラーが返ってくるようになります。&lt;br /&gt;
&lt;br /&gt;
==== ルールの表示 ====&lt;br /&gt;
&lt;br /&gt;
以下のコマンドでチェインの全てのルールを表示できます:&lt;br /&gt;
&lt;br /&gt;
 # nft list chain &#039;&#039;family&#039;&#039; &#039;&#039;table&#039;&#039; &#039;&#039;chain&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
例えば、{{ic|filter}} という名前の {{ic|inet}} テーブルに存在する {{ic|output}} という名前のチェインのルールを表示するには:&lt;br /&gt;
&lt;br /&gt;
 # nft list chain inet filter output&lt;br /&gt;
&lt;br /&gt;
==== チェインの編集 ====&lt;br /&gt;
&lt;br /&gt;
チェインを編集したいときは、チェインの名前を指定して変更したいルールを定義します:&lt;br /&gt;
&lt;br /&gt;
 # &amp;lt;nowiki&amp;gt;nft chain &amp;lt;family&amp;gt; &amp;lt;table&amp;gt; &amp;lt;chain&amp;gt; { [ type &amp;lt;type&amp;gt; hook &amp;lt;hook&amp;gt; device &amp;lt;device&amp;gt; priority &amp;lt;priority&amp;gt; \; policy &amp;lt;policy&amp;gt; \; ] }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
例えば、デフォルトテーブルの input チェインポリシーを &amp;quot;accept&amp;quot; から &amp;quot;drop&amp;quot; に変更したい場合:&lt;br /&gt;
&lt;br /&gt;
 # nft chain inet filter input { policy drop \; }&lt;br /&gt;
&lt;br /&gt;
==== チェインの削除 ====&lt;br /&gt;
&lt;br /&gt;
チェインを削除するには:&lt;br /&gt;
&lt;br /&gt;
 # nft delete chain &#039;&#039;family&#039;&#039; &#039;&#039;table&#039;&#039; &#039;&#039;chain&#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;
 # nft flush chain &#039;&#039;family&#039;&#039; &#039;&#039;table&#039;&#039; &#039;&#039;chain&#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;
{{Tip|&#039;&#039;iptables-translate&#039;&#039; ユーティリティを使うことで [[iptables]] のルールを nftables フォーマットに変換できます。}}&lt;br /&gt;
&lt;br /&gt;
チェインにルールを追加するには:&lt;br /&gt;
&lt;br /&gt;
 # nft add rule &#039;&#039;family&#039;&#039; &#039;&#039;table&#039;&#039; &#039;&#039;chain&#039;&#039; &#039;&#039;position&#039;&#039; &#039;&#039;statement&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ルールは {{ic|&#039;&#039;position&#039;&#039;}} に追加されます。位置は指定しなくてもかまいません。指定しなかった場合、ルールはチェインの末尾に追加されます。&lt;br /&gt;
&lt;br /&gt;
特定の位置の前にルールを追加するには:&lt;br /&gt;
&lt;br /&gt;
 # nft insert rule &#039;&#039;family&#039;&#039; &#039;&#039;table&#039;&#039; &#039;&#039;chain&#039;&#039; &#039;&#039;position&#039;&#039; &#039;&#039;statement&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{ic|&#039;&#039;position&#039;&#039;}} を指定しなかった場合、ルールはチェインの一番前に追加されます。&lt;br /&gt;
&lt;br /&gt;
===== 表現 =====&lt;br /&gt;
&lt;br /&gt;
{{ic|&#039;&#039;statement&#039;&#039;}} にはマッチする表現と判断宣言が入ります。判断宣言には {{ic|accept}}, {{ic|drop}}, {{ic|queue}}, {{ic|continue}}, {{ic|return}}, {{ic|jump &#039;&#039;chain&#039;&#039;}}, {{ic|goto &#039;&#039;chain&#039;&#039;}} などが存在します。判断宣言以外の宣言も指定できます。詳しくは {{man|8|nft}} を参照してください。&lt;br /&gt;
&lt;br /&gt;
nftables では様々な表現を使うことができ、ほとんどは、iptables と対応するようになっています。一番大きな違いは汎用的なマッチと暗黙的なマッチが存在しないことです。汎用的なマッチとは、{{ic|--protocol}} や {{ic|--source}} のように、いつでも使うことができるマッチで、暗黙的なマッチとは、{{ic|--sport}} のように、特定のプロトコルでしか使えないマッチのことです。&lt;br /&gt;
&lt;br /&gt;
以下は利用できるマッチの一部です:&lt;br /&gt;
&lt;br /&gt;
* meta    (メタプロパティ。例: インターフェイス)&lt;br /&gt;
* icmp    (ICMP プロトコル)&lt;br /&gt;
* icmpv6  (ICMPv6 プロトコル)&lt;br /&gt;
* ip      (IP プロトコル)&lt;br /&gt;
* ip6     (IPv6 プロトコル)&lt;br /&gt;
* tcp     (TCP プロトコル)&lt;br /&gt;
* udp     (UDP プロトコル)&lt;br /&gt;
* sctp    (SCTP プロトコル)&lt;br /&gt;
* ct      (接続のトラッキング)&lt;br /&gt;
&lt;br /&gt;
以下はマッチ引数の一部です (完全なリストは {{man|8|nft}} を見て下さい):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
meta:&lt;br /&gt;
  oif &amp;lt;output interface INDEX&amp;gt;&lt;br /&gt;
  iif &amp;lt;input interface INDEX&amp;gt;&lt;br /&gt;
  oifname &amp;lt;output interface NAME&amp;gt;&lt;br /&gt;
  iifname &amp;lt;input interface NAME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  (oif and iif accept string arguments and are converted to interface indexes)&lt;br /&gt;
  (oifname and iifname are more dynamic, but slower because of string matching)&lt;br /&gt;
&lt;br /&gt;
icmp:&lt;br /&gt;
  type &amp;lt;icmp type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
icmpv6:&lt;br /&gt;
  type &amp;lt;icmpv6 type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ip:&lt;br /&gt;
  protocol &amp;lt;protocol&amp;gt;&lt;br /&gt;
  daddr &amp;lt;destination address&amp;gt;&lt;br /&gt;
  saddr &amp;lt;source address&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ip6:&lt;br /&gt;
  daddr &amp;lt;destination address&amp;gt;&lt;br /&gt;
  saddr &amp;lt;source address&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tcp:&lt;br /&gt;
  dport &amp;lt;destination port&amp;gt;&lt;br /&gt;
  sport &amp;lt;source port&amp;gt;&lt;br /&gt;
&lt;br /&gt;
udp:&lt;br /&gt;
  dport &amp;lt;destination port&amp;gt;&lt;br /&gt;
  sport &amp;lt;source port&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sctp:&lt;br /&gt;
  dport &amp;lt;destination port&amp;gt;&lt;br /&gt;
  sport &amp;lt;source port&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ct:&lt;br /&gt;
  state &amp;lt;new | established | related | invalid&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====削除====&lt;br /&gt;
個々のルールはハンドルを使わないと削除することができません。{{ic|nft --handle list}} コマンドを使うことでルールのハンドルを確認できます。{{ic|--handle}} スイッチを付けると、{{ic|nft}} はハンドルを出力するようになります。&lt;br /&gt;
&lt;br /&gt;
以下ではルールのハンドルを確認してルールを削除しています。未解決の IP アドレスのような、数字の出力を表示するときは {{ic|--number}} 引数を使うと良いでしょう。&lt;br /&gt;
{{hc|# nft --handle --numeric list chain filter input|2=&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
table ip fltrTable {&lt;br /&gt;
     chain input {&lt;br /&gt;
          type filter hook input priority 0;&lt;br /&gt;
          ip saddr 127.0.0.1 accept # handle 10&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
 # nft delete rule fltrTable input handle 10&lt;br /&gt;
&lt;br /&gt;
{{ic|nft flush table}} コマンドを使うことでテーブルの全てのチェインをフラッシュできます。個別のチェインをフラッシュするときは {{ic|nft flush chain}} または {{ic|nft delete rule}} コマンドを使います。&lt;br /&gt;
 # nft flush table foo&lt;br /&gt;
 # nft flush chain foo bar&lt;br /&gt;
 # nft delete rule ip6 foo bar&lt;br /&gt;
最初のコマンドでは ip {{ic|foo}} テーブルのチェイン全てをフラッシュします。2番目のコマンドは ip {{ic|foo}} テーブルの {{ic|bar}} チェインをフラッシュします。3番目のコマンドは ip6 {{ic|foo}} テーブルの {{ic|bar}} チェインの全てのルールを削除します。&lt;br /&gt;
&lt;br /&gt;
===アトミックリロード===&lt;br /&gt;
現在のルールセットをフラッシュする:&lt;br /&gt;
 # echo &amp;quot;flush ruleset&amp;quot; &amp;gt; /tmp/nftables&lt;br /&gt;
現在のルールセットをダンプする:&lt;br /&gt;
 # nft list ruleset &amp;gt;&amp;gt; /tmp/nftables&lt;br /&gt;
{{ic|/tmp/nftables}} を編集して次のコマンドで変更を適用:&lt;br /&gt;
 # nft -f /tmp/nftables&lt;br /&gt;
&lt;br /&gt;
== サンプル ==&lt;br /&gt;
&lt;br /&gt;
=== ワークステーション ===&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/nftables.conf|2=&amp;lt;nowiki&amp;gt;&lt;br /&gt;
flush ruleset&lt;br /&gt;
&lt;br /&gt;
table inet filter {&lt;br /&gt;
        chain input {&lt;br /&gt;
                type filter hook input priority 0;&lt;br /&gt;
&lt;br /&gt;
                # accept any localhost traffic&lt;br /&gt;
                iif lo accept&lt;br /&gt;
&lt;br /&gt;
                # accept traffic originated from us&lt;br /&gt;
                ct state established,related accept&lt;br /&gt;
&lt;br /&gt;
                # activate the following line to accept common local services&lt;br /&gt;
                #tcp dport { 22, 80, 443 } ct state new accept&lt;br /&gt;
&lt;br /&gt;
                # accept neighbour discovery otherwise IPv6 connectivity breaks.&lt;br /&gt;
                ip6 nexthdr icmpv6 icmpv6 type { nd-neighbor-solicit,  nd-router-advert, nd-neighbor-advert } accept&lt;br /&gt;
&lt;br /&gt;
                # count and drop any other traffic&lt;br /&gt;
                counter drop&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== シンプルな IPv4/IPv6 ファイアウォール ===&lt;br /&gt;
&lt;br /&gt;
{{hc|firewall.rules|2=&amp;lt;nowiki&amp;gt;&lt;br /&gt;
# A simple firewall&lt;br /&gt;
&lt;br /&gt;
flush ruleset&lt;br /&gt;
&lt;br /&gt;
table inet filter {&lt;br /&gt;
	chain input {&lt;br /&gt;
		type filter hook input priority 0; policy drop;&lt;br /&gt;
&lt;br /&gt;
		# established/related connections&lt;br /&gt;
		ct state established,related accept&lt;br /&gt;
&lt;br /&gt;
		# invalid connections&lt;br /&gt;
		ct state invalid drop&lt;br /&gt;
		&lt;br /&gt;
		# loopback interface&lt;br /&gt;
		iif lo accept&lt;br /&gt;
&lt;br /&gt;
		# ICMP&lt;br /&gt;
		# routers may also want: mld-listener-query, nd-router-solicit&lt;br /&gt;
		ip6 nexthdr icmpv6 icmpv6 type { destination-unreachable, packet-too-big, time-exceeded, parameter-problem, nd-router-advert, nd-neighbor-solicit, nd-neighbor-advert } accept&lt;br /&gt;
		ip protocol icmp icmp type { destination-unreachable, router-advertisement, time-exceeded, parameter-problem } accept&lt;br /&gt;
&lt;br /&gt;
		# SSH (port 22)&lt;br /&gt;
		tcp dport ssh accept&lt;br /&gt;
&lt;br /&gt;
		# HTTP (ports 80 &amp;amp; 443)&lt;br /&gt;
		tcp dport { http, https } accept&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	chain forward {&lt;br /&gt;
		type filter hook forward priority 0; policy drop;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	chain output {&lt;br /&gt;
		type filter hook output priority 0; policy accept;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
===レート制限 IPv4/IPv6 ファイアウォール===&lt;br /&gt;
&lt;br /&gt;
{{hc|firewall.2.rules|2=&amp;lt;nowiki&amp;gt;&lt;br /&gt;
table inet filter {&lt;br /&gt;
	chain input {&lt;br /&gt;
		type filter hook input priority 0; policy drop;&lt;br /&gt;
&lt;br /&gt;
		# no ping floods:&lt;br /&gt;
		ip6 nexthdr icmpv6 icmpv6 type echo-request limit rate 10/second accept&lt;br /&gt;
		ip protocol icmp icmp type echo-request limit rate 10/second accept&lt;br /&gt;
&lt;br /&gt;
		ct state established,related accept&lt;br /&gt;
		ct state invalid drop&lt;br /&gt;
&lt;br /&gt;
		iif lo accept&lt;br /&gt;
&lt;br /&gt;
		# avoid brute force on ssh:&lt;br /&gt;
		tcp dport ssh limit rate 15/minute accept&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	chain forward {&lt;br /&gt;
		type filter hook forward priority 0; policy drop;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	chain output {&lt;br /&gt;
		type filter hook output priority 0; policy accept;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
===ジャンプ===&lt;br /&gt;
&lt;br /&gt;
設定ファイルでジャンプを使うときは、先にターゲットチェインを定義する必要があります。そうしないと {{ic|Error: Could not process rule: No such file or directory}} というエラーが発生します。&lt;br /&gt;
{{hc|jump.rules|2=&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
table inet filter {&lt;br /&gt;
    chain web {&lt;br /&gt;
        tcp dport http accept&lt;br /&gt;
        tcp dport 8080 accept&lt;br /&gt;
    }&lt;br /&gt;
    chain input {&lt;br /&gt;
        type filter hook input priority 0;&lt;br /&gt;
        ip saddr 10.0.2.0/24 jump web&lt;br /&gt;
        drop&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== インターフェイスによってルールを変える ===&lt;br /&gt;
&lt;br /&gt;
複数のネットワークインターフェイスが存在する場合、それぞれのインターフェイスごとに別々のフィルターチェインを設定したい場合があるかもしれません。例えば、ホームルーターを構築するとき、LAN 上でアクセスできるウェブサーバーを実行しつつ ({{ic|nsp3s0}} インターフェイス)、インターネットからはアクセスできないようにしたい場合 ({{ic|enp2s0}} インターフェイス) などは以下のように設定します:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;table inet filter {&lt;br /&gt;
  chain input { # this chain serves as a dispatcher&lt;br /&gt;
    type filter hook input priority 0;&lt;br /&gt;
&lt;br /&gt;
    iif lo accept # always accept loopback&lt;br /&gt;
    iifname enp2s0 jump input_enp2s0&lt;br /&gt;
    iifname enp3s0 jump input_enp3s0&lt;br /&gt;
&lt;br /&gt;
    reject with icmp type port-unreachable # refuse traffic from all other interfaces&lt;br /&gt;
  }&lt;br /&gt;
  chain input_enp2s0 { # rules applicable to public interface interface&lt;br /&gt;
    ct state {established,related} accept&lt;br /&gt;
    ct state invalid drop&lt;br /&gt;
    udp dport bootpc accept&lt;br /&gt;
    tcp dport bootpc accept&lt;br /&gt;
    reject with icmp type port-unreachable # all other traffic&lt;br /&gt;
  }&lt;br /&gt;
  chain input_enp3s0 {&lt;br /&gt;
    ct state {established,related} accept&lt;br /&gt;
    ct state invalid drop&lt;br /&gt;
    udp dport bootpc accept&lt;br /&gt;
    tcp dport bootpc accept&lt;br /&gt;
    tcp port http accept&lt;br /&gt;
    tcp port https accept&lt;br /&gt;
    reject with icmp type port-unreachable # all other traffic&lt;br /&gt;
  }&lt;br /&gt;
  chain ouput { # we let everything out&lt;br /&gt;
    type filter hook output priority 0;&lt;br /&gt;
    accept&lt;br /&gt;
  }&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
もしくは {{ic|iifname}} ステートメントを特定のインターフェイスで使用して、他のインターフェイスについてはデフォルトルールを設定するという方法もあります。&lt;br /&gt;
&lt;br /&gt;
=== マスカレード ===&lt;br /&gt;
&lt;br /&gt;
nftables には特殊なキーワード {{ic|masquerade}} が存在し、送信元アドレスが自動的に出力インターフェイスのアドレスに設定されます ([http://wiki.nftables.org/wiki-nftables/index.php/Performing_Network_Address_Translation_%28NAT%29#Masquerading ソース])。ルーターのインターフェイスが多数の ISP に接続されているときなど、インターフェイスの IP アドレスが一定でない場合に有用です。通常は、インターフェイスの IP アドレスが変わるたびにネットワークアドレス変換 (NAT) のルールを更新する必要があります。&lt;br /&gt;
&lt;br /&gt;
{{ic|masquerade}} を使用するには:&lt;br /&gt;
&lt;br /&gt;
* カーネルコンフィグで以下のマスカレード設定が有効になっている必要があります。&lt;br /&gt;
&lt;br /&gt;
 CONFIG_NFT_MASQ=m&lt;br /&gt;
&lt;br /&gt;
* {{ic|masquerade}} キーワードは {{ic|nat}} タイプのチェインでのみ使うことができます。&lt;br /&gt;
* マスカレードは一種のソース NAT であり、出力パスでのみ機能します。&lt;br /&gt;
&lt;br /&gt;
2つのインターフェイスが存在し {{ic|nsp3s0}} が LAN に接続され、{{ic|enp2s0}} がインターネットに接続されているマシンでの設定例:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;table inet my_nat {&lt;br /&gt;
  chain my_masquerade {&lt;br /&gt;
    type nat hook postrouting priority srcnat;&lt;br /&gt;
    oifname &amp;quot;enp2s0&amp;quot; masquerade&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
テーブルタイプが{{ic|inet}}であるため、IPv4パケットとIPv6パケットの両方がマスカレードされます。IPv4パケットのみをマスカレードしたい場合（IPv6のアドレス空間が拡張されているためNATが不要）、{{ic|oifname &amp;quot;enp2s0&amp;quot;}}の前に{{ic|meta nfproto ipv4}}を追記するか、テーブルタイプを{{ic|ip}}に変更してください。&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;
現在のルールセットを消去:&lt;br /&gt;
&lt;br /&gt;
 # nft flush ruleset&lt;br /&gt;
&lt;br /&gt;
テーブルを追加:&lt;br /&gt;
&lt;br /&gt;
 # nft add table inet filter&lt;br /&gt;
&lt;br /&gt;
input, forward, output ベースチェインを追加。input と forward のポリシーは破棄にして、output のポリシーは許可にする:&lt;br /&gt;
&lt;br /&gt;
 # nft add chain inet filter input { type filter hook input priority 0 \; policy drop \; }&lt;br /&gt;
 # nft add chain inet filter forward { type filter hook forward priority 0 \; policy drop \; }&lt;br /&gt;
 # nft add chain inet filter output { type filter hook output priority 0 \; policy accept \; }&lt;br /&gt;
&lt;br /&gt;
レギュラーチェインを追加して tcp と udp に関連付ける:&lt;br /&gt;
&lt;br /&gt;
 # nft add chain inet filter TCP&lt;br /&gt;
 # nft add chain inet filter UDP&lt;br /&gt;
&lt;br /&gt;
関連・確立済みトラフィックは許可する:&lt;br /&gt;
&lt;br /&gt;
 # nft add rule inet filter input ct state related,established accept&lt;br /&gt;
&lt;br /&gt;
ループバックインターフェイスのトラフィックは全て許可する:&lt;br /&gt;
&lt;br /&gt;
 # nft add rule inet filter input iif lo accept&lt;br /&gt;
&lt;br /&gt;
不正なトラフィックは全て破棄する:&lt;br /&gt;
&lt;br /&gt;
 # nft add rule inet filter input ct state invalid drop&lt;br /&gt;
&lt;br /&gt;
新しいエコー要求 (ping) は許可する:&lt;br /&gt;
&lt;br /&gt;
 # nft add rule inet filter input ip protocol icmp icmp type echo-request ct state new accept&lt;br /&gt;
&lt;br /&gt;
新しい udp トラフィックは UDP チェインにジャンプする:&lt;br /&gt;
&lt;br /&gt;
 # nft add rule inet filter input ip protocol udp ct state new jump UDP&lt;br /&gt;
&lt;br /&gt;
新しい tcp トラフィックは TCP チェインにジャンプする:&lt;br /&gt;
&lt;br /&gt;
 # nft add rule inet filter input ip protocol tcp tcp flags \&amp;amp; \(fin\|syn\|rst\|ack\) == syn ct state new jump TCP&lt;br /&gt;
&lt;br /&gt;
他のルールによって処理されなかったトラフィックは全て拒否する:&lt;br /&gt;
&lt;br /&gt;
 # nft add rule inet filter input ip protocol udp reject&lt;br /&gt;
 # nft add rule inet filter input ip protocol tcp reject with tcp reset&lt;br /&gt;
 # nft add rule inet filter input counter reject with icmp type prot-unreachable&lt;br /&gt;
&lt;br /&gt;
ここから TCP と UDP チェインで処理する接続で開きたいポートを決めます。例えばウェブサーバーの接続を開くには:&lt;br /&gt;
&lt;br /&gt;
 # nft add rule inet filter TCP tcp dport 80 accept&lt;br /&gt;
&lt;br /&gt;
ポート 443 からのウェブサーバーの HTTPS 接続を許可するには:&lt;br /&gt;
&lt;br /&gt;
 # nft add rule inet filter TCP tcp dport 443 accept&lt;br /&gt;
&lt;br /&gt;
ポート 22 の SSH 接続を許可するには:&lt;br /&gt;
&lt;br /&gt;
 # nft add rule inet filter TCP tcp dport 22 accept&lt;br /&gt;
&lt;br /&gt;
DNS リクエストを許可するには:&lt;br /&gt;
&lt;br /&gt;
 # nft add rule inet filter TCP tcp dport 53 accept&lt;br /&gt;
 # nft add rule inet filter UDP tcp dport 53 accept&lt;br /&gt;
&lt;br /&gt;
設定に満足したら変更を保存して永続化させてください。&lt;br /&gt;
&lt;br /&gt;
=== ブルートフォース攻撃の対策 ===&lt;br /&gt;
&lt;br /&gt;
[[Sshguard]] はブルートフォース攻撃を検出して一時的に IP アドレスに基づきブロックするようにファイアウォールを編集します。Sshguard で nftables を使うように設定する方法は [[Sshguard#nftables]] を見てください。&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== Docker と共に使う ===&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* 次のセットアップでは、{{ic|--net host --privileged}} を使用してもコンテナ内で {{ic|AF_BLUETOOTH}} などのプロトコルを利用できなくなります。&lt;br /&gt;
* ルートレス Dockerコンテナはすでに別のネットワーク名前空間で実行されています。何もする必要がないかもしれません。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
nftables を使用すると、[[Docker]] のネットワーク (おそらく他のコンテナランタイムも同様) に干渉する可能性があります。&lt;br /&gt;
iptables ルールにパッチを適用して定義されたサービス開始順序を確保するか、docker の使用が非常に制限される dockerのiptablesの管理を完全に無効にするなど、さまざまな回避策がインターネット上で見つかります。&lt;br /&gt;
(ポートフォワーディングや docker-compose を考えてください)&lt;br /&gt;
&lt;br /&gt;
信頼できる方法は、docker を別のネットワーク名前空間で実行させ、そこで任意の処理を実行できるようにすることです。 &lt;br /&gt;
Docker が nftables と iptables ルールを混在させないように、{{Pkg|iptables-nft}} を&#039;&#039;&#039;使用しない&#039;&#039;&#039;方が良いでしょう。&lt;br /&gt;
&lt;br /&gt;
以下の docker サービス [[ドロップインファイル]] を使用してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/docker.service.d/netns.conf|2=&lt;br /&gt;
[Service]&lt;br /&gt;
PrivateNetwork=yes&lt;br /&gt;
&lt;br /&gt;
# cleanup&lt;br /&gt;
ExecStartPre=-nsenter -t 1 -n -- ip link delete docker0&lt;br /&gt;
&lt;br /&gt;
# add veth&lt;br /&gt;
ExecStartPre=nsenter -t 1 -n -- ip link add docker0 type veth peer name docker0_ns&lt;br /&gt;
ExecStartPre=sh -c &#039;nsenter -t 1 -n -- ip link set docker0_ns netns &amp;quot;$$BASHPID&amp;quot; &amp;amp;&amp;amp; true&#039;&lt;br /&gt;
ExecStartPre=ip link set docker0_ns name eth0&lt;br /&gt;
&lt;br /&gt;
# bring host online&lt;br /&gt;
ExecStartPre=nsenter -t 1 -n -- ip addr add 10.0.0.1/24 dev docker0&lt;br /&gt;
ExecStartPre=nsenter -t 1 -n -- ip link set docker0 up&lt;br /&gt;
&lt;br /&gt;
# bring ns online&lt;br /&gt;
ExecStartPre=ip addr add 10.0.0.100/24 dev eth0&lt;br /&gt;
ExecStartPre=ip link set eth0 up&lt;br /&gt;
ExecStartPre=ip route add default via 10.0.0.1 dev eth0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
セットアップにおいてIPアドレス {{ic|10.0.0.*}} が適切でない場合は、調整してください。&lt;br /&gt;
&lt;br /&gt;
以下のポストルーティングルールで、{{ic|docker0}} のIPフォワーディングを有効にし、NATを設定します:&lt;br /&gt;
&lt;br /&gt;
 iifname docker0 oifname eth0 masquerade&lt;br /&gt;
&lt;br /&gt;
次に、[[インターネット共有#パケット転送の有効化|kernel IP forwarding]] が有効になっていることを確認します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
これで、nftables を使用して {{ic|docker0}} インターフェイスのファイアウォールとポートフォワーディングを干渉することなくセットアップできるようになります。&lt;br /&gt;
&lt;br /&gt;
==参照==&lt;br /&gt;
* [https://wiki.nftables.org/ netfilter nftables wiki]&lt;br /&gt;
* [https://lwn.net/Articles/324251/ nftables の最初のリリース]&lt;br /&gt;
* [https://home.regit.org/netfilter-en/nftables-quick-howto/ nftables クイックハウツー]&lt;br /&gt;
* [https://lwn.net/Articles/564095/ nftables の帰還]&lt;br /&gt;
* [https://developers.redhat.com/blog/2016/10/28/what-comes-after-iptables-its-successor-of-course-nftables/ What comes after ‘iptables’? It’s successor, of course: `nftables`]&lt;/div&gt;</summary>
		<author><name>Hkiku482</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E4%B8%80%E8%A6%A7/%E3%83%A6%E3%83%BC%E3%83%86%E3%82%A3%E3%83%AA%E3%83%86%E3%82%A3&amp;diff=40494</id>
		<title>アプリケーション一覧/ユーティリティ</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E4%B8%80%E8%A6%A7/%E3%83%A6%E3%83%BC%E3%83%86%E3%82%A3%E3%83%AA%E3%83%86%E3%82%A3&amp;diff=40494"/>
		<updated>2025-07-01T08:22:07Z</updated>

		<summary type="html">&lt;p&gt;Hkiku482: /* コンソール */ fastfetchを追加&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:アプリケーション]]&lt;br /&gt;
[[Category:ソフトウェア一覧]]&lt;br /&gt;
[[en:List of applications/Utilities]]&lt;br /&gt;
[[es:List of applications/Utilities]]&lt;br /&gt;
[[it:List of applications/Utilities]]&lt;br /&gt;
[[ru:List of applications/Utilities]]&lt;br /&gt;
[[uk:List of applications/Utilities]]&lt;br /&gt;
[[zh-hans:List of applications/Utilities]]&lt;br /&gt;
[[zh-hant:List of applications/Utilities]]&lt;br /&gt;
{{List of Applications navigation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
== ユーティリティ ==&lt;br /&gt;
&lt;br /&gt;
=== Terminal ===&lt;br /&gt;
&lt;br /&gt;
==== コマンドシェル ====&lt;br /&gt;
次の記事を参照: [[コマンドラインシェル]]&lt;br /&gt;
&lt;br /&gt;
次も参照: [[Wikipedia:Comparison of command shells]]&lt;br /&gt;
&lt;br /&gt;
==== ターミナルエミュレータ ====&lt;br /&gt;
ターミナルエミュレータとはターミナルを含むGUIウィンドウを表示する機能を有します。&lt;br /&gt;
それらエミュレータのほとんどは Xterm をエミュレートしていて、その Xterm は VT102 をエミュレートしていて、VT102 はタイプライターをエミュレートしています。For further background information, see [[Wikipedia:Terminal emulator]].&lt;br /&gt;
&lt;br /&gt;
For a comprehensive list, see [[Wikipedia:List of terminal emulators]].&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Alacritty]]|クロスプラットフォームの GPU アクセラレーションターミナルエミュレータ。|https://github.com/jwilm/alacritty|{{Pkg|alacritty}}}}&lt;br /&gt;
* {{App|aterm|透過をサポートした xterm 代替。2008年から urxvt に取って代わられています。|http://www.afterstep.org/aterm.php|{{AUR|aterm}}}}&lt;br /&gt;
* {{App|[[cool-retro-term]]|昔のブラウン管ディスプレイを模した見た目が良いターミナルエミュレータ。|https://github.com/Swordfish90/cool-retro-term|{{Pkg|cool-retro-term}}}}&lt;br /&gt;
* {{App|CoreTerminal|Terminal emulator based on qtermwidget. Part of C-Suite.|https://cubocore.org/|{{AUR|coreterminal}}}}&lt;br /&gt;
* {{App|CuteCom|A graphical serial terminal.|https://gitlab.com/cutecom/cutecom|{{AUR|cutecom}}}}&lt;br /&gt;
* {{App|Deepin Terminal|Terminal emulation application for Deepin desktop.|https://www.deepin.org/en/original/deepin-terminal/|{{Pkg|deepin-terminal}}}}&lt;br /&gt;
* {{App|Eterm|[[Enlightenment]] デスクトップ向けに作られた xterm を代替するターミナルエミュレータ。|https://github.com/mej/Eterm|{{AUR|eterm}}}}&lt;br /&gt;
* {{App|foot|Lightweight terminal emulator for Wayland with [[w:sixel|sixel]] support|https://codeberg.org/dnkl/foot|{{AUR|foot}}, {{AUR|foot-git}}}}&lt;br /&gt;
* {{App|Hyper|A terminal with JS/CSS support. Based on the [https://electronjs.org/ Electron] platform.|https://github.com/zeit/hyper|{{AUR|hyper}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Konsole|Konsole]]|[[KDE]] デスクトップのターミナルエミュレータ。|https://konsole.kde.org/|{{Pkg|konsole}}}}&lt;br /&gt;
* {{App|[[kitty]]|モダンで柔軟な設定が可能な OpenGL ベースのターミナルエミュレータ|https://github.com/kovidgoyal/kitty|{{Pkg|kitty}}}}&lt;br /&gt;
* {{App|Liri Terminal|Material Design terminal for Liri.|https://github.com/lirios/terminal|{{Pkg|liri-terminal}}}}&lt;br /&gt;
* {{App|mlterm|世界中の様々な文字セットやエンコーディングが使える多言語対応のターミナルエミュレータ。|https://sourceforge.net/projects/mlterm/|{{AUR|mlterm}}}}&lt;br /&gt;
* {{App|moserial|GTK-based serial terminal for the GNOME desktop.|https://wiki.gnome.org/Apps/Moserial|{{Pkg|moserial}}}}&lt;br /&gt;
* {{App|[[PuTTY]]|Highly configurable ssh/telnet/serial console program.|https://www.chiark.greenend.org.uk/~sgtatham/putty/|{{Pkg|putty}}}}&lt;br /&gt;
* {{App|QTerminal|軽量な Qt ベースのターミナルエミュレータ。|https://github.com/qterminal/qterminal|{{Pkg|qterminal}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Rxvt|rxvt]]|xterm の人気代替。|http://rxvt.sourceforge.net/|{{AUR|rxvt}}}}&lt;br /&gt;
* {{App|shellinabox|ウェブベースの SSH ターミナル。|https://github.com/shellinabox/shellinabox|{{AUR|shellinabox-git}}}}&lt;br /&gt;
* {{App|[[st]]|X 向けのシンプルなターミナル実装。|https://st.suckless.org|{{AUR|st}}}}&lt;br /&gt;
* {{App|Station|Terminal emulation features different view modes such as split vertically and horizontally, a tabbed interface, and copy and paste commands.|https://mauikit.org/|{{Pkg|maui-station}}}}&lt;br /&gt;
* {{App|Terminology|革新的な機能を備えた Enlightenment プロジェクトチームによるターミナルエミュレータ:ファイルのサムネイルとメディアは、メディアプレーヤーのように再生されます。|https://www.enlightenment.org/about-terminology|{{Pkg|terminology}}}}&lt;br /&gt;
* {{App|[[urxvt]]|(Perl によって) 高い拡張性を持ちユニコードが使える rxvt クローンターミナルエミュレータ。タブ、URL 起動、Quake スタイルのドロップダウンモード、擬似透過をサポート。|http://software.schmorp.de/pkg/rxvt-unicode.html|{{Pkg|rxvt-unicode}}}}&lt;br /&gt;
* {{App|wayst|Simple terminal emulator for Wayland and X11 with OpenGL rendering and minimal dependencies.|https://github.com/91861/wayst|{{AUR|wayst-git}}}}&lt;br /&gt;
* {{App|[[xterm]]|X Window System 用のシンプルなターミナルエミュレータ。ウィンドウシステムを直接使えないプログラム用に DEC VT102 や Tektronix 4014 互換のターミナルを提供します。|https://invisible-island.net/xterm/|{{Pkg|xterm}}}}&lt;br /&gt;
* {{App|[[Yakuake]]|Konsole ベースのドロップダウンターミナル (Quake スタイル) エミュレータ。|https://apps.kde.org/yakuake/|{{Pkg|yakuake}}}}&lt;br /&gt;
* {{App|zutty|A high-end terminal for low-end systems.|https://tomscii.sig7.se/zutty/|{{Pkg|zutty}}}}&lt;br /&gt;
&lt;br /&gt;
===== VTE ベース =====&lt;br /&gt;
&lt;br /&gt;
[https://wiki.gnome.org/Apps/Terminal/VTE VTE] (Virtual Terminal Emulator) は初期の GNOME で GNOME Terminal で使うために開発されたウィジェットです。VTE ができてから、似た機能を持つ数多くのターミナルが生まれました。&lt;br /&gt;
&lt;br /&gt;
* {{App|Deepin Terminal (GTK version)|Old terminal emulation application for Deepin desktop.|https://github.com/linuxdeepin/deepin-terminal-gtk|{{Pkg|deepin-terminal-gtk}}}}&lt;br /&gt;
* {{App|EasySSH|SSH Connection Manager.|https://github.com/muriloventuroso/easyssh|{{AUR|easyssh}}}}&lt;br /&gt;
* {{App|Germinal|ボーダーレスな最大化されたターミナルを表示する、最小主義のターミナルエミュレータ。デフォルトで tmux セッションにアタッチするので、タブやパネルが使えます。|https://www.imagination-land.org/tags/germinal.html|{{AUR|germinal}}}}&lt;br /&gt;
* {{App|[[Wikipedia:GNOME Terminal|GNOME Terminal]]|[[GNOME]] デスクトップのターミナルエミュレータ。ユニコードをサポート。|https://wiki.gnome.org/Apps/Terminal|{{Pkg|gnome-terminal}}}}&lt;br /&gt;
* {{App|[[Guake]]|GNOME デスクトップ向けドロップダウンターミナル。|http://guake-project.org/|{{Pkg|guake}}}}&lt;br /&gt;
* {{App|kermit|A VTE-based terminal emulator that aims to be simple, fast and effective.|https://github.com/orhun/kermit|{{AUR|kermit}}}}&lt;br /&gt;
* {{App|King’s Cross|Simple user-friendly terminal emulator for the GNOME desktop.|https://gitlab.gnome.org/ZanderBrown/kgx|{{AUR|kgx}}}}&lt;br /&gt;
* {{App|LXTerminal|[[LXDE]] 向けのデスクトップ非依存のターミナルエミュレータ。|https://wiki.lxde.org/en/LXTerminal|{{Pkg|lxterminal}}}}&lt;br /&gt;
* {{App|MATE terminal|[[MATE]] デスクトップの [[Wikipedia:GNOME terminal|GNOME ターミナル]] のフォーク。|https://www.mate-desktop.org/|{{Pkg|mate-terminal}}}}&lt;br /&gt;
* {{App|Pantheon Terminal|超軽量・美麗・シンプルなターミナルエミュレータ。デフォルト設定で使うように作られているので設定がほとんどありません。|https://github.com/elementary/terminal|{{Pkg|pantheon-terminal}}}}&lt;br /&gt;
* {{App|ROXTerm|場所をとらないタブ式ターミナルエミュレータ。|http://roxterm.sourceforge.net/|{{AUR|roxterm}}}}&lt;br /&gt;
* {{App|sakura|GTK と VTE ベースのターミナルエミュレータ。|https://www.pleyades.net/david/projects/sakura|{{Pkg|sakura}}}}&lt;br /&gt;
* {{App|[[Terminator]]|マルチプルでリサイズ可能な端末パネルをサポートしたターミナルエミュレータ。|https://gnome-terminator.org/|{{Pkg|terminator}}}}&lt;br /&gt;
* {{App|[[Termite]]|キーボード中心の VTE ベースのターミナル。タイル型またはタブをサポートしているウィンドウマネージャで使われるように作られています。 Unmaintained - the developers recommend switching to Alacritty.|https://github.com/thestinger/termite|{{AUR|termite}}}}&lt;br /&gt;
* {{App|Tilda|設定可能なドロップダウンターミナルエミュレータ。|https://github.com/lanoxx/tilda/|{{Pkg|tilda}}}}&lt;br /&gt;
* {{App|Tilix|タイル型ターミナルエミュレータ for GNOME.|https://gnunn1.github.io/tilix-web/|{{Pkg|tilix}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Terminal (Xfce)|Xfce Terminal]]|[[Xfce]] デスクトップに含まれているターミナルエミュレータ。カラープロンプト、タブをサポート。|https://docs.xfce.org/apps/terminal/start|{{Pkg|xfce4-terminal}}}}&lt;br /&gt;
&lt;br /&gt;
===== KMS ベース =====&lt;br /&gt;
&lt;br /&gt;
以下のターミナルエミュレータは [[カーネルモード設定]]を使っており X がなくても起動できます。&lt;br /&gt;
* {{App|[[KMSCON]]|Linux オペレーティングシステム用のターミナルエミュレータを統合した KMS/DRM ベースのシステムコンソール（getty）です。|https://github.com/dvdhrm/kmscon|{{AUR|kmscon}}}}&lt;br /&gt;
&lt;br /&gt;
===== フレームバッファベース =====&lt;br /&gt;
&lt;br /&gt;
GNU/Linux では、Linux カーネルの仮想デバイス (&#039;&#039;&#039;fbdev&#039;&#039;&#039;) や X の仮想フレームバッファシステム (&#039;&#039;&#039;xvfb&#039;&#039;&#039;) のことを[[Wikipedia:Framebuffer|フレームバッファ]]と呼ぶことがあります。このセクションでは主としてカーネルの仮想デバイス &#039;&#039;&#039;fbdev&#039;&#039;&#039; をベースにするターミナルエミュレータをリストアップしています。&lt;br /&gt;
&lt;br /&gt;
* {{App|yaft|X をなくても動かせるシンプルなターミナルエミュレータ。UCS2 文字、壁紙、256color をサポート。|https://github.com/uobikiemukot/yaft|{{aur|yaft}}}}&lt;br /&gt;
* {{App|[[Fbterm]]|a fast FrameBuffer based TERMinal emulator for linux|https://salsa.debian.org/debian/fbterm|{{AUR|fbterm}}}}&lt;br /&gt;
&lt;br /&gt;
==== ターミナルページャ ====&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Terminal pager]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:More_(command)|more]]|シンプルで機能の少ないページャです。util-linuxの一部です。|https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/about/|{{Pkg|util-linux}}}}&lt;br /&gt;
* {{App|[[Core_utilities#Essentials|less]]|more に似たプログラムだが、前方・後方両方のスクロールをサポートし、ファイルの部分読み込みもできる。|https://www.gnu.org/software/less/|{{Pkg|less}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Most_(Unix)|most]]|マルチウィンドウ、左右スクロール、内蔵カラーをサポートしたページャ|http://www.jedsoft.org/most/|{{Pkg|most}}}}&lt;br /&gt;
* {{App|mcview|マウスとカラーに対応したページャ。midnight commander にバンドルされている。|https://midnight-commander.org/|{{Pkg|mc}}}}&lt;br /&gt;
* また、[[Vim]] は[[Vim#Vim をページャとして使う|ページャとして使う]]ことができます。&lt;br /&gt;
&lt;br /&gt;
==== ターミナルマルチプレクサ ====&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Terminal multiplexer]] も参照してください。&lt;br /&gt;
&lt;br /&gt;
* {{App|abduco|プロセスを制御端末とは別に実行させる、セッションのアタッチとデタッチをサポートするツール。|https://www.brain-dump.org/projects/abduco/|{{Pkg|abduco}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Byobu (software)|byobu]]|An GPLv3 licensed addon for tmux or screen. It requires a terminal multiplexer installed.|https://byobu.org/|{{Pkg|byobu}}}}&lt;br /&gt;
* {{App|[[dtach]]|Program that emulates the detach feature of [[GNU Screen]].|http://dtach.sourceforge.net/|{{AUR|dtach}}}}&lt;br /&gt;
* {{App|dvtm|[[dwm]]-style window manager in the console.|https://www.brain-dump.org/projects/dvtm/|{{Pkg|dvtm}}}}&lt;br /&gt;
* {{App|[[GNU Screen]]|物理端末を多重化するフルスクリーンウィンドウマネージャ。|https://www.gnu.org/software/screen/|{{Pkg|screen}}}}&lt;br /&gt;
* {{App|mtm|Simple terminal multiplexer with just four commands: change focus, split, close, and screen redraw.|https://github.com/deadpixi/mtm|{{AUR|mtm-git}}}}&lt;br /&gt;
* {{App|[[tmux]]|BSDライセンスのターミナル・マルチプレクサ。|https://tmux.github.io/|{{Pkg|tmux}}}}&lt;br /&gt;
* {{App|zellij|Rust で書かれた強化されたターミナル・マルチプレクサ|https://zellij.dev/|{{Pkg|zellij}}}}&lt;br /&gt;
* {{App|wezterm|[[Rust]] で実装された GPU アクセラレーションによるクロスプラットフォームなターミナルエミュレータおよびマルチプレクサ。|https://wezfurlong.org/wezterm/|{{Pkg|wezterm}}}}&lt;br /&gt;
{{Tip|端末エミュレーターの [[Kitty]] も同様の機能を備えています。}}&lt;br /&gt;
&lt;br /&gt;
=== ファイル ===&lt;br /&gt;
&lt;br /&gt;
==== ファイルマネージャ ====&lt;br /&gt;
&lt;br /&gt;
See also [[Wikipedia:Comparison of file managers]].&lt;br /&gt;
&lt;br /&gt;
===== コンソール =====&lt;br /&gt;
&lt;br /&gt;
* {{App|Clex|フルスクリーンのユーザーインターフェイスを持つファイルマネージャ。|http://www.clex.sk/|{{Aur|clex}}}}&lt;br /&gt;
* {{App|CliFM|The command line file manager: full-featured, fast, extensible, and lightweight as hell.|https://github.com/leo-arch/clifm|{{AUR|clifm}}}}&lt;br /&gt;
* {{App|ded|directory editor, file manager similar to Emacs dired|https://invisible-island.net/ded/ded.html|{{AUR|ded}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Dired|Dired]]|[[Emacs]] と統合されたディレクトリエディタ。|https://www.gnu.org/software/emacs/manual/html_node/emacs/Dired.html|{{pkg|emacs}}}}&lt;br /&gt;
* {{App|joshuto|ranger-like terminal file manager written in Rust.|https://github.com/kamiyaa/joshuto|{{AUR|joshuto-git}}}}&lt;br /&gt;
* {{App|Last File Manager|curses インターフェイスを備えた Python 3 で書かれた強力なファイルマネージャ。|https://inigo.katxi.org/devel/lfm/|{{AUR|lfm}}}}&lt;br /&gt;
* {{App|lf|Terminal file manager written in Go using server/client architecture.|https://github.com/gokcehan/lf|{{aur|lf}}}}&lt;br /&gt;
* {{App|[[Midnight Commander]]|コンソールベース、デュアルパネルのファイルマネージャー。|https://midnight-commander.org|{{Pkg|mc}}}}&lt;br /&gt;
* {{App|nffm|&amp;quot;Nothing Fancy File Manager&amp;quot;、C で書かれたマウスを使わない ncurses ファイルマネージャ。|https://github.com/mariostg/nffm|{{AUR|nffm-git}}}}&lt;br /&gt;
* {{App|[[nnn]]|Tiny, lightning fast, feature-packed file manager.|https://github.com/jarun/nnn|{{Pkg|nnn}}}}&lt;br /&gt;
* {{App|fff|A simple file manager written in Bash.|https://github.com/dylanaraps/fff|{{Pkg|fff}}}}&lt;br /&gt;
* {{App|Pilot|[[Alpine]] メールクライアントについてくるファイルマネージャー。|https://alpine.x10host.com/|{{AUR|alpine-git}}}}&lt;br /&gt;
* {{App|[[Ranger]]|vi バインディング、カスタマイズ性、多機能をもったコンソールベースのファイルマネージャー。|https://ranger.github.io/|{{Pkg|ranger}}}}&lt;br /&gt;
* {{App|[[Vifm]]|ncurses ベースの 2 パネルファイルマネージャー、vi ライクなキーバインド。|https://vifm.info|{{Pkg|vifm}}}}&lt;br /&gt;
* {{App|xplr|A hackable, minimal, fast TUI file explorer.|https://xplr.dev|{{Pkg|xplr}}}}&lt;br /&gt;
&lt;br /&gt;
===== グラフィカル =====&lt;br /&gt;
&lt;br /&gt;
* {{App|Caja|MATE デスクトップのファイルマネージャ。|https://github.com/mate-desktop/caja|{{Pkg|caja}}}}&lt;br /&gt;
* {{App|CoreFM|Simple lightweight easy to use file manager with many features like image previews, mime-icon support, split view, auto-mounting of removable media, drag-n-drop support etc. Part of C-Suite.|https://cubocore.org/|{{AUR|corefm}}}}&lt;br /&gt;
* {{App|Deepin File Manager|[[Deepin]] 用に開発されたファイルマネージャ。|https://www.deepin.org/en/original/dde-file-manager/|{{Pkg|deepin-file-manager}}}}&lt;br /&gt;
* {{App|[[Dolphin]]|KDE デスクトップのファイルマネージャー。|https://apps.kde.org/dolphin/|{{Pkg|dolphin}}}}&lt;br /&gt;
* {{App|Gentoo|GTK の軽量ファイルマネージャ。|https://sourceforge.net/projects/gentoo/|{{AUR|gentoo}}}}&lt;br /&gt;
* {{App|[[GNOME Files]]|拡張性のある、カスタムスクリプトをサポートしているヘビー級のファイルマネージャー。GNOME のデフォルト。|https://wiki.gnome.org/Apps/Files|{{Pkg|nautilus}}}}&lt;br /&gt;
* {{App|Index|File manager that lets you browse your system files and applications and preview your music, text, image and video files and share them with external applications.|https://apps.kde.org/index-fm/|{{Pkg|index-fm}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Konqueror|Konqueror]]|KDE デスクトップ用ファイルマネージャー。|https://apps.kde.org/konqueror/|{{Pkg|konqueror}}}}&lt;br /&gt;
* {{App|Liri Files|The file manager for Liri.|https://github.com/lirios/files|{{Pkg|liri-files}}}}&lt;br /&gt;
* {{App|[[Nemo]]|Nemo は Cinnamon デスクトップのファイルマネージャです。A fork of Nautilus.|https://cinnamon.linuxmint.com/{{Dead link|2021|05|17|status=SSL error}}|{{Pkg|nemo}}}}&lt;br /&gt;
* {{App|Pantheon Files|File browser designed for elementary OS.|https://github.com/elementary/files|{{Pkg|pantheon-files}}}}&lt;br /&gt;
* {{App|PathFinder|[[Wikipedia:Fox_toolkit|FOX ツールキット]] によるファイルブラウザ。|http://fox-toolkit.org/|{{Pkg|fox}}}}&lt;br /&gt;
* {{App|[[PCManFM]]|desktop icon や壁紙の管理などの機能をもっている very fast and 軽量ファイルマネージャー。|https://wiki.lxde.org/en/PCManFM|{{Pkg|pcmanfm}}}}&lt;br /&gt;
* {{App|[[PCManFM]]-Qt|Qt port of PCManFM file manager.|https://github.com/lxqt/pcmanfm-qt|{{Pkg|pcmanfm-qt}}}}&lt;br /&gt;
* {{App|Peony|File manager for the UKUI desktop.|https://github.com/ukui/peony|{{Pkg|peony}}}}&lt;br /&gt;
* {{App|qtFM|小さく軽量な、純粋に Qt ベースの Linux デスクトップ用ファイルマネージャー。|https://qtfm.eu/|{{AUR|qtfm}}}}&lt;br /&gt;
* {{App|ROX Filer|小さく高速なファイルマネージャー。壁紙やパネルの管理なども可能。|http://rox.sourceforge.net/|{{Pkg|rox}}}}&lt;br /&gt;
* {{App|[[Thunar]]|高速に起動し素早くディレクトリを読み込むようにデーモンとして実行できるファイルマネージャー。|https://docs.xfce.org/xfce/thunar/start|{{Pkg|thunar}}}}&lt;br /&gt;
&lt;br /&gt;
====== Twin-panel ======&lt;br /&gt;
&lt;br /&gt;
Note that some of these twin-panel file managers can also be set to have only one pane.&lt;br /&gt;
&lt;br /&gt;
* {{App|Double Commander|2つのパネルが並ぶファイルマネージャ。Total Commander にインスパイアされており新しいアイデアが実装されています。|https://doublecmd.sourceforge.io/|GTK: {{Pkg|doublecmd-gtk2}}, Qt5: {{Pkg|doublecmd-qt5}}}}&lt;br /&gt;
* {{App|[[Wikipedia:GNOME Commander|GNOME Commander]]|GNOME デスクトップのデュアルパネルファイルマネージャ。|https://gcmd.github.io/|{{AUR|gnome-commander}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Krusader|Krusader]]|KDE デスクトップ用の先進的なツインパネル (Midnight Commander スタイル) ファイルマネージャー。|https://krusader.org/|{{Pkg|krusader}}}}&lt;br /&gt;
* {{App|muCommander|軽量でクロスプラットフォームのファイルマネージャ。デュアルパネルのインターフェイスを持ち、Java で書かれています。|https://www.mucommander.com/|{{AUR|mucommander}}}}&lt;br /&gt;
* {{App|[[SpaceFM]]|GTK マルチパネルタブ式ファイルマネージャー。|https://ignorantguru.github.io/spacefm/|{{AUR|spacefm}}}}&lt;br /&gt;
* {{App|Sunflower|小さく細かく設定可能でプラグインをサポートしたツインパネルの Linux ファイルマネージャー。|https://sunflower-fm.org/|{{AUR|sunflower}}}}&lt;br /&gt;
* {{App|trolCommander|Lightweight, dual-pane file manager written in Java. Fork of muCommander.|https://github.com/trol73/mucommander|{{AUR|trolcommander}}}}&lt;br /&gt;
* {{App|Tux Commander|人気の Total Commander や Midnight Commander ファイルマネージャーに似た２つのパネルをもったウィンドウ型ファイルマネージャー。|http://tuxcmd.sourceforge.net/description.php|{{Pkg|tuxcmd}}}}&lt;br /&gt;
* {{App|Worker|高速、軽量、機能豊富な X Window System 向けファイルマネージャー。|http://www.boomerangsworld.de/cms/worker/|{{AUR|worker}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Xfe|Xfe]]|Microsoft Explorer ライクの X 用ファイルマネージャー (X File Explorer)。|http://roland65.free.fr/xfe/|{{AUR|xfe}}}}&lt;br /&gt;
&lt;br /&gt;
==== ゴミ箱管理 ====&lt;br /&gt;
&lt;br /&gt;
* {{App|trash-cli|[https://specifications.freedesktop.org/trash-spec/trashspec-latest.html FreeDesktop.org の Trash 規格] を実装するコマンドラインインターフェイス。|https://github.com/andreafrancia/trash-cli|{{Pkg|trash-cli}}}}&lt;br /&gt;
&lt;br /&gt;
==== ファイル同期とバックアップ ====&lt;br /&gt;
&lt;br /&gt;
[[バックアッププログラム]]、[[Wikipedia:Comparison of file synchronization software]] と [[Wikipedia:Comparison of backup software]] も見てください。&lt;br /&gt;
&lt;br /&gt;
* {{App|borg|Deduplicating backup program with compression and authenticated encryption that supports backing up over ssh|https://www.borgbackup.org|{{Pkg|borg}}}}&lt;br /&gt;
* {{App|Déjà Dup|Simple GTK backup program. It hides the complexity of doing backups the &#039;right way&#039; (encrypted, off-site, and regular) and uses [[duplicity]] as the backend.|https://launchpad.net/deja-dup|{{Pkg|deja-dup}}}}&lt;br /&gt;
* {{App|[[Wikipedia:DirSync Pro|DirSync Pro]]|Small, but powerful utility for file and folder synchronization.|https://dirsyncpro.org/|{{AUR|dirsyncpro}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Duplicati|Duplicati]]|Backup client that securely stores encrypted, incremental, compressed backups on cloud storage services and remote file servers.|https://www.duplicati.com/|{{AUR|duplicati-latest}}}}&lt;br /&gt;
* {{App|[[duplicity]]|Simple command-line utility which allows encrypted compressed incremental backup to nearly any storage.|https://www.nongnu.org/duplicity/|{{Pkg|duplicity}}}}&lt;br /&gt;
* {{App|[[Duply]]|Command-line front-end for [[duplicity]] which simplifies running it. It manages backup job settings in profiles and allows to batch execute commands.|https://www.duply.net/|{{AUR|duply}}}}&lt;br /&gt;
* {{App|[[Wikipedia:FreeFileSync|FreeFileSync]]|Folder comparison and synchronization software that creates and manages backup copies of all your important files.|https://www.freefilesync.org/|{{AUR|freefilesync}}}}&lt;br /&gt;
* {{App|[[Wikipedia:git-annex|git-annex]]|Manage files with git, without checking the file contents into git.|https://git-annex.branchable.com/|{{Pkg|git-annex}}}}&lt;br /&gt;
* {{App|[[Wikipedia:grsync|grsync]]|GTK+ GUI for rsync to synchronize folders, files and make backups|https://www.opbyte.it/grsync/|{{Pkg|grsync}}}}&lt;br /&gt;
* {{App|hsync|Command line program to sync only those files that have been renamed/moved but otherwise unchanged. It works by issuing simple move operations at the destination without actually transferring the files, and is meant to be used in conjunction with other synchronization programs that lack this capability.|https://ambrevar.bitbucket.io/hsync/|{{AUR|hsync}}}}&lt;br /&gt;
* {{App|rclone|Command line program to sync files and directories to and from Amazon S3, Dropbox, Google Drive, Microsoft OneDrive, Yandex Disk and many other cloud storage services as well as between local paths.|https://rclone.org/|{{Pkg|rclone}}}}&lt;br /&gt;
* {{App|restic|Fast, secure, efficient backup program that supports backing up to many cloud services.|https://restic.net/|{{Pkg|restic}}}}&lt;br /&gt;
* {{App|[[rsync]]|File transfer program that uses the &amp;quot;rsync algorithm&amp;quot; which provides a very fast method for bringing remote files into sync. It does this by sending just the differences in the files across the link, without requiring that both sets of files are present at one of the ends of the link beforehand. Has [[Rsync#Front-ends|multiple frontends available]].|https://rsync.samba.org/|{{Pkg|rsync}}}}&lt;br /&gt;
* {{App|[[Wikipedia:SparkleShare|SparkleShare]]|File sharing and collaboration application written in C#. It can sync with any Git server over SSH.|https://www.sparkleshare.org/|{{Pkg|sparkleshare}}}}&lt;br /&gt;
* {{App|[[Syncthing]]|Continuous file synchronization program. It synchronizes files between two or more computers in a simple way without advanced configuration.|https://syncthing.net/|{{Pkg|syncthing}}}}&lt;br /&gt;
* {{App|Syncany|Cloud storage and filesharing application with a focus on security and abstraction of storage.|https://www.syncany.org/|{{AUR|syncany}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Synkron|Synkron]]|Application that helps you keep your files and folders always updated. You can easily sync your documents, music or pictures to have their latest versions everywhere.|http://synkron.sourceforge.net/|{{AUR|synkron}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Tarsnap|Tarsnap]]|Secure, efficient proprietary online backup service.|https://www.tarsnap.com/|{{Pkg|tarsnap}}}}&lt;br /&gt;
* {{App|Timeshift|A system restore tool for Linux.|https://github.com/teejee2008/timeshift|{{AUR|timeshift}}}}&lt;br /&gt;
* {{App|[[Unison]]|File synchronization tool that allows two replicas of a collection of files and directories to be stored on different hosts (or different disks on the same host), modified separately, and then brought up to date by propagating the changes in each replica to the other.|https://www.cis.upenn.edu/~bcpierce/unison/|{{Pkg|unison}}}}&lt;br /&gt;
&lt;br /&gt;
==== Archiving and compression tools ====&lt;br /&gt;
&lt;br /&gt;
For archiving and compression command-line tools, see [[アーカイブと圧縮]].&lt;br /&gt;
&lt;br /&gt;
===== Archive managers =====&lt;br /&gt;
&lt;br /&gt;
* {{App|360zip|A proprietary archiving tool.|https://yasuo.360.cn/|{{AUR|360zip}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Ark (software)|Ark]]|KDE デスクトップのアーカイブツール。|https://apps.kde.org/ark/|{{Pkg|ark}}}}&lt;br /&gt;
* {{App|Arqiver|Simple Qt archive manager based on libarchive.|https://github.com/tsujan/Arqiver|{{AUR|arqiver-git}}}}&lt;br /&gt;
* {{App|CoreArchiver|Simple file compressing/extracting utility based on Qt and libarchive-qt. Part of C-Suite.|https://cubocore.org/|{{AUR|corearchiver}}}}&lt;br /&gt;
* {{App|Deepin Archive Manager|Fast and lightweight application for creating and extracting archives.|https://github.com/linuxdeepin/deepin-compressor|{{Pkg|deepin-compressor}}}}&lt;br /&gt;
* {{App|Engrampa|[[MATE]] のアーカイブマネージャ。|https://github.com/mate-desktop/engrampa|{{Pkg|engrampa}}}}&lt;br /&gt;
* {{App|[[Wikipedia:GNOME Archive Manager|GNOME Archive Manager]]|GNOME のデフォルト圧縮ファイルマネージャ (previously File Roller).|https://wiki.gnome.org/Apps/FileRoller|{{Pkg|file-roller}}}}&lt;br /&gt;
* {{App|LXQt File Archiver|Simple and lightweight desktop-agnostic Qt file archiver.|https://github.com/lxqt/lxqt-archiver|{{Pkg|lxqt-archiver}}}}&lt;br /&gt;
* {{App|p7zip-gui|The GUI belonging to the p7zip software.|http://p7zip.sourceforge.net/|{{AUR|p7zip-gui}}}}&lt;br /&gt;
* {{App|[[Wikipedia:PeaZip|PeaZip]]|オープンソースのファイル・アーカイブマネージャ。|https://www.peazip.org/peazip-linux.html|GTK: {{AUR|peazip-gtk2-bin}}, Qt: {{AUR|peazip-qt-bin}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Xarchiver|Xarchiver]]|GTK で作られた軽量なデスクトップ非依存のアーカイブマネージャ。|https://github.com/ib/xarchiver|GTK 3: {{Pkg|xarchiver}}, GTK 2: {{Pkg|xarchiver-gtk2}}}}&lt;br /&gt;
&lt;br /&gt;
==== Comparison, diff, merge ====&lt;br /&gt;
&lt;br /&gt;
See also [[Wikipedia:Comparison of file comparison tools]].&lt;br /&gt;
&lt;br /&gt;
For managing &#039;&#039;pacnew&#039;&#039;/&#039;&#039;pacsave&#039;&#039; files, specialised tools exist. See [[Pacnew と Pacsave ファイル#.pac* ファイルの管理]].&lt;br /&gt;
&lt;br /&gt;
===== Console =====&lt;br /&gt;
&lt;br /&gt;
See {{man|1|diff}} from {{Pkg|diffutils}} and [[Core utilities#diff alternatives|its alternatives]].&lt;br /&gt;
&lt;br /&gt;
* {{App|colordiff|&#039;diff&#039; の Perl スクリプトラッパー。同じ出力にシンタックスハイライトを追加。|https://www.colordiff.org/|{{Pkg|colordiff}}}}&lt;br /&gt;
* {{App|diffr|A Rust utility to pretty-print diff with highlighting at word-level for ease of review.|https://github.com/mookid/diffr|{{aur|diffr}}}}&lt;br /&gt;
* {{App|ydiff|A Python wrapper to get highlighted diff output from stdin or VCS-tracked file/dirs, in either unfied or side-by-side view.|https://github.com/ymattw/ydiff|{{AUR|ydiff}}}}&lt;br /&gt;
* {{App|delta|A diff viewer written in Rust with syntax highlighting.|https://github.com/dandavison/delta|{{Pkg|git-delta}}}}&lt;br /&gt;
* {{App|diff-so-fancy|A diff output decorator. It does not calculate the diff, it only decorates it.|https://github.com/so-fancy/diff-so-fancy|{{Pkg|diff-so-fancy}}}}&lt;br /&gt;
&lt;br /&gt;
===== Graphical =====&lt;br /&gt;
&lt;br /&gt;
* {{App|DiffPDF|Compare the text or the visual appearance of each page in two PDF files.|https://gitlab.com/eang/diffpdf|{{Pkg|diffpdf}}}}&lt;br /&gt;
* {{App|Diffuse|Python で書かれた小さくてシンプルなテキストマージツール。|http://diffuse.sourceforge.net/|{{Pkg|diffuse}}}}&lt;br /&gt;
* {{App|KDiff3|KDE デスクトップのファイルとディレクトリの比較・マージツール。|https://apps.kde.org/kdiff3/|{{Pkg|kdiff3}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Kompare|Kompare]]|ソースファイルの差を回覧・マージするための GUI フロントエンドプログラム。様々な diff フォーマットをサポートし、表示する情報レベルをカスタマイズするための多くのオプションがある。|https://apps.kde.org/kompare/|{{Pkg|kompare}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Meld (software)|Meld]]|ビジュアル比較・マージツール。ファイル・ディレクトリ・プロジェクトのバージョンの比較が可能。|https://meldmerge.org/|{{Pkg|meld}}}}&lt;br /&gt;
* {{App|xxdiff|ファイルやディレクトリの差異を表示するグラフィカルブラウザ。|https://furius.ca/xxdiff/|{{AUR|xxdiff}}}}&lt;br /&gt;
&lt;br /&gt;
[[Vim]] と [[Emacs]] にはそれぞれ [[Vim#ファイルのマージ (vimdiff)|vimdiff]] と {{ic|ediff}} というマージ機能があります。&lt;br /&gt;
&lt;br /&gt;
==== バッチ処理リネームプログラム ====&lt;br /&gt;
&lt;br /&gt;
===== Console =====&lt;br /&gt;
&lt;br /&gt;
See {{man|1|rename}} from {{Pkg|util-linux}}.&lt;br /&gt;
&lt;br /&gt;
* {{App|edir|Rename, delete, and copy files and directories using your editor (enhanced vidir).|https://github.com/bulletmark/edir|{{AUR|edir}}}}&lt;br /&gt;
* {{App|f2|Cross-platform command-line tool for batch renaming files and directories quickly and safely, can also rename files based on audio tags.|https://github.com/ayoisaiah/f2|{{AUR|f2}}}}&lt;br /&gt;
* {{App|rename.pl|perl regex ベースのバッチリネーマー。|https://search.cpan.org/~pederst/rename/|{{Pkg|perl-rename}}}}&lt;br /&gt;
* {{App|vidir|Rename and delete files and directories using your editor.|https://linux.die.net/man/1/vidir|{{AUR|vidir}}}}&lt;br /&gt;
&lt;br /&gt;
===== Graphical =====&lt;br /&gt;
* {{App|Caja-Rename|Batch renaming extension for Caja.|https://tari.in/www/software/caja-rename|{{AUR|caja-rename}}}}&lt;br /&gt;
* {{App|CoreRenamer|Simple lightweight batch file renamer application. Part of C-Suite.|https://cubocore.org/|{{AUR|corerenamer}}}}&lt;br /&gt;
* {{App|[[Wikipedia:GPRename|GPRename]]|ファイルとディレクトリの名前を変える GTK バッチ処理プログラム。|http://gprename.sourceforge.net|{{Pkg|gprename}}}}&lt;br /&gt;
* {{App|[[Wikipedia:KRename|KRename]]|KDE デスクトップ向けのとてもパワフルなバッチ処理リネームプログラム。|https://apps.kde.org/krename/|{{Pkg|krename}}}}&lt;br /&gt;
* {{App|metamorphose2|wxPython ベースのバッチリネーマーで、正規表現や、メタデータによるマルチメディアファイルの名前変更などをサポートしています。|http://file-folder-ren.sourceforge.net|{{AUR|metamorphose2}}}}&lt;br /&gt;
* {{App|[[Thunar]] Bulk Rename|Change the name of multiple files at once using some criterion that applies to at least one of the files. Run with {{ic|thunar -B}}.|https://docs.xfce.org/xfce/thunar/bulk-renamer/start|{{Pkg|thunar}}}}&lt;br /&gt;
&lt;br /&gt;
==== ファイル検索 ====&lt;br /&gt;
&lt;br /&gt;
This section lists utilities for file searching based on filename, file path or metadata. For full-text searching, see the next section.&lt;br /&gt;
&lt;br /&gt;
See also [[Wikipedia:List of search engines#Desktop search engines]].&lt;br /&gt;
&lt;br /&gt;
===== Console =====&lt;br /&gt;
&lt;br /&gt;
See {{man|1|find}} from {{Pkg|findutils}} and [[Core utilities#find alternatives|its alternatives]].&lt;br /&gt;
&lt;br /&gt;
===== Graphical =====&lt;br /&gt;
&lt;br /&gt;
* {{App|Catfish|多目的のファイル検索ツール by Xfce, can be powered by find, locate and Zeitgeist.|https://launchpad.net/catfish-search|{{Pkg|catfish}}}}&lt;br /&gt;
* {{App|CoreHunt|Easy to use fast file searching tool with categorized search and search history. Part of C-Suite.|https://cubocore.org/|{{AUR|corehunt}}}}&lt;br /&gt;
* {{App|GNOME Search Tool|ファイルを検索する Gnome ユーティリティ, depends on [[GNOME Files]].|https://gitlab.gnome.org/GNOME/gnome-search-tool|{{Pkg|gnome-search-tool}}}}&lt;br /&gt;
* {{App|KFind|Search tool for KDE to find files by name, type or content. Has internal search and supports locate.|https://apps.kde.org/kfind/|{{Pkg|kfind}}}}&lt;br /&gt;
* {{App|MATE Search Tool|MATE utility to search for files.|https://github.com/mate-desktop/mate-utils|{{Pkg|mate-utils}}}}&lt;br /&gt;
* {{App|regexxer|Interactive search and replace tool featuring Perl-style regular expressions.|http://regexxer.sourceforge.net/|{{Pkg|regexxer}}}}&lt;br /&gt;
* {{App|Searchmonkey|正規表現が使えるパワフルな GUI 検索ユーティリティ。|https://sourceforge.net/projects/searchmonkey/|{{AUR|searchmonkey}}{{Broken package link|package not found}}}}&lt;br /&gt;
&lt;br /&gt;
====== File indexers ======&lt;br /&gt;
&lt;br /&gt;
These programs index your files to allow for quick searching.&lt;br /&gt;
&lt;br /&gt;
* {{App|Basenji|Volume indexing tool designed for easy and fast indexing of CD/DVD and other type of volume collections.|https://github.com/pulb/basenji|{{AUR|basenji}}}}&lt;br /&gt;
* {{App|fsearch|A fast file search utility for Unix-like systems based on GTK 3.|https://github.com/cboxdoerfer/fsearch|{{AUR|fsearch-git}}}}&lt;br /&gt;
&lt;br /&gt;
==== Full-text searching ====&lt;br /&gt;
&lt;br /&gt;
See {{man|1|grep}} from {{Pkg|grep}} and [[Core utilities#grep alternatives|its alternatives]], which provide non-indexed [[Wikipedia:Full-text search|full-text search]].&lt;br /&gt;
&lt;br /&gt;
===== Full-text indexers =====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Baloo]]|KDE のファイルインデックス作成・検索ソリューション, has a CLI and is used by [[KRunner]].|https://community.kde.org/Baloo|{{Pkg|baloo}}}}&lt;br /&gt;
* {{App|[[Wikipedia:DocFetcher|DocFetcher]]|Graphical Java デスクトップ検索アプリケーション。|http://docfetcher.sourceforge.net|{{AUR|docfetcher}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Recoll|Recoll]]|Xapian がバックエンドのフルテキスト検索ツール, has CLI and GUI.|https://lesbonscomptes.com/recoll/|{{Pkg|recoll}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Tracker (search software)|Tracker]]|オールインワンのインデックス作成・検索ツールとメタデータのデータベース, used by [[GNOME]] Documents, Music, Photos and Videos.|https://gnome.pages.gitlab.gnome.org/tracker/|{{Pkg|tracker}}, {{Pkg|tracker3}}}}&lt;br /&gt;
* {{App|[[Zeitgeist]]|Event aggregation framework for the user&#039;s activities and notifications (files opened, websites visited, conversations had, etc.), has several third-party front-ends.|https://launchpad.net/zeitgeist-project|{{Pkg|zeitgeist}}}}&lt;br /&gt;
&lt;br /&gt;
=== Development ===&lt;br /&gt;
&lt;br /&gt;
==== Code forges ====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[GitLab]]|Project management and code hosting application.|https://gitlab.com/gitlab-org/gitlab-foss|{{Pkg|gitlab}}}}&lt;br /&gt;
* {{App|[[Gitea]]|Painless self-hosted Git service. Community managed fork of Gogs.|https://gitea.io|{{Pkg|gitea}}}}&lt;br /&gt;
&lt;br /&gt;
===== Code forge clients =====&lt;br /&gt;
&lt;br /&gt;
* {{App|git-open|Open a repo website (GitHub, GitLab, Bitbucket) in your browser|https://github.com/paulirish/git-open|{{AUR|git-open}}}}&lt;br /&gt;
* {{App|github-cli|GitHub&#039;s official command line tool|https://github.com/cli/cli|{{Pkg|github-cli}}}}&lt;br /&gt;
* {{App|hub|Command line interface for GitHub|https://hub.github.com|{{Pkg|hub}}}}&lt;br /&gt;
* {{App|lab|A hub-like tool for GitLab|https://zaquestion.github.io/lab/|{{AUR|lab-bin}}}}&lt;br /&gt;
* {{App|snippet|A terminal based interface to create a new GitLab snippet|https://gitlab.com/zj/snippet|{{AUR|snippet}}}}&lt;br /&gt;
&lt;br /&gt;
==== バージョン管理システム ====&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Comparison of revision control software]] も参照してください。&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Bazaar]]|Distributed version control system that helps you track project history over time and to collaborate easily with others.|https://bazaar.canonical.com/|{{AUR|bzr}}}}&lt;br /&gt;
* {{App|[[CVS]]|Concurrent Versions System, a client-server revision control system.|http://cvs.nongnu.org/|{{Pkg|cvs}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Darcs|Darcs]]|Distributed revision control system that was designed to replace traditional, centralized source control systems such as CVS and Subversion.|http://darcs.net/|{{Pkg|darcs}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Fossil (software)|Fossil]]|Distributed VCS with bug tracking, wiki, forum, and technotes.|https://www.fossil-scm.org/|{{Pkg|fossil}}}}&lt;br /&gt;
* {{App|[[Git]]|Distributed revision control and source code management system with an emphasis on speed.|https://git-scm.com/|{{Pkg|git}}}}&lt;br /&gt;
* {{App|[[Mercurial]]|Distributed version control system written in Python and similar in many ways to Git.|https://www.mercurial-scm.org/|{{Pkg|mercurial}}}}&lt;br /&gt;
* {{App|[[Subversion]]|Full-featured centralized version control system originally designed to be a better CVS.|https://subversion.apache.org/|{{Pkg|subversion}}}}&lt;br /&gt;
&lt;br /&gt;
==== ビルド自動化 ====&lt;br /&gt;
&lt;br /&gt;
See also [[Wikipedia:List of build automation software]].&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:Apache Ant|Apache Ant]]|Java ライブラリとコマンドラインツール。相互に依存するターゲットや拡張ポイントにあわせてビルドファイルに書かれている手順を実行します。|https://ant.apache.org/|{{Pkg|ant}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Apache Maven|Apache Maven]]|Build automation tool used primarily for Java.|https://maven.apache.org/|{{Pkg|maven}}}}&lt;br /&gt;
* {{App|[[Wikipedia:CMake|CMake]]|ソフトウェアをビルド、テスト、パッケージ化するためのツール群。|https://cmake.org/|{{Pkg|cmake}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Make (software)|GNU make]]|プログラムのグループを管理するための、GNU make ユーティリティ。|https://www.gnu.org/software/make/|{{Pkg|make}} ({{Grp|base-devel}} の一部)}}&lt;br /&gt;
* {{App|[[Wikipedia:Meson (software)|Meson]]|Extremely fast and user friendly build system.|https://mesonbuild.com/|{{Pkg|meson}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Gradle|Gradle]]|JVM の強力なビルドシステム。|https://gradle.org/|{{Pkg|gradle}}}}&lt;br /&gt;
* {{App|Phing|あらゆる作業を自動化する PHP プログラム。|https://www.phing.info/|{{AUR|phing}}}}&lt;br /&gt;
&lt;br /&gt;
==== 統合開発環境 ====&lt;br /&gt;
&lt;br /&gt;
See also [[Wikipedia:Comparison of integrated development environments]].&lt;br /&gt;
&lt;br /&gt;
For PHP specific list, see [[PHP#Development tools]].&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Android Studio]]|The official Android development environment based on IntelliJ IDEA.|https://developer.android.com/studio/index.html|{{AUR|android-studio}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Anjuta|Anjuta]]|プロジェクト管理、アプリケーションウィザード、インタラクティブデバッガ、ソースエディタ、バージョンコントロールなど多数のツールを備えた多目的 IDE。|http://anjuta.org/|{{Pkg|anjuta}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Aptana#Aptana_Studio|Aptana Studio]]|ウェブ開発を対象にしている Eclipse ベースの IDE。HTML, CSS, Javascript, Ruby on Rails, PHP, Adobe AIR などをサポート。|http://www.aptana.com/|{{AUR|aptana-studio}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Bluefish (software)|Bluefish]]|Powerful editor targeted towards programmers and webdevelopers, with many options to write websites, scripts and programming code. It supports many programming and markup languages.|http://bluefish.openoffice.nl/|{{Pkg|bluefish}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Code::Blocks|Code::Blocks]]|C, C++ and Fortran IDE built to meet the most demanding needs of its users. It is designed to be very extensible and fully configurable.|https://codeblocks.org/|{{Pkg|codeblocks}}}}&lt;br /&gt;
* {{App|[[Wikipedia:JetBrains#CLion|CLion]]|A cross-platform IDE for C and C++.|https://www.jetbrains.com/clion/|{{AUR|clion}}}}&lt;br /&gt;
* {{App|[[Wikipedia:CodeLite|CodeLite]]|C++ で書かれた C/C++/PHP/Node.js のオープンソースなクロスプラットフォーム IDE。|https://codelite.org/|{{AUR|codelite}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Cloud9 IDE|Cloud9]]|ブラウザやクラウドで動く最新の IDE、どこでも・いつでもアプリケーションを実行・デバッグ・開発できます。|https://c9.io/|{{AUR|c9.core}}{{Broken package link|package not found}}}}&lt;br /&gt;
* {{App|[[Eclipse]]|IDE for Java, C/C++, PHP, Perl and Python with subversion support and task management.|https://www.eclipse.org/|Java EE: {{AUR|eclipse-jee}}, Java: {{AUR|eclipse-java}}, C/C++: {{AUR|eclipse-cpp}}, PHP: {{AUR|eclipse-php}}, JavaScript and Web: {{AUR|eclipse-javascript}}{{Broken package link|package not found}}, Rust: {{AUR|eclipse-rust}}{{Broken package link|package not found}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Eric (software)|Eric]]|PyQt5 によるフル機能の Python / Ruby IDE。|https://eric-ide.python-projects.org/|{{AUR|eric}}}}&lt;br /&gt;
* {{App|[[Gambas]]|Basic インタプリタをベースにオブジェクト指向の拡張を加えたフリーの開発環境。|http://gambas.sourceforge.net/en/main.html|{{Pkg|gambas3-ide}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Geany|Geany]]|Small and lightweight IDE with many supported many programming and markup languages including C, Java, PHP, HTML, Python, Perl, Pascal.|https://geany.org/|{{Pkg|geany}}}}&lt;br /&gt;
* {{App|[[Wikipedia:GNOME Builder|GNOME Builder]]|Tool to write and contribute to great GNOME-based applications.|https://wiki.gnome.org/Apps/Builder|{{Pkg|gnome-builder}}}}&lt;br /&gt;
* {{App|[[Wikipedia:KDevelop|KDevelop]]|機能豊富なプラグインを使うことができる C/C++ などのプログラミング言語の IDE。|https://www.kdevelop.org/|{{Pkg|kdevelop}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Komodo_Edit|Komodo Edit]]|フリーの、多言語エディタ。|https://www.activestate.com/products/komodo-edit/|{{AUR|komodo-edit}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Lazarus (IDE)|Lazarus]]|Delphi (Object Pascal) compatible IDE for Rapid Application Development. It has variety of components ready for use and a graphical form designer to easily create complex graphical user interfaces.|https://www.lazarus-ide.org/|{{Pkg|lazarus}}}}&lt;br /&gt;
* {{App|LiteIDE|シンプルな Go の IDE。|https://github.com/visualfc/liteide|{{Pkg|liteide}}}}&lt;br /&gt;
* {{App|[[Wikipedia:MPLAB|MPLAB]]|Microchip PIC と dsPIC 開発のための IDE。|https://www.microchip.com/mplabx|{{AUR|microchip-mplabx-bin}}}}&lt;br /&gt;
* {{App|[[Netbeans]]|Java, JavaScript, PHP, Python, Ruby, Groovy, C, C++, Scala, Clojure などの言語で開発するための統合開発環境 (IDE)。|https://netbeans.org/|{{Pkg|netbeans}}}}&lt;br /&gt;
* {{App|[[Wikipedia:PhpStorm|PhpStorm]]|JetBrains PhpStorm は PHP 向けの商用のクロスプラットフォーム IDE です。JetBrains の IntelliJ IDEA プラットフォームの上で動作し、providing an editor for PHP, HTML and JavaScript with PHP や JavaScript コードをオンザフライでコード解析したり、エラー補正や自動リファクタリングが行えるエディタを提供します。|https://www.jetbrains.com/phpstorm/|{{Aur|phpstorm}} {{Aur|phpstorm-eap}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Qt Creator|Qt Creator]]|Qt での開発に焦点をおいた軽量なクロスプラットフォームの C++ 統合開発環境。|https://www.qt.io/ide/|{{Pkg|qtcreator}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Eclipse_Theia|Theia]]|Eclipse Theia is a free and open-source IDE for desktop and web applications. It is implemented in TypeScript, is based on Visual Studio Code, and emphasizes extensibility. It can be run as a web or a desktop application.|https://theia-ide.org/|{{AUR|theia-electron}}}}&lt;br /&gt;
* {{App|[[Visual Studio Code]]|Visual Studio Code is a cross-platform, free and open-source text editor developed by Microsoft, written in JavaScript and TypeScript. It supports a variety of languages thanks to its extensions.|https://code.visualstudio.com/|{{Pkg|code}} {{AUR|visual-studio-code-bin}}}}&lt;br /&gt;
* {{App|VSCodium|Free/Libre Open Source Software Binaries of VSCode.|https://vscodium.com/|{{AUR|vscodium-bin}}}}&lt;br /&gt;
&lt;br /&gt;
===== Java IDEs =====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:BlueJ|BlueJ]]|教育や初心者が主に使うことを目的とした完全な機能を備えた Java IDE。|https://bluej.org/|{{AUR|bluej}}}}&lt;br /&gt;
* {{App|[[Wikipedia:IntelliJ IDEA|IntelliJ IDEA]]|高度なリファクタリング機能を持つ Java, Groovy などのプログラミング言語向けの IDE。|https://www.jetbrains.com/idea/|{{Pkg|intellij-idea-community-edition}}}}&lt;br /&gt;
&lt;br /&gt;
===== Python IDEs =====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:Ninja-IDE|Ninja-IDE]]|IDE for Python development.|http://ninja-ide.org/|{{AUR|ninja-ide}}}}&lt;br /&gt;
* {{App|[[Wikipedia:PyCharm|PyCharm]]|Python でのプログラミングに使われる IDE。コード解析、デバッグ、ユニットテスト、バージョンコントロール、Django によるウェブ開発をサポート。|https://www.jetbrains.com/pycharm/|community edition: {{Pkg|pycharm-community-edition}}, professional edition: {{AUR|pycharm-professional}}, edu edition: {{AUR|pycharm-edu}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Spyder (software)|Spyder]]|MATLAB のような機能を提供する科学用 Python 開発環境。|https://github.com/spyder-ide/spyder|{{Pkg|spyder}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Thonny|Thonny]]|初心者向けの Python IDE。|https://thonny.org/|{{AUR|thonny}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Wing IDE|WingIDE]]|Proprietary Python development environment. It is fully featured and meant for professional use.|https://wingware.com/|{{Aur|wingide}}}}&lt;br /&gt;
&lt;br /&gt;
===== Rust IDEs =====&lt;br /&gt;
&lt;br /&gt;
See also: [https://www.rust-lang.org/tools]&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:IntelliJ IDEA|IntelliJ IDEA]]|IDE for Java, Groovy and other programming languages with advanced refactoring features.|https://www.jetbrains.com/idea/|{{Pkg|intellij-idea-community-edition}}}} Install the [https://plugins.jetbrains.com/plugin/8182-rust rust plugin].&lt;br /&gt;
* {{App|[[Visual Studio Code]]|Visual Studio Code is a cross-platform, free and open-source text editor developed by Microsoft, written in JavaScript and TypeScript. It supports a variety of languages thanks to its extensions.|https://code.visualstudio.com/|{{Pkg|code}} {{AUR|visual-studio-code-bin}}}} Install the [https://marketplace.visualstudio.com/items?itemName=rust-lang.rust rust extension].&lt;br /&gt;
* {{App|VSCodium|Free/Libre Open Source Software Binaries of VSCode.|https://vscodium.com/|{{AUR|vscodium-bin}}}}&lt;br /&gt;
&lt;br /&gt;
===== Educational IDEs =====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:Etoys (programming language)|Etoys]]|Educational tool and media-rich authoring environment for teaching children.|http://squeakland.org/|{{AUR|etoys}}{{Broken package link|package not found}}}}&lt;br /&gt;
* {{App|[[Wikipedia:KTurtle|KTurtle]]|Educational programming environment that aims to make learning how to program as easily as possible. Part of {{Grp|kde-education}}.|https://apps.kde.org/kturtle/|{{Pkg|kturtle}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Processing (programming language)|Processing]]|Playground for teaching non-programmers the fundamentals of computer programming in a visual context.|https://processing.org/|{{AUR|processing}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Scratch (programming language)|Scratch]]|インタラクティブなプロジェクトやシンプルなスプライトベースのゲームを作成できる、教育とエンターテイメント用の programming system and content development tool。[[Wikipedia:ja:イベント駆動型プログラミング|イベント駆動型プログラミング]]のエントリのように初心者 (子供など) を主に対象としています。|https://scratch.mit.edu/|{{Pkg|scratch}}}}&lt;br /&gt;
&lt;br /&gt;
==== Debuggers ====&lt;br /&gt;
&lt;br /&gt;
* {{App|Accerciser|Interactive Python accessibility explorer. It uses the AT-SPI library to inspect, examine, and interact with widgets, allowing you to check if an application is providing correct information to assistive technologies and automated testing frameworks.|https://wiki.gnome.org/Apps/Accerciser|{{Pkg|accerciser}}}}&lt;br /&gt;
* {{App|Bustle|Draws sequence diagrams of D-Bus activity. It shows signal emissions, method calls and their corresponding returns, with time stamps for each individual event and the duration of each method call.|https://www.freedesktop.org/wiki/Software/Bustle/|{{AUR|bustle-git}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Data Display Debugger|Data Display Debugger]]|Graphical front-end for command-line debuggers such as GDB.|https://www.gnu.org/software/ddd/|{{AUR|ddd}}}}&lt;br /&gt;
* {{App|Desed|TUI-based debugger for sed. Features variable and regex preview, setting breakpoints and stepping back and forth.|https://github.com/SoptikHa2/desed|{{AUR|desed}}}}&lt;br /&gt;
* {{App|D-Feet|Easy to use D-Bus debugger to inspect D-Bus interfaces of running programs and invoke methods on those interfaces.|https://wiki.gnome.org/Apps/DFeet|{{Pkg|d-feet}}}}&lt;br /&gt;
* {{App|GammaRay|Qt-application inspection and manipulation tool.|https://www.kdab.com/development-resources/qt-tools/gammaray/|{{Pkg|gammaray}}}}&lt;br /&gt;
* {{App|KCachegrind|Profile data visualization tool, used to determine the most time consuming execution parts of program.|https://apps.kde.org/kcachegrind/|KDE: {{Pkg|kcachegrind}}, Qt: {{Pkg|qcachegrind}}}}&lt;br /&gt;
* {{App|[[Wikipedia:KDbg|KDbg]]|Graphical user interface to GDB, the GNU debugger. It provides an intuitive interface for setting breakpoints, inspecting variables, and stepping through code.|http://kdbg.org/|{{Pkg|kdbg}}}}&lt;br /&gt;
* {{App|Massif-Visualizer|Visualizer for Valgrind Massif data files.|https://apps.kde.org/massif-visualizer/|{{Pkg|massif-visualizer}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Nemiver|Nemiver]]|Easy to use standalone C/C++ debugger (GDB front-end) that integrates well in the GNOME environment.|https://wiki.gnome.org/Apps/Nemiver|{{Pkg|nemiver}}}}&lt;br /&gt;
* {{App|Qt QDbusViewer|Tool to introspect D-Bus objects and messages.|https://doc.qt.io/qt-5/qdbusviewer.html|{{Pkg|qt5-tools}}}}&lt;br /&gt;
* {{App|scanmem|Debugging utility designed to isolate the address of an arbitrary variable in an executing process.|https://github.com/scanmem/scanmem|CLI: {{Pkg|scanmem}}, GUI: {{Pkg|gameconqueror}}}}&lt;br /&gt;
* {{App|Sysprof|Profiling tool that helps in finding the functions in which a program uses most of its time.|https://wiki.gnome.org/Apps/Sysprof|{{Pkg|sysprof}}}}&lt;br /&gt;
&lt;br /&gt;
==== Lexing and parsing ====&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Lex (software)|Lex]] and [[Wikipedia:Yacc|Yacc]] are part of POSIX.&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:Flex (lexical analyser generator)|flex]]|A tool for generating text-scanning programs, alternative to Lex.|https://github.com/westes/flex|{{Pkg|flex}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Berkeley Yacc|Berkeley Yacc]]|Berkeley reimplementation of the Unix parser generator Yacc.|https://invisible-island.net/byacc/|{{Pkg|byacc}}}}&lt;br /&gt;
* {{App|[[Wikipedia:GNU bison|GNU Bison]]|The GNU general-purpose parser generator, alternative to &#039;&#039;byacc&#039;&#039;.|https://www.gnu.org/software/bison/|{{Pkg|bison}}}}&lt;br /&gt;
&lt;br /&gt;
And then there are also:&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:ANTLR|ANTLR]]|Parser generator, written in Java, for parsing structured text or binary files.|https://www.antlr.org/|{{Pkg|antlr4}}}}&lt;br /&gt;
* {{App|LPeg|Pattern-matching library, based on PEGs, for Lua.|http://www.inf.puc-rio.br/~roberto/lpeg/|{{Pkg|lua-lpeg}}, {{Pkg|lua52-lpeg}}, {{Pkg|lua51-lpeg}}}}&lt;br /&gt;
* {{App|peg/leg|Recursive-descent parser generators for C.|https://www.piumarta.com/software/peg/|{{Pkg|peg}}}}&lt;br /&gt;
* {{App|Ragel|Compiles finite state machines from regular languages into executable C, C++, Objective-C, or D code.|https://www.colm.net/open-source/ragel/|{{Pkg|ragel}}}}&lt;br /&gt;
&lt;br /&gt;
==== GUI builders ====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:FLUID|FLUID]]|FLTK GUI designer.|https://www.fltk.org/|{{Pkg|fltk}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Glade Interface Designer|Glade]]|Create or open user interface designs for GTK applications.|https://glade.gnome.org/|{{Pkg|glade}}}}&lt;br /&gt;
* {{App|KUIViewer|Quick viewer for Qt Designer UI File.|https://apps.kde.org/kuiviewer/|{{Pkg|kde-dev-utils}}}}&lt;br /&gt;
* {{App|Qt Designer|Tool for designing and building graphical user interfaces (GUIs) with Qt Widgets.|https://doc.qt.io/qt-5/qtdesigner-manual.html|{{Pkg|qt5-tools}}}}&lt;br /&gt;
&lt;br /&gt;
==== Hex editors ====&lt;br /&gt;
&lt;br /&gt;
See also [[Wikipedia:Comparison of hex editors]].&lt;br /&gt;
&lt;br /&gt;
* {{App|Bless|High quality, full featured hex editor.|https://web.archive.org/web/20170503150524/http://home.gna.org/bless/|{{Pkg|bless}}}}&lt;br /&gt;
* {{App|GHex|Hex editor for GNOME, which allows the user to load data from any file, view and edit it in either hex or ascii.|https://wiki.gnome.org/Apps/Ghex|{{Pkg|ghex}}}}&lt;br /&gt;
* {{App|hyx|Minimalistic but powerful console hex editor.|https://yx7.cc/code/|{{AUR|hyx}}}}&lt;br /&gt;
* {{App|Reverse Engineer&#039;s Hex Editor|Hex editor with features for analyzing and annotating binary file formats|https://github.com/solemnwarning/rehex|{{AUR|rehex}}}}&lt;br /&gt;
* {{App|Okteta|KDE hex editor for viewing and editing the raw data of files.|https://apps.kde.org/okteta/|{{Pkg|okteta}}}}&lt;br /&gt;
&lt;br /&gt;
==== JSON tools ====&lt;br /&gt;
&lt;br /&gt;
* {{App|gron|gron transforms JSON into discrete assignments to make it easier to grep.|https://github.com/tomnomnom/gron|{{AUR|gron-bin}}}}&lt;br /&gt;
* {{App|jid|JSON incremental digger|https://github.com/simeji/jid|{{AUR|jid}}}}&lt;br /&gt;
* {{App|jo|A command to create JSON.|https://github.com/jpmens/jo|{{AUR|jo-git}}}}&lt;br /&gt;
* {{App|jq|Command-line JSON processor|https://stedolan.github.io/jq/|{{Pkg|jq}}}}&lt;br /&gt;
* {{App|jshon|A JSON parser for the shell.|http://kmkeen.com/jshon/|{{Pkg|jshon}}}}&lt;br /&gt;
* the [[Elvish]] shell has built-in support for JSON&lt;br /&gt;
&lt;br /&gt;
==== Literate programming ====&lt;br /&gt;
&lt;br /&gt;
See also [[Wikipedia:Literate programming]].&lt;br /&gt;
&lt;br /&gt;
* {{App|Noweb|A Simple, Extensible Tool for Literate Programming build against ICON libs and texlive|https://www.cs.tufts.edu/~nr/noweb/|{{AUR|noweb}}}}&lt;br /&gt;
* {{App|nuweb|A Simple Literate Programming Tool|http://nuweb.sourceforge.net/|{{AUR|nuweb}}}}&lt;br /&gt;
&lt;br /&gt;
==== UML modelers ====&lt;br /&gt;
&lt;br /&gt;
See also [[Wikipedia:List of Unified Modeling Language tools]].&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:ArgoUML|ArgoUML]]|UML modeling tool with support for all standard UML 1.4 diagrams.|http://argouml.tigris.org/|{{AUR|argouml}}}}&lt;br /&gt;
* {{App|[[Eclipse]] Modeling Tools|Tools and runtimes for building model-based applications.|https://www.eclipse.org/|{{AUR|eclipse-modeling-tools}}}}&lt;br /&gt;
* {{App|Gaphor|Simple modeling tool for UML.|https://github.com/gaphor/gaphor|{{AUR|python-gaphor}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Modelio|Modelio]]|Modeling environment supporting the main standards: UML, BPMN, MDA, SysML.|https://www.modelio.org/|{{AUR|modelio-bin}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Papyrus (software)|Papyrus]]|Model-based engineering tool based on Eclipse.|https://www.eclipse.org/papyrus/|{{AUR|papyrus}}}}&lt;br /&gt;
* {{App|[[Wikipedia:PlantUML|PlantUML]]|Tool to create UML diagrams from a plain text language.|https://plantuml.com|{{Pkg|plantuml}}}}&lt;br /&gt;
* {{App|PlantUML QEditor|PlantUML editor written in Qt.|https://github.com/borco/plantumlqeditor|{{AUR|plantumlqeditor-git}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Umbrello UML Modeller|Umbrello]]|Unified Modelling Language (UML) diagram program based on KDE Technology.|https://umbrello.kde.org/|{{Pkg|umbrello}}}}&lt;br /&gt;
* {{App|[[Wikipedia:UML Designer|UML Designer]]|Graphical tool based on Eclipse to edit and visualize UML models.|https://www.umldesigner.org/|{{AUR|umldesigner}}}}&lt;br /&gt;
* {{App|[[Wikipedia:UMLet|UMLet]]|UML tool with a simple user interface: draw UML diagrams fast, build sequence and activity diagrams from plain text, export diagrams to eps, pdf, jpg, svg, and clipboard, share diagrams using Eclipse, and create new, custom UML elements.|https://umlet.com/|{{AUR|umlet}}}}&lt;br /&gt;
* {{App|UML/INTERLIS-editor|Facilitate the application of the model driven approach to a greater number of users.|http://www.umleditor.org/|{{AUR|umleditor}}}}&lt;br /&gt;
* {{App|Violet|Very easy to learn and use UML editor that draws nice-looking diagrams.|https://sourceforge.net/projects/violet/|{{AUR|violetumleditor}}}}&lt;br /&gt;
&lt;br /&gt;
==== API documentation browsers ====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:GNOME Devhelp|Devhelp]]|Developer tool for browsing and searching API documentation.|https://wiki.gnome.org/Apps/Devhelp|{{Pkg|devhelp}}}}&lt;br /&gt;
* {{App|Doc Browser|API documentation browser with support for DevDocs and Hoogle.|https://github.com/qwfy/doc-browser|{{AUR|doc-browser-git}}}}&lt;br /&gt;
* {{App|Qt Assistant|Tool for viewing on-line documentation in Qt help file format.|https://doc.qt.io/qt-5/qtassistant-index.html|{{Pkg|qt5-tools}}}}&lt;br /&gt;
* {{App|quickDocs|Fast developer docs reader for reading Valadoc and DevDocs.|https://github.com/mdh34/quickDocs|{{AUR|quickdocs}}}}&lt;br /&gt;
* {{App|Zeal|Offline API documentation browser for software developers.|https://zealdocs.org/|{{AUR|zeal}}}}&lt;br /&gt;
&lt;br /&gt;
==== 課題追跡システム ====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Bugzilla]]|Mozilla によるバグトラッカー。|https://www.bugzilla.org|{{Pkg|bugzilla}}}}&lt;br /&gt;
* {{App|[[Flyspray]]|PHP で書かれた軽量なウェブベースのバグ追跡システム|https://www.flyspray.org/|{{Pkg|flyspray}}}}&lt;br /&gt;
* {{App|[[MantisBT]]|ウェブベースの課題追跡システム|https://www.mantisbt.org/|{{AUR|mantisbt}}}}&lt;br /&gt;
* {{App|[[Redmine]]|柔軟なプロジェクト管理のためのウェブアプリケーション。Ruby on Rails を使用して書かれており、クロスプラットフォームおよびクロスデータベース対応。|https://www.redmine.org|{{Pkg|redmine}}}}&lt;br /&gt;
* {{App|[[Request Tracker]] (RT)|オープンソースの代表的な課題追跡システム。|https://bestpractical.com/rt/|{{AUR|rt}}{{Broken package link|package not found}}}}&lt;br /&gt;
* {{App|[[Trac]]|Apache と Subversion を使用する統合 SCM &amp;amp; プロジェクト管理システム。|https://trac.edgewall.org/|{{AUR|trac}}}}&lt;br /&gt;
&lt;br /&gt;
[[:en:Git server#Advanced web applications]] を参照。&lt;br /&gt;
&lt;br /&gt;
==== コードレビュー ====&lt;br /&gt;
&lt;br /&gt;
* {{App|Gerrit|Git バージョン管理システム上に構築されたウェブベースのコードレビュー ツール|https://www.gerritcodereview.com/|{{AUR|gerrit}}}}&lt;br /&gt;
* [[GitLab]] もコードレビューをサポートしています。&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:List of tools for code review]] も参照してください。&lt;br /&gt;
&lt;br /&gt;
==== ゲーム開発 ====&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:List of game engines]] も参照してください。&lt;br /&gt;
&lt;br /&gt;
* {{App|GDevelop|プログラミングスキルが不要で、誰でも使用できるゲーム作成ツール。|https://gdevelop-app.com/|{{AUR|gdevelop}}}}&lt;br /&gt;
* {{App|[[:en:Godot]]|高度で機能満載のマルチプラットフォーム対応の 2D および 3D ゲームエンジン。Godot の独自のアプローチを使用して、簡単にゲームを作成できます。|https://godotengine.org/|{{Pkg|godot}}}}&lt;br /&gt;
* {{App|LibreSprite|アニメーションスプライトエディタおよびピクセルアートツールで、ビデオゲーム用の 2D アニメーションを作成できます。|https://github.com/LibreSprite/LibreSprite|{{AUR|libresprite}}}}&lt;br /&gt;
* {{App|Pixelorama|Orama Interactive によって Godot Engine と GDScript を使用して作成された、アニメーション対応の 2D スプライトエディタ。|https://www.orama-interactive.com/pixelorama{{Dead link|2021|05|17|status=404}}|{{AUR|pixelorama-bin}}}}&lt;br /&gt;
* {{App|Tiled|強力なタイルマップ編集機能を備えた汎用の 2D レベルエディタ。使いやすさを重視して設計されており、多くのタイプのゲームに適しています。|https://www.mapeditor.org/|{{Pkg|tiled}}}}&lt;br /&gt;
* {{App|[[Unity3D|Unity]]|Unity は、マルチプラットフォームの 3D および 2D ゲームを作成するための柔軟で強力な開発プラットフォームです。プロプライエタリですが、特定の使用例には無料バージョンが利用可能です（詳細は[https://store.unity.com/compare-plans こちら]をご覧ください）。|https://unity3d.com/unity|{{AUR|unity-editor}}}}&lt;br /&gt;
&lt;br /&gt;
==== Repository managers ====&lt;br /&gt;
&lt;br /&gt;
{{Style|Redirects to company blogs should not be here.}}&lt;br /&gt;
&lt;br /&gt;
* {{App|Nexus 2|Nexus 2 Repository Manager (OSS)|https://www.sonatype.com/nexus-repository-oss|{{AUR|nexus}}}}&lt;br /&gt;
* {{App|Nexus 3|Nexus 3 Repository OSS|https://www.sonatype.com/nexus-repository-oss|{{AUR|nexus-oss}}}}&lt;br /&gt;
* {{App|Artifactory|Artifactory is an advanced Binary Repository Manager for use by build tools, dependency management tools and build servers|https://bintray.com/jfrog/product/JFrog-Artifactory-Oss/view|{{AUR|artifactory-oss}}}}&lt;br /&gt;
&lt;br /&gt;
=== Text input ===&lt;br /&gt;
&lt;br /&gt;
==== Character selectors ====&lt;br /&gt;
&lt;br /&gt;
* {{App|GNOME Characters|Character map application for GNOME.|https://gitlab.gnome.org/GNOME/gnome-characters|{{Pkg|gnome-characters}}}}&lt;br /&gt;
* {{App|[[Wikipedia:GNOME Character Map|gucharmap]]|GTK 3 character selector for GNOME.|https://wiki.gnome.org/Apps/Gucharmap|{{pkg|gucharmap}}}}&lt;br /&gt;
* {{App|KCharSelect|Tool to select special characters from all installed fonts and copy them into the clipboard. Part of {{Grp|kde-utilities}}.|https://apps.kde.org/kcharselect/|{{Pkg|kcharselect}}}}&lt;br /&gt;
&lt;br /&gt;
==== スクリーンキーボード ====&lt;br /&gt;
&lt;br /&gt;
* {{App|CellWriter|Grid-entry handwriting recognition input panel.|https://github.com/risujin/cellwriter|{{AUR|cellwriter}}}}&lt;br /&gt;
* {{App|CoreKeyboard|Simple X11 based Qt virtual keyboard with word suggestions. Part of C-Suite.|https://cubocore.org/|{{AUR|corekeyboard}}}}&lt;br /&gt;
* {{App|eekboard|Easy to use virtual keyboard toolkit.|https://github.com/ueno/eekboard|{{AUR|eekboard}}}}&lt;br /&gt;
* {{App|Florence|Extensible scalable on-screen virtual keyboard for GNOME that stays out of your way when not needed.|https://sourceforge.net/projects/florence/|{{AUR|florence}}}}&lt;br /&gt;
* {{App|Onboard|Onscreen keyboard useful for tablet PC users and for mobility impaired users.|https://launchpad.net/onboard|{{Pkg|onboard}}}}&lt;br /&gt;
* {{App|qtvkbd|Virtual keyboard written in Qt, a fork of kvkbd.|https://github.com/Alexander-r/qtvkbd|{{AUR|qtvkbd}}}}&lt;br /&gt;
* {{App|QVKbd|Virtual keyboard written in Qt.|https://github.com/KivApple/qvkbd|{{Pkg|qvkbd}}}}&lt;br /&gt;
* {{App|Squeekboard|GTK 3 virtual keyboard for [[Wayland]], written in Rust/C.|https://source.puri.sm/Librem5/squeekboard|{{AUR|squeekboard}}}}&lt;br /&gt;
* {{App|theShell On Screen Keyboard|Touchscreen keyboard for theShell.|https://github.com/vicr123/ts-kbd|{{AUR|ts-kbd}}}}&lt;br /&gt;
* {{App|xvkbd|Virtual keyboard for X window system.|http://t-sato.in.coocan.jp/xvkbd/|{{AUR|xvkbd}}}}&lt;br /&gt;
&lt;br /&gt;
==== キーボードレイアウトの切り替え ====&lt;br /&gt;
&lt;br /&gt;
* {{App|fbxkb|NETWM 互換のキーボードインジケータ・スイッチャー。システム領域にある現在のキーボードのフラグを表示し、他のキーボードに切り替えることが可能です。|http://fbxkb.sourceforge.net/|{{AUR|fbxkb}}}}&lt;br /&gt;
* {{App|xxkb|軽量なキーボードレイアウトインジケータ・スイッチャー。|https://sourceforge.net/projects/xxkb/|{{Pkg|xxkb}}}}&lt;br /&gt;
* {{App|gxkb|X11 keyboard layout indicator and switcher.|https://github.com/zen-tools/gxkb|{{Pkg|gxkb}}}}&lt;br /&gt;
* {{App|qxkb|Qt で書かれているキーボード切り替えアプリケーション。|https://github.com/disels/qxkb|{{AUR|qxkb}}}}&lt;br /&gt;
* {{App|[[Wikipedia:X Neural Switcher|X Neural Switcher]]|テキストアナライザ。入力の言語を検出して必要に応じてキーボードレイアウトを修正します。|https://xneur.ru/|{{AUR|gxneur}} (GUI)}}&lt;br /&gt;
&lt;br /&gt;
==== Keybinding managers ====&lt;br /&gt;
&lt;br /&gt;
See [[キーボードショートカット#Xorg]].&lt;br /&gt;
&lt;br /&gt;
==== インプットメソッド ====&lt;br /&gt;
&lt;br /&gt;
See the main article: [[インプットメソッド]].&lt;br /&gt;
&lt;br /&gt;
=== Disks ===&lt;br /&gt;
&lt;br /&gt;
==== パーティション分割ツール ====&lt;br /&gt;
&lt;br /&gt;
See [[パーティショニング#パーティショニングツール]].&lt;br /&gt;
&lt;br /&gt;
==== Formatting tools ====&lt;br /&gt;
&lt;br /&gt;
See [[ファイルシステム#ファイルシステムのタイプ]].&lt;br /&gt;
&lt;br /&gt;
==== Cloning tools ====&lt;br /&gt;
&lt;br /&gt;
See [[ディスクのクローン#ディスククローンソフトウェア]].&lt;br /&gt;
&lt;br /&gt;
==== マウントツール ====&lt;br /&gt;
&lt;br /&gt;
See also [[udisks#Mount helpers]].&lt;br /&gt;
&lt;br /&gt;
* {{App|9mount|9p ファイルシステムをマウント。|http://sqweek.net/code/9mount/|{{AUR|9mount}}}}&lt;br /&gt;
* {{App|cryptmount|暗号化されたファイルシステムを通常ユーザーでマウント。|https://sourceforge.net/projects/cryptmount/|{{AUR|cryptmount}}}}&lt;br /&gt;
* {{App|KDiskFree|Displays information about hard disks and other storage devices. It also allows to mount and unmount drives and view them in a file manager.|https://apps.kde.org/kdf/|{{Pkg|kdf}}}}&lt;br /&gt;
* {{App|ldm|&#039;&#039;udev&#039;&#039; を使ってドライブを自動的にマウントする軽量なデーモン。|https://github.com/LemonBoy/ldm|{{AUR|ldm}}}}&lt;br /&gt;
* {{App|pmount|通常ユーザーで&#039;&#039;ソース&#039;&#039;を自動的に作成する {{ic|/media/&#039;&#039;source_name&#039;&#039;}} にマウント。|[[Debian:pmount]]|{{AUR|pmount}}}}&lt;br /&gt;
* {{App|pmount-safe-removal|安全に取り除けるように通常ユーザーでリムーバブルデバイスをマウント。|https://mywaytoarch.tumblr.com/post/13111098534/pmount-safe-removal-of-usb-device|{{AUR|pmount-safe-removal}}}}&lt;br /&gt;
* {{App|udevil|通常ユーザーでリムーバブルデバイスをマウント。デバイス情報を表示して、デバイスの変更を監視。&#039;&#039;udev&#039;&#039; と glib にだけ依存。|https://ignorantguru.github.io/udevil|{{AUR|udevil}}}}&lt;br /&gt;
* {{App|ws|Windows ネットワーク共有をマウント ([[Wikipedia:Server Message Block|CIFS]] と [[Wikipedia:Virtual file system|VFS]])。|https://sourceforge.net/projects/winshares/|{{AUR|ws}}}}&lt;br /&gt;
* {{App|zulucrypt|暗号化ボリュームを作成・管理・マウントする cryptsetup の GUI フロントエンド。[[EncFS]] もサポート。|https://mhogomchungu.github.io/zuluCrypt/|{{AUR|zulucrypt}}}}&lt;br /&gt;
&lt;br /&gt;
==== ディスク使用量表示プログラム ====&lt;br /&gt;
&lt;br /&gt;
===== Console =====&lt;br /&gt;
&lt;br /&gt;
* {{App|duc|ディスク使用量を調査するためのライブラリとツールスイート。|https://duc.zevv.nl/|{{AUR|duc}}}}&lt;br /&gt;
* {{App|gdu|Disk usage analyzer with console interface written in Go.|https://github.com/Dundee/gdu|{{AUR|gdu}}}}&lt;br /&gt;
* {{App|gt5|差分が表示できる &amp;quot;du-browser&amp;quot;。|http://gt5.sourceforge.net|{{AUR|gt5}}}}&lt;br /&gt;
* {{App|ncdu|シンプルな ncurses ディスク使用量アナライザ。|https://dev.yorhel.nl/ncdu|{{Pkg|ncdu}}}}&lt;br /&gt;
&lt;br /&gt;
===== Graphical =====&lt;br /&gt;
* {{App|[[Wikipedia:Filelight|Filelight]]|コンピュータのディスク使用量を、リング状のマップに視覚化するディスク使用量アナライザ。|https://apps.kde.org/filelight/|{{Pkg|filelight}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Disk Usage Analyzer|GNOME Disk Usage Analyzer]]|[[GNOME]] デスクトップ用のディスク使用量アナライザ to check folder sizes and available disk space.|https://wiki.gnome.org/Apps/DiskUsageAnalyzer|{{Pkg|baobab}}}}&lt;br /&gt;
* {{App|Graphical Disk Map|ファイルやディレクトリサイズにあわせて長方形を表示するディスク使用量アナライザ。|http://gdmap.sourceforge.net/|{{Pkg|gdmap}}}}&lt;br /&gt;
* {{App|fsview (part of Konqueror)|KDE based disk usage analyzer that draws a map of rectangles sized according to file or dir sizes.|https://docs.kde.org/trunk5/en/konqueror/konqueror/view-extensions.html|{{Pkg|konqueror}}}}&lt;br /&gt;
* {{App|MATE Disk Usage Analyzer|Disk usage analyzing tool for MATE Desktop.|https://github.com/mate-desktop/mate-utils|{{Pkg|mate-utils}}}}&lt;br /&gt;
* {{App|qdirstat|Qt-based directory statistics (KDirStat/K4DirStat without any KDE - from the original KDirStat author).|https://github.com/shundhammer/qdirstat|{{AUR|qdirstat}}}}&lt;br /&gt;
&lt;br /&gt;
==== Disk health status ====&lt;br /&gt;
&lt;br /&gt;
See [[S.M.A.R.T.#GUI applications]].&lt;br /&gt;
&lt;br /&gt;
==== File recovery tools ====&lt;br /&gt;
&lt;br /&gt;
See [[ファイルリカバリ#List of utilities]].&lt;br /&gt;
&lt;br /&gt;
==== Disk cleaning ====&lt;br /&gt;
&lt;br /&gt;
===== Console =====&lt;br /&gt;
&lt;br /&gt;
* {{App|duff|A command-line utility for quickly finding duplicates in a given set of files.|https://github.com/elmindreda/duff|{{AUR|duff}}}}&lt;br /&gt;
* {{App|fclones|Very fast duplicate file Finder written in rust.|https://github.com/pkolaczk/fclones|{{AUR|fclones}}}}, {{AUR|fclones-git}}}}&lt;br /&gt;
* {{App|[[Wikipedia:fdupes|fdupes]]|Program for identifying or deleting duplicate files residing within specified directories.|https://github.com/adrianlopezroche/fdupes|{{Pkg|fdupes}}}}&lt;br /&gt;
* {{App|jdupes|Identify and take actions upon duplicate files.|https://github.com/jbruchon/jdupes|{{AUR|jdupes}}}}&lt;br /&gt;
* {{App|rdfind|Command line tool that finds duplicate files. It compares files based on their content.|https://github.com/pauldreik/rdfind|{{AUR|rdfind}}}}&lt;br /&gt;
* {{App|rmlint|重複するファイルを素早く見つけ出すツール (任意で削除も可能)。|https://github.com/sahib/rmlint|{{Pkg|rmlint}}}}&lt;br /&gt;
&lt;br /&gt;
===== Graphical =====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:BleachBit|BleachBit]]|ディスク容量を開けてプライバシーを守ります。キャッシュやクッキー、インターネット履歴、一時ファイル、ログなどを消去。|https://www.bleachbit.org/|{{Pkg|bleachbit}}}}&lt;br /&gt;
* {{App|dupeGuru|GUI tool to find duplicate files in a system.|https://dupeguru.voltaicideas.net/|{{AUR|dupeguru}}}}&lt;br /&gt;
* {{App|FSlint|A utility to find and clean various forms of lint on a filesystem.|https://www.pixelbeat.org/fslint/|{{AUR|fslint}}}}&lt;br /&gt;
* {{App|GConf Cleaner|gconf データベースに居座っている不必要な gconf キーを消去。|https://code.google.com/archive/p/gconf-cleaner/|{{AUR|gconf-cleaner}}}}&lt;br /&gt;
* {{App|Shredder|Graphical user interface for rmlint.|https://github.com/sahib/rmlint|{{Pkg|rmlint-shredder}}}}&lt;br /&gt;
* {{App|Sweeper|System cleaning utility for KDE.|https://apps.kde.org/sweeper/|{{Pkg|sweeper}}}}&lt;br /&gt;
&lt;br /&gt;
==== Disk image writing ====&lt;br /&gt;
&lt;br /&gt;
See also [[Wikipedia:List of tools to create Live USB systems]].&lt;br /&gt;
&lt;br /&gt;
{{Warning|Some disk image writing tools are known to be [[Wikipedia:adware|adware]], for example [[:en:USB flash installation medium#Using etcher|etcher]].}}&lt;br /&gt;
&lt;br /&gt;
* {{App|Deepin Boot Maker|Tool to make boot disk for Deepin OS.|https://www.deepin.org/en/original/deepin-boot-maker/|{{Pkg|deepin-boot-maker}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Fedora Media Writer|Fedora Media Writer]]|Tool that helps users put Fedora images on their portable drives such as flash disks.|https://github.com/FedoraQt/MediaWriter|{{AUR|mediawriter}}}}&lt;br /&gt;
* {{App|GNOME MultiWriter|Write an ISO file to multiple USB devices at once.|https://wiki.gnome.org/Apps/MultiWriter|{{Pkg|gnome-multi-writer}}}}&lt;br /&gt;
* {{App|Image Burner|Simple imageburner designed for elementary OS.|https://github.com/artemanufrij/imageburner|{{AUR|imageburner}}}}&lt;br /&gt;
* {{App|ISOImageWriter|Tool to write a .iso file to a USB disk.|https://community.kde.org/ISOImageWriter|{{AUR|isoimagewriter}}}}&lt;br /&gt;
* {{App|LiveUSB Install|Install various Linux distributions and operating systems on removable flash drive or external disk drive.|http://live.learnfree.eu/|{{AUR|live-usb-install}}}}&lt;br /&gt;
* {{App|MultiBootUSB|Install multiple live distributions on a USB disk non-destructively and has an option to uninstall them.|https://github.com/mbusb/multibootusb/|{{AUR|multibootusb}}}}&lt;br /&gt;
* {{App|MultiSystem|GUI tool to create a USB system that can boot multiple distributions.|http://liveusb.info/|{{AUR|multisystem}}}}&lt;br /&gt;
* {{App|Popsicle|Utility for flashing multiple USB devices in parallel, written in Rust.|https://github.com/pop-os/popsicle|{{AUR|popsicle-git}}}}&lt;br /&gt;
* {{App|[[Wikipedia:SUSE Studio ImageWriter|SUSE Studio ImageWriter]]|Utility for writing raw disk images &amp;amp; hybrid isos to USB keys.|https://github.com/openSUSE/imagewriter|{{AUR|imagewriter}}}}&lt;br /&gt;
* {{App|[[Wikipedia:UNetbootin|UNetbootin]]|Installs Linux/BSD distributions to a partition or USB drive.|https://unetbootin.github.io/|{{AUR|unetbootin}}}}&lt;br /&gt;
* {{App|Usbimager|Minimal GUI application to write compressed disk images to USB drives.|https://gitlab.com/bztsrc/usbimager|{{AUR|usbimager}}}}&lt;br /&gt;
* {{App|WoeUSB|Simple tool to create USB stick windows installer from an ISO image or a real DVD. (Fork of WinUSB).|https://github.com/WoeUSB/WoeUSB-frontend-wxgtk| {{AUR|woeusb}}}}&lt;br /&gt;
* {{App|windows2usb|Windows 7/8/8.1/10 ISO to Flash Drive burning utility for Linux with MBR/GPT, BIOS/UEFI, FAT32/NTFS support|https://github.com/ValdikSS/windows2usb|{{AUR|windows2usb-git}}}}&lt;br /&gt;
&lt;br /&gt;
=== System ===&lt;br /&gt;
&lt;br /&gt;
==== タスクマネージャ ====&lt;br /&gt;
&lt;br /&gt;
* {{App|CoreStats|Simple lightweight system resource viewer to monitor the CPU, RAM, Network and Disk IO statistics. Part of C-Suite.|https://cubocore.org/|{{AUR|corestats}}}}&lt;br /&gt;
* {{App|Deepin System Monitor|Monitor system process status for Deepin desktop.|https://www.deepin.org/en/original/deepin-system-monitor/|{{Pkg|deepin-system-monitor}}}}&lt;br /&gt;
* {{App|GNOME System Monitor|[[GNOME]] のシステムモニタ to view and manage system resources.|https://wiki.gnome.org/Apps/SystemMonitor|{{Pkg|gnome-system-monitor}}}}&lt;br /&gt;
* {{App|GNOME Usage|View information about use of system resources, like memory and disk space.|https://wiki.gnome.org/Apps/Usage|{{Pkg|gnome-usage}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Htop|htop]]|シンプルな、ncurses 対話式プロセスビューア。|http://htop.sourceforge.net/|{{Pkg|htop}}}}&lt;br /&gt;
* {{App|bpytop|Htop but more lightweight with more features.|https://github.com/aristocratos/bpytop|{{Pkg|bpytop}}}}&lt;br /&gt;
* {{App|btop|Rewrite of bpytop in C++|https://github.com/aristocratos/btop|{{Pkg|btop}}}}&lt;br /&gt;
* {{App|[[Wikipedia:KDE System Guard|KSysGuard]]|[[KDE]] のタスクマネージャ・パフォーマンスモニタ。|https://apps.kde.org/ksysguard/|{{Pkg|ksysguard}}}}&lt;br /&gt;
* {{App|Linux Process Explorer|Linux 向けのグラフィカルプロセスエクスプローラー。|https://sourceforge.net/projects/procexp/|{{AUR|procexp}}}}&lt;br /&gt;
* {{App|LXTask|[[LXDE]] の軽量なタスクマネージャー。|https://wiki.lxde.org/en/LXTask|{{Pkg|lxtask}}}}&lt;br /&gt;
* {{App|qps|Lightweight task manager for [[LXQt]].|https://github.com/lxqt/qps|{{AUR|qps}}}}&lt;br /&gt;
* {{App|MATE System Monitor|[[MATE]] のシステムモニター。|https://github.com/mate-desktop/mate-system-monitor|{{Pkg|mate-system-monitor}}}}&lt;br /&gt;
* {{App|Stacer|System optimizer and application monitor that helps users to manage entire system with different aspects, its an all in one system utility.|https://oguzhaninan.github.io/Stacer-Web/|{{AUR|stacer}}}}&lt;br /&gt;
* {{App|Task Manager|[[Xfce]] の GTK2/GTK3 プロセス管理アプリケーション with basic system resource monitor|https://goodies.xfce.org/projects/applications/xfce4-taskmanager|{{Pkg|xfce4-taskmanager}}}}&lt;br /&gt;
&lt;br /&gt;
==== システム監視 ====&lt;br /&gt;
&lt;br /&gt;
[[:カテゴリ:状態監視と通知]]も参照してください。&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Conky]]|軽量でスクリプト式のシステムモニタ。|https://github.com/brndnmtthws/conky|{{Pkg|conky}}}}&lt;br /&gt;
* {{App|Collectd|[https://oss.oetiker.ch/rrdtool/ rrdtool] ベースのシンプルで拡張性のあるシステム監視デーモン。消費リソースが少なくて、スタンドアロンに、またはサーバー・クライアントアプリケーションとして設定できます。|https://collectd.org/|{{Pkg|collectd}}}}&lt;br /&gt;
* {{App|collectl|軽量なパフォーマンス監視ツール。対話式にレポートを作成したりディスクにログを出力できます。CPU やディスク、[[InfiniBand]]、Lustre、メモリ、ネットワーク、[[NFS]]、プロセス, quadrics, slabs などの統計情報を読みやすいフォーマットでまとめます。|http://collectl.sourceforge.net/|{{AUR|collectl}}}}&lt;br /&gt;
* {{App|dstat|多目的リソース統計ツール。|http://dag.wiee.rs/home-made/dstat/|{{Pkg|dstat}}}}&lt;br /&gt;
* {{App|Fsniper|Daemon to run scripts based on changes in files monitored by inotify.|https://github.com/l3ib/fsniper|{{AUR|fsniper}}}}&lt;br /&gt;
* {{App|[[Wikipedia:GKrellM|GKrellM]]|シンプルで柔軟性のある [[GTK]] 向けシステムモニタパッケージ。多くのプラグインが含まれている。|https://billw2.github.io/gkrellm/gkrellm.html|{{Pkg|gkrellm}}}}&lt;br /&gt;
* {{App|glances|Python 製の CLI curses ベース監視ツール。|https://nicolargo.github.io/glances/|{{Pkg|glances}}}}&lt;br /&gt;
* {{App|kmon|Linux kernel manager and activity monitor.|https://github.com/orhun/kmon|{{Pkg|kmon}}}}&lt;br /&gt;
* {{App|Nagstamon|Status monitor that connects to multiple Nagios, Icinga, Opsview, Centreon, Op5 Monitor/Ninja, Checkmk and Thruk monitoring servers.|https://github.com/orhun/kmon|{{AUR|nagstamon}}}}&lt;br /&gt;
* {{App|netdata|ウェブベースのリアルタイムパフォーマンスモニター。|https://github.com/firehol/netdata/wiki|{{Pkg|netdata}}}}&lt;br /&gt;
* {{App|[[Telegraf]]|Agent written in Go for collecting, processing, aggregating, and writing metrics.|https://docs.influxdata.com/telegraf/latest/|{{AUR|telegraf}}}}&lt;br /&gt;
* {{App|[[Paramano]]|軽量なバッテリモニター、CPU 周波数スケーラ。[http://trayfreq.sourceforge.net/ trayfreq] のフォーク。|https://github.com/phillid/paramano|{{AUR|paramano}}}}&lt;br /&gt;
* {{app|Sysstat|リソース管理ツールのコレクション: iostat, isag, mpstat, pidstat, sadf, sar。|http://sebastien.godard.pagesperso-orange.fr/|{{Pkg|sysstat}}}}&lt;br /&gt;
* {{App|xosview|SGI IRIX の gr_osview に似ているシステムモニター。|https://www.pogo.org.uk/~mark/xosview/|{{AUR|xosview}}}}&lt;br /&gt;
* {{App|zps|A small utility for listing and reaping zombie processes on GNU/Linux.|https://github.com/orhun/zps|{{Pkg|zps}}}}&lt;br /&gt;
&lt;br /&gt;
==== Hardware sensor monitoring ====&lt;br /&gt;
&lt;br /&gt;
See [[lm_sensors#Graphical front-ends]].&lt;br /&gt;
&lt;br /&gt;
==== システム情報ビューア ====&lt;br /&gt;
&lt;br /&gt;
===== コンソール =====&lt;br /&gt;
&lt;br /&gt;
* {{App|alsi|Arch Linux のシステム情報ツール。スクリプトのソースコードを修正しなくても他のシステム用に設定することが可能です。|https://trizenx.blogspot.com/2012/08/alsi.html|{{AUR|alsi}}}}&lt;br /&gt;
* {{App|[[archey3]]|Arch Linux のロゴとシステム情報を表示する Python スクリプト。|https://lclarkmichalek.github.io/archey3|{{Pkg|archey3}}}}&lt;br /&gt;
* {{App|dmidecode|SMBIOS/DMI の仕様による BIOS に書かれているシステムのハードウェア情報を表示します。|https://www.nongnu.org/dmidecode/|{{Pkg|dmidecode}}}}&lt;br /&gt;
* {{App|hwdetect|{{ic|/sys}} によってエクスポートされたモジュールを表示するシンプルなスクリプト。|https://github.com/archlinux/svntogit-packages/blob/packages/hwdetect/trunk/hwdetect|{{Pkg|hwdetect}}}}&lt;br /&gt;
* {{App|hwinfo|openSUSE 由来のパワフルなハードウェア検出ツール。|https://github.com/openSUSE/hwinfo|{{Pkg|hwinfo}}}}&lt;br /&gt;
* {{App|hw-probe|Tool to probe for hardware, check operability and find drivers with the help of [https://linux-hardware.org/ Linux Hardware Database].|https://github.com/linuxhw/hw-probe|{{AUR|hw-probe}}}}&lt;br /&gt;
* {{App|inxi|システム情報を取得するためのスクリプト。|https://github.com/smxi/inxi|{{AUR|inxi}}}}&lt;br /&gt;
* {{App|neofetch|w3m で画像を表示することができる高速・カスタマイズ可能なシステム情報スクリプト。|https://github.com/dylanaraps/neofetch|{{AUR|neofetch}}}}&lt;br /&gt;
* {{App|fastfetch|メンテナンスが行き届いており、機能が豊富でパフォーマンス重視の、neofetchのようなシステム情報ツール。|https://github.com/fastfetch-cli/fastfetch|{{Pkg|fastfetch}}}}&lt;br /&gt;
* {{App|nmon|Console based application for monitoring various system components.|http://nmon.sourceforge.net/|{{Pkg|nmon}}}}&lt;br /&gt;
* {{App|pfetch|A pretty system information tool written in POSIX sh.|https://github.com/dylanaraps/pfetch|{{AUR|pfetch}}}}&lt;br /&gt;
* {{App|screenfetch|archey と似ていますがスクリーンショットを取得することができます。bash で書かれています。|https://github.com/KittyKatt/screenFetch|{{Pkg|screenfetch}}}}&lt;br /&gt;
&lt;br /&gt;
===== グラフィカル =====&lt;br /&gt;
&lt;br /&gt;
* {{App|GPU-Viewer|GUI to glxinfo, vulkaninfo, clinfo and es2_info; written in Python with GTK.|https://github.com/arunsivaramanneo/GPU-Viewer|{{AUR|gpu-viewer}}}}&lt;br /&gt;
* {{App|hardinfo|ハードウェアとオペレーティングシステムに関する情報を表示する小さなアプリケーション。Windows のデバイスマネージャに似ています。|https://www.berlios.de/software/hardinfo/|{{Pkg|hardinfo}}}}&lt;br /&gt;
* {{App|i-Nex|システムで利用できるハードウェアコンポーネントの情報を収集して Windows の人気ツール CPU-Z に似ているユーザーインターフェースで情報を表示するアプリケーション。|http://i-nex.linux.pl/|{{AUR|i-nex-git}}}}&lt;br /&gt;
* {{App|lshw|マシンのハードウェア設定に関する情報を詳しく表示する小さなツール。CLI と GTK のインターフェイス。|https://ezix.org/project/wiki/HardwareLiSter|{{Pkg|lshw}}}}&lt;br /&gt;
* {{App|[[Wikipedia:KInfoCenter|KInfoCenter]]|Centralized and convenient overview of system information for KDE.|https://userbase.kde.org/KInfoCenter|{{Pkg|kinfocenter}}}}&lt;br /&gt;
* {{App|USBView|Display the topology of devices on the USB bus.|http://www.kroah.com/linux/usb/|{{Pkg|usbview}}}}&lt;br /&gt;
&lt;br /&gt;
==== System log viewers ====&lt;br /&gt;
&lt;br /&gt;
* {{App|GNOME Logs|Viewer for the systemd journal. Part of {{Grp|gnome}}.|https://wiki.gnome.org/Apps/Logs|{{Pkg|gnome-logs}}}}&lt;br /&gt;
* {{App|GNOME System Log|System log viewer for GNOME.|https://gitlab.gnome.org/GNOME/gnome-system-log|{{Pkg|gnome-system-log}}}}&lt;br /&gt;
* {{App|KSystemLog|System log viewer tool for KDE.|https://apps.kde.org/ksystemlog/|{{Pkg|ksystemlog}}}}&lt;br /&gt;
* {{App|MATE System Log|System log viewer for MATE.|https://github.com/mate-desktop/mate-utils|{{Pkg|mate-utils}}}}&lt;br /&gt;
* {{App|Pacman Log Viewer|Tool used to inspect pacman log file, in particular it lists installed, removed and upgraded packages letting you to filter by package&#039;s name and/or date.|https://www.opendesktop.org/content/show.php?content&amp;amp;#61;150484|{{Pkg|pacmanlogviewer}}}}&lt;br /&gt;
* {{App|QJournalctl|Qt-based graphical user interface for systemd&#039;s &#039;&#039;journalctl&#039;&#039; command.|https://github.com/pentix/qjournalctl|{{Pkg|qjournalctl}}}}&lt;br /&gt;
&lt;br /&gt;
==== Font viewers ====&lt;br /&gt;
&lt;br /&gt;
See also [[Wikipedia:Font management software]].&lt;br /&gt;
* {{App|Deepin Font Manager|A font management tool for Deepin desktop.|https://www.deepin.org/en/original/deepin-font-manager/|{{Pkg|deepin-font-manager}}}}&lt;br /&gt;
* {{App|Font Manager|Simple font management for GTK desktop environments.|https://fontmanager.github.io/|{{AUR|font-manager}}}}&lt;br /&gt;
* {{App|Fonty Python|Manage, view and find your fonts.|https://savannah.nongnu.org/projects/fontypython|{{AUR|fontypython}}}}&lt;br /&gt;
* {{App|GNOME Fonts|Font viewer for GNOME.|https://gitlab.gnome.org/GNOME/gnome-font-viewer|{{Pkg|gnome-font-viewer}}}}&lt;br /&gt;
* {{App|KFontview|KDE application to view and install different types of fonts.|https://kde.org/|{{Pkg|plasma-desktop}}}}&lt;br /&gt;
* {{App|MATE Font Viewer|Font viewer for MATE.|https://github.com/mate-desktop/mate-control-center|{{Pkg|mate-utils}}}}&lt;br /&gt;
&lt;br /&gt;
==== Help viewers ====&lt;br /&gt;
&lt;br /&gt;
See [[man ページ#インストール]].&lt;br /&gt;
&lt;br /&gt;
==== Command schedulers ====&lt;br /&gt;
&lt;br /&gt;
See also [[Cron]].&lt;br /&gt;
&lt;br /&gt;
* {{App|FcronQ|Fcron GUI, an advanced periodic command scheduler.|http://fcronq.xavion.name/|{{AUR|fcronq}}}}&lt;br /&gt;
* {{App|GNOME Schedule|Graphical interface to crontab and at for GNOME.|http://gnome-schedule.sourceforge.net/|{{AUR|gnome-schedule}}}}&lt;br /&gt;
* {{App|KCron|Tool for KDE to run applications in the background at regular intervals. It is a graphical interface to the Cron command.|https://apps.kde.org/kcron/|{{Pkg|kcron}}}}&lt;br /&gt;
* {{App|KTimer|Little tool for KDE to execute programs after some time. It allows you to enter several tasks and to set a timer for each of them. The timers for each task can be started, stopped, changed, or looped.|https://apps.kde.org/ktimer/|{{Pkg|ktimer}}}}&lt;br /&gt;
&lt;br /&gt;
==== Shutdown timers ====&lt;br /&gt;
&lt;br /&gt;
* {{App|GShutdown|Advanced shutdown utility which allows you to schedule the shutdown or the restart of your computer, or logout your actual session.|https://gshutdown.tuxfamily.org/|{{AUR|gshutdown}}}}&lt;br /&gt;
* {{App|Hsiu-Ming&#039;s Timer|Graphical shutdown timer, which enables you to shutdown, turn off monitor, reboot or play sound after a period of time.|https://cges30901.github.io/hmtimer-website/|{{AUR|hmtimer}}}}&lt;br /&gt;
* {{App|KShutdown|Graphical shutdown utility, which allows you to turn off or suspend a computer at a specified time. It features various time and delay options, command-line support, and notifications.|https://kshutdown.sourceforge.io/|{{Pkg|kshutdown}}}}&lt;br /&gt;
&lt;br /&gt;
==== 時刻同期 ====&lt;br /&gt;
&lt;br /&gt;
See [[時刻同期]].&lt;br /&gt;
&lt;br /&gt;
==== Screen management ====&lt;br /&gt;
&lt;br /&gt;
See [[Xrandr#Graphical front-ends]].&lt;br /&gt;
&lt;br /&gt;
==== Backlight management ====&lt;br /&gt;
&lt;br /&gt;
See [[バックライト#バックライトユーティリティ]].&lt;br /&gt;
&lt;br /&gt;
==== Color management ====&lt;br /&gt;
&lt;br /&gt;
See [[:en:ICC profiles#Utilities]] and [[バックライト#色補正]].&lt;br /&gt;
&lt;br /&gt;
==== Printer management ====&lt;br /&gt;
&lt;br /&gt;
See [[CUPS#GUI applications]].&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth management ====&lt;br /&gt;
&lt;br /&gt;
See [[Bluetooth#Front-ends]].&lt;br /&gt;
&lt;br /&gt;
==== 電源管理 ====&lt;br /&gt;
&lt;br /&gt;
See [[電源管理#ユーザースペースツール]].&lt;br /&gt;
&lt;br /&gt;
==== System management ====&lt;br /&gt;
&lt;br /&gt;
See [[Systemd#GUI configuration tools]].&lt;br /&gt;
&lt;br /&gt;
==== Boot management ====&lt;br /&gt;
&lt;br /&gt;
See [[GRUB/Tips and tricks#GUI configuration tools]].&lt;br /&gt;
&lt;br /&gt;
==== パッケージ管理 ====&lt;br /&gt;
&lt;br /&gt;
See [[pacman ヒント#ユーティリティ]].&lt;br /&gt;
&lt;br /&gt;
==== Virtualization ====&lt;br /&gt;
&lt;br /&gt;
See [[Libvirt#Client]] and [[VirtualBox]].&lt;br /&gt;
&lt;br /&gt;
==== Compatibility layers ====&lt;br /&gt;
&lt;br /&gt;
See [[Wine]] (Windows) and [https://www.darlinghq.org/ Darling] (MacOS).&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{TranslationStatus|List of applications/Utilities|2021-12-25|707362}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hkiku482</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E4%B8%80%E8%A6%A7/%E3%83%A6%E3%83%BC%E3%83%86%E3%82%A3%E3%83%AA%E3%83%86%E3%82%A3&amp;diff=40493</id>
		<title>アプリケーション一覧/ユーティリティ</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E4%B8%80%E8%A6%A7/%E3%83%A6%E3%83%BC%E3%83%86%E3%82%A3%E3%83%AA%E3%83%86%E3%82%A3&amp;diff=40493"/>
		<updated>2025-07-01T08:16:54Z</updated>

		<summary type="html">&lt;p&gt;Hkiku482: /* コンソール */ neofetchをAURへ移動&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:アプリケーション]]&lt;br /&gt;
[[Category:ソフトウェア一覧]]&lt;br /&gt;
[[en:List of applications/Utilities]]&lt;br /&gt;
[[es:List of applications/Utilities]]&lt;br /&gt;
[[it:List of applications/Utilities]]&lt;br /&gt;
[[ru:List of applications/Utilities]]&lt;br /&gt;
[[uk:List of applications/Utilities]]&lt;br /&gt;
[[zh-hans:List of applications/Utilities]]&lt;br /&gt;
[[zh-hant:List of applications/Utilities]]&lt;br /&gt;
{{List of Applications navigation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
== ユーティリティ ==&lt;br /&gt;
&lt;br /&gt;
=== Terminal ===&lt;br /&gt;
&lt;br /&gt;
==== コマンドシェル ====&lt;br /&gt;
次の記事を参照: [[コマンドラインシェル]]&lt;br /&gt;
&lt;br /&gt;
次も参照: [[Wikipedia:Comparison of command shells]]&lt;br /&gt;
&lt;br /&gt;
==== ターミナルエミュレータ ====&lt;br /&gt;
ターミナルエミュレータとはターミナルを含むGUIウィンドウを表示する機能を有します。&lt;br /&gt;
それらエミュレータのほとんどは Xterm をエミュレートしていて、その Xterm は VT102 をエミュレートしていて、VT102 はタイプライターをエミュレートしています。For further background information, see [[Wikipedia:Terminal emulator]].&lt;br /&gt;
&lt;br /&gt;
For a comprehensive list, see [[Wikipedia:List of terminal emulators]].&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Alacritty]]|クロスプラットフォームの GPU アクセラレーションターミナルエミュレータ。|https://github.com/jwilm/alacritty|{{Pkg|alacritty}}}}&lt;br /&gt;
* {{App|aterm|透過をサポートした xterm 代替。2008年から urxvt に取って代わられています。|http://www.afterstep.org/aterm.php|{{AUR|aterm}}}}&lt;br /&gt;
* {{App|[[cool-retro-term]]|昔のブラウン管ディスプレイを模した見た目が良いターミナルエミュレータ。|https://github.com/Swordfish90/cool-retro-term|{{Pkg|cool-retro-term}}}}&lt;br /&gt;
* {{App|CoreTerminal|Terminal emulator based on qtermwidget. Part of C-Suite.|https://cubocore.org/|{{AUR|coreterminal}}}}&lt;br /&gt;
* {{App|CuteCom|A graphical serial terminal.|https://gitlab.com/cutecom/cutecom|{{AUR|cutecom}}}}&lt;br /&gt;
* {{App|Deepin Terminal|Terminal emulation application for Deepin desktop.|https://www.deepin.org/en/original/deepin-terminal/|{{Pkg|deepin-terminal}}}}&lt;br /&gt;
* {{App|Eterm|[[Enlightenment]] デスクトップ向けに作られた xterm を代替するターミナルエミュレータ。|https://github.com/mej/Eterm|{{AUR|eterm}}}}&lt;br /&gt;
* {{App|foot|Lightweight terminal emulator for Wayland with [[w:sixel|sixel]] support|https://codeberg.org/dnkl/foot|{{AUR|foot}}, {{AUR|foot-git}}}}&lt;br /&gt;
* {{App|Hyper|A terminal with JS/CSS support. Based on the [https://electronjs.org/ Electron] platform.|https://github.com/zeit/hyper|{{AUR|hyper}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Konsole|Konsole]]|[[KDE]] デスクトップのターミナルエミュレータ。|https://konsole.kde.org/|{{Pkg|konsole}}}}&lt;br /&gt;
* {{App|[[kitty]]|モダンで柔軟な設定が可能な OpenGL ベースのターミナルエミュレータ|https://github.com/kovidgoyal/kitty|{{Pkg|kitty}}}}&lt;br /&gt;
* {{App|Liri Terminal|Material Design terminal for Liri.|https://github.com/lirios/terminal|{{Pkg|liri-terminal}}}}&lt;br /&gt;
* {{App|mlterm|世界中の様々な文字セットやエンコーディングが使える多言語対応のターミナルエミュレータ。|https://sourceforge.net/projects/mlterm/|{{AUR|mlterm}}}}&lt;br /&gt;
* {{App|moserial|GTK-based serial terminal for the GNOME desktop.|https://wiki.gnome.org/Apps/Moserial|{{Pkg|moserial}}}}&lt;br /&gt;
* {{App|[[PuTTY]]|Highly configurable ssh/telnet/serial console program.|https://www.chiark.greenend.org.uk/~sgtatham/putty/|{{Pkg|putty}}}}&lt;br /&gt;
* {{App|QTerminal|軽量な Qt ベースのターミナルエミュレータ。|https://github.com/qterminal/qterminal|{{Pkg|qterminal}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Rxvt|rxvt]]|xterm の人気代替。|http://rxvt.sourceforge.net/|{{AUR|rxvt}}}}&lt;br /&gt;
* {{App|shellinabox|ウェブベースの SSH ターミナル。|https://github.com/shellinabox/shellinabox|{{AUR|shellinabox-git}}}}&lt;br /&gt;
* {{App|[[st]]|X 向けのシンプルなターミナル実装。|https://st.suckless.org|{{AUR|st}}}}&lt;br /&gt;
* {{App|Station|Terminal emulation features different view modes such as split vertically and horizontally, a tabbed interface, and copy and paste commands.|https://mauikit.org/|{{Pkg|maui-station}}}}&lt;br /&gt;
* {{App|Terminology|革新的な機能を備えた Enlightenment プロジェクトチームによるターミナルエミュレータ:ファイルのサムネイルとメディアは、メディアプレーヤーのように再生されます。|https://www.enlightenment.org/about-terminology|{{Pkg|terminology}}}}&lt;br /&gt;
* {{App|[[urxvt]]|(Perl によって) 高い拡張性を持ちユニコードが使える rxvt クローンターミナルエミュレータ。タブ、URL 起動、Quake スタイルのドロップダウンモード、擬似透過をサポート。|http://software.schmorp.de/pkg/rxvt-unicode.html|{{Pkg|rxvt-unicode}}}}&lt;br /&gt;
* {{App|wayst|Simple terminal emulator for Wayland and X11 with OpenGL rendering and minimal dependencies.|https://github.com/91861/wayst|{{AUR|wayst-git}}}}&lt;br /&gt;
* {{App|[[xterm]]|X Window System 用のシンプルなターミナルエミュレータ。ウィンドウシステムを直接使えないプログラム用に DEC VT102 や Tektronix 4014 互換のターミナルを提供します。|https://invisible-island.net/xterm/|{{Pkg|xterm}}}}&lt;br /&gt;
* {{App|[[Yakuake]]|Konsole ベースのドロップダウンターミナル (Quake スタイル) エミュレータ。|https://apps.kde.org/yakuake/|{{Pkg|yakuake}}}}&lt;br /&gt;
* {{App|zutty|A high-end terminal for low-end systems.|https://tomscii.sig7.se/zutty/|{{Pkg|zutty}}}}&lt;br /&gt;
&lt;br /&gt;
===== VTE ベース =====&lt;br /&gt;
&lt;br /&gt;
[https://wiki.gnome.org/Apps/Terminal/VTE VTE] (Virtual Terminal Emulator) は初期の GNOME で GNOME Terminal で使うために開発されたウィジェットです。VTE ができてから、似た機能を持つ数多くのターミナルが生まれました。&lt;br /&gt;
&lt;br /&gt;
* {{App|Deepin Terminal (GTK version)|Old terminal emulation application for Deepin desktop.|https://github.com/linuxdeepin/deepin-terminal-gtk|{{Pkg|deepin-terminal-gtk}}}}&lt;br /&gt;
* {{App|EasySSH|SSH Connection Manager.|https://github.com/muriloventuroso/easyssh|{{AUR|easyssh}}}}&lt;br /&gt;
* {{App|Germinal|ボーダーレスな最大化されたターミナルを表示する、最小主義のターミナルエミュレータ。デフォルトで tmux セッションにアタッチするので、タブやパネルが使えます。|https://www.imagination-land.org/tags/germinal.html|{{AUR|germinal}}}}&lt;br /&gt;
* {{App|[[Wikipedia:GNOME Terminal|GNOME Terminal]]|[[GNOME]] デスクトップのターミナルエミュレータ。ユニコードをサポート。|https://wiki.gnome.org/Apps/Terminal|{{Pkg|gnome-terminal}}}}&lt;br /&gt;
* {{App|[[Guake]]|GNOME デスクトップ向けドロップダウンターミナル。|http://guake-project.org/|{{Pkg|guake}}}}&lt;br /&gt;
* {{App|kermit|A VTE-based terminal emulator that aims to be simple, fast and effective.|https://github.com/orhun/kermit|{{AUR|kermit}}}}&lt;br /&gt;
* {{App|King’s Cross|Simple user-friendly terminal emulator for the GNOME desktop.|https://gitlab.gnome.org/ZanderBrown/kgx|{{AUR|kgx}}}}&lt;br /&gt;
* {{App|LXTerminal|[[LXDE]] 向けのデスクトップ非依存のターミナルエミュレータ。|https://wiki.lxde.org/en/LXTerminal|{{Pkg|lxterminal}}}}&lt;br /&gt;
* {{App|MATE terminal|[[MATE]] デスクトップの [[Wikipedia:GNOME terminal|GNOME ターミナル]] のフォーク。|https://www.mate-desktop.org/|{{Pkg|mate-terminal}}}}&lt;br /&gt;
* {{App|Pantheon Terminal|超軽量・美麗・シンプルなターミナルエミュレータ。デフォルト設定で使うように作られているので設定がほとんどありません。|https://github.com/elementary/terminal|{{Pkg|pantheon-terminal}}}}&lt;br /&gt;
* {{App|ROXTerm|場所をとらないタブ式ターミナルエミュレータ。|http://roxterm.sourceforge.net/|{{AUR|roxterm}}}}&lt;br /&gt;
* {{App|sakura|GTK と VTE ベースのターミナルエミュレータ。|https://www.pleyades.net/david/projects/sakura|{{Pkg|sakura}}}}&lt;br /&gt;
* {{App|[[Terminator]]|マルチプルでリサイズ可能な端末パネルをサポートしたターミナルエミュレータ。|https://gnome-terminator.org/|{{Pkg|terminator}}}}&lt;br /&gt;
* {{App|[[Termite]]|キーボード中心の VTE ベースのターミナル。タイル型またはタブをサポートしているウィンドウマネージャで使われるように作られています。 Unmaintained - the developers recommend switching to Alacritty.|https://github.com/thestinger/termite|{{AUR|termite}}}}&lt;br /&gt;
* {{App|Tilda|設定可能なドロップダウンターミナルエミュレータ。|https://github.com/lanoxx/tilda/|{{Pkg|tilda}}}}&lt;br /&gt;
* {{App|Tilix|タイル型ターミナルエミュレータ for GNOME.|https://gnunn1.github.io/tilix-web/|{{Pkg|tilix}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Terminal (Xfce)|Xfce Terminal]]|[[Xfce]] デスクトップに含まれているターミナルエミュレータ。カラープロンプト、タブをサポート。|https://docs.xfce.org/apps/terminal/start|{{Pkg|xfce4-terminal}}}}&lt;br /&gt;
&lt;br /&gt;
===== KMS ベース =====&lt;br /&gt;
&lt;br /&gt;
以下のターミナルエミュレータは [[カーネルモード設定]]を使っており X がなくても起動できます。&lt;br /&gt;
* {{App|[[KMSCON]]|Linux オペレーティングシステム用のターミナルエミュレータを統合した KMS/DRM ベースのシステムコンソール（getty）です。|https://github.com/dvdhrm/kmscon|{{AUR|kmscon}}}}&lt;br /&gt;
&lt;br /&gt;
===== フレームバッファベース =====&lt;br /&gt;
&lt;br /&gt;
GNU/Linux では、Linux カーネルの仮想デバイス (&#039;&#039;&#039;fbdev&#039;&#039;&#039;) や X の仮想フレームバッファシステム (&#039;&#039;&#039;xvfb&#039;&#039;&#039;) のことを[[Wikipedia:Framebuffer|フレームバッファ]]と呼ぶことがあります。このセクションでは主としてカーネルの仮想デバイス &#039;&#039;&#039;fbdev&#039;&#039;&#039; をベースにするターミナルエミュレータをリストアップしています。&lt;br /&gt;
&lt;br /&gt;
* {{App|yaft|X をなくても動かせるシンプルなターミナルエミュレータ。UCS2 文字、壁紙、256color をサポート。|https://github.com/uobikiemukot/yaft|{{aur|yaft}}}}&lt;br /&gt;
* {{App|[[Fbterm]]|a fast FrameBuffer based TERMinal emulator for linux|https://salsa.debian.org/debian/fbterm|{{AUR|fbterm}}}}&lt;br /&gt;
&lt;br /&gt;
==== ターミナルページャ ====&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Terminal pager]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:More_(command)|more]]|シンプルで機能の少ないページャです。util-linuxの一部です。|https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/about/|{{Pkg|util-linux}}}}&lt;br /&gt;
* {{App|[[Core_utilities#Essentials|less]]|more に似たプログラムだが、前方・後方両方のスクロールをサポートし、ファイルの部分読み込みもできる。|https://www.gnu.org/software/less/|{{Pkg|less}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Most_(Unix)|most]]|マルチウィンドウ、左右スクロール、内蔵カラーをサポートしたページャ|http://www.jedsoft.org/most/|{{Pkg|most}}}}&lt;br /&gt;
* {{App|mcview|マウスとカラーに対応したページャ。midnight commander にバンドルされている。|https://midnight-commander.org/|{{Pkg|mc}}}}&lt;br /&gt;
* また、[[Vim]] は[[Vim#Vim をページャとして使う|ページャとして使う]]ことができます。&lt;br /&gt;
&lt;br /&gt;
==== ターミナルマルチプレクサ ====&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Terminal multiplexer]] も参照してください。&lt;br /&gt;
&lt;br /&gt;
* {{App|abduco|プロセスを制御端末とは別に実行させる、セッションのアタッチとデタッチをサポートするツール。|https://www.brain-dump.org/projects/abduco/|{{Pkg|abduco}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Byobu (software)|byobu]]|An GPLv3 licensed addon for tmux or screen. It requires a terminal multiplexer installed.|https://byobu.org/|{{Pkg|byobu}}}}&lt;br /&gt;
* {{App|[[dtach]]|Program that emulates the detach feature of [[GNU Screen]].|http://dtach.sourceforge.net/|{{AUR|dtach}}}}&lt;br /&gt;
* {{App|dvtm|[[dwm]]-style window manager in the console.|https://www.brain-dump.org/projects/dvtm/|{{Pkg|dvtm}}}}&lt;br /&gt;
* {{App|[[GNU Screen]]|物理端末を多重化するフルスクリーンウィンドウマネージャ。|https://www.gnu.org/software/screen/|{{Pkg|screen}}}}&lt;br /&gt;
* {{App|mtm|Simple terminal multiplexer with just four commands: change focus, split, close, and screen redraw.|https://github.com/deadpixi/mtm|{{AUR|mtm-git}}}}&lt;br /&gt;
* {{App|[[tmux]]|BSDライセンスのターミナル・マルチプレクサ。|https://tmux.github.io/|{{Pkg|tmux}}}}&lt;br /&gt;
* {{App|zellij|Rust で書かれた強化されたターミナル・マルチプレクサ|https://zellij.dev/|{{Pkg|zellij}}}}&lt;br /&gt;
* {{App|wezterm|[[Rust]] で実装された GPU アクセラレーションによるクロスプラットフォームなターミナルエミュレータおよびマルチプレクサ。|https://wezfurlong.org/wezterm/|{{Pkg|wezterm}}}}&lt;br /&gt;
{{Tip|端末エミュレーターの [[Kitty]] も同様の機能を備えています。}}&lt;br /&gt;
&lt;br /&gt;
=== ファイル ===&lt;br /&gt;
&lt;br /&gt;
==== ファイルマネージャ ====&lt;br /&gt;
&lt;br /&gt;
See also [[Wikipedia:Comparison of file managers]].&lt;br /&gt;
&lt;br /&gt;
===== コンソール =====&lt;br /&gt;
&lt;br /&gt;
* {{App|Clex|フルスクリーンのユーザーインターフェイスを持つファイルマネージャ。|http://www.clex.sk/|{{Aur|clex}}}}&lt;br /&gt;
* {{App|CliFM|The command line file manager: full-featured, fast, extensible, and lightweight as hell.|https://github.com/leo-arch/clifm|{{AUR|clifm}}}}&lt;br /&gt;
* {{App|ded|directory editor, file manager similar to Emacs dired|https://invisible-island.net/ded/ded.html|{{AUR|ded}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Dired|Dired]]|[[Emacs]] と統合されたディレクトリエディタ。|https://www.gnu.org/software/emacs/manual/html_node/emacs/Dired.html|{{pkg|emacs}}}}&lt;br /&gt;
* {{App|joshuto|ranger-like terminal file manager written in Rust.|https://github.com/kamiyaa/joshuto|{{AUR|joshuto-git}}}}&lt;br /&gt;
* {{App|Last File Manager|curses インターフェイスを備えた Python 3 で書かれた強力なファイルマネージャ。|https://inigo.katxi.org/devel/lfm/|{{AUR|lfm}}}}&lt;br /&gt;
* {{App|lf|Terminal file manager written in Go using server/client architecture.|https://github.com/gokcehan/lf|{{aur|lf}}}}&lt;br /&gt;
* {{App|[[Midnight Commander]]|コンソールベース、デュアルパネルのファイルマネージャー。|https://midnight-commander.org|{{Pkg|mc}}}}&lt;br /&gt;
* {{App|nffm|&amp;quot;Nothing Fancy File Manager&amp;quot;、C で書かれたマウスを使わない ncurses ファイルマネージャ。|https://github.com/mariostg/nffm|{{AUR|nffm-git}}}}&lt;br /&gt;
* {{App|[[nnn]]|Tiny, lightning fast, feature-packed file manager.|https://github.com/jarun/nnn|{{Pkg|nnn}}}}&lt;br /&gt;
* {{App|fff|A simple file manager written in Bash.|https://github.com/dylanaraps/fff|{{Pkg|fff}}}}&lt;br /&gt;
* {{App|Pilot|[[Alpine]] メールクライアントについてくるファイルマネージャー。|https://alpine.x10host.com/|{{AUR|alpine-git}}}}&lt;br /&gt;
* {{App|[[Ranger]]|vi バインディング、カスタマイズ性、多機能をもったコンソールベースのファイルマネージャー。|https://ranger.github.io/|{{Pkg|ranger}}}}&lt;br /&gt;
* {{App|[[Vifm]]|ncurses ベースの 2 パネルファイルマネージャー、vi ライクなキーバインド。|https://vifm.info|{{Pkg|vifm}}}}&lt;br /&gt;
* {{App|xplr|A hackable, minimal, fast TUI file explorer.|https://xplr.dev|{{Pkg|xplr}}}}&lt;br /&gt;
&lt;br /&gt;
===== グラフィカル =====&lt;br /&gt;
&lt;br /&gt;
* {{App|Caja|MATE デスクトップのファイルマネージャ。|https://github.com/mate-desktop/caja|{{Pkg|caja}}}}&lt;br /&gt;
* {{App|CoreFM|Simple lightweight easy to use file manager with many features like image previews, mime-icon support, split view, auto-mounting of removable media, drag-n-drop support etc. Part of C-Suite.|https://cubocore.org/|{{AUR|corefm}}}}&lt;br /&gt;
* {{App|Deepin File Manager|[[Deepin]] 用に開発されたファイルマネージャ。|https://www.deepin.org/en/original/dde-file-manager/|{{Pkg|deepin-file-manager}}}}&lt;br /&gt;
* {{App|[[Dolphin]]|KDE デスクトップのファイルマネージャー。|https://apps.kde.org/dolphin/|{{Pkg|dolphin}}}}&lt;br /&gt;
* {{App|Gentoo|GTK の軽量ファイルマネージャ。|https://sourceforge.net/projects/gentoo/|{{AUR|gentoo}}}}&lt;br /&gt;
* {{App|[[GNOME Files]]|拡張性のある、カスタムスクリプトをサポートしているヘビー級のファイルマネージャー。GNOME のデフォルト。|https://wiki.gnome.org/Apps/Files|{{Pkg|nautilus}}}}&lt;br /&gt;
* {{App|Index|File manager that lets you browse your system files and applications and preview your music, text, image and video files and share them with external applications.|https://apps.kde.org/index-fm/|{{Pkg|index-fm}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Konqueror|Konqueror]]|KDE デスクトップ用ファイルマネージャー。|https://apps.kde.org/konqueror/|{{Pkg|konqueror}}}}&lt;br /&gt;
* {{App|Liri Files|The file manager for Liri.|https://github.com/lirios/files|{{Pkg|liri-files}}}}&lt;br /&gt;
* {{App|[[Nemo]]|Nemo は Cinnamon デスクトップのファイルマネージャです。A fork of Nautilus.|https://cinnamon.linuxmint.com/{{Dead link|2021|05|17|status=SSL error}}|{{Pkg|nemo}}}}&lt;br /&gt;
* {{App|Pantheon Files|File browser designed for elementary OS.|https://github.com/elementary/files|{{Pkg|pantheon-files}}}}&lt;br /&gt;
* {{App|PathFinder|[[Wikipedia:Fox_toolkit|FOX ツールキット]] によるファイルブラウザ。|http://fox-toolkit.org/|{{Pkg|fox}}}}&lt;br /&gt;
* {{App|[[PCManFM]]|desktop icon や壁紙の管理などの機能をもっている very fast and 軽量ファイルマネージャー。|https://wiki.lxde.org/en/PCManFM|{{Pkg|pcmanfm}}}}&lt;br /&gt;
* {{App|[[PCManFM]]-Qt|Qt port of PCManFM file manager.|https://github.com/lxqt/pcmanfm-qt|{{Pkg|pcmanfm-qt}}}}&lt;br /&gt;
* {{App|Peony|File manager for the UKUI desktop.|https://github.com/ukui/peony|{{Pkg|peony}}}}&lt;br /&gt;
* {{App|qtFM|小さく軽量な、純粋に Qt ベースの Linux デスクトップ用ファイルマネージャー。|https://qtfm.eu/|{{AUR|qtfm}}}}&lt;br /&gt;
* {{App|ROX Filer|小さく高速なファイルマネージャー。壁紙やパネルの管理なども可能。|http://rox.sourceforge.net/|{{Pkg|rox}}}}&lt;br /&gt;
* {{App|[[Thunar]]|高速に起動し素早くディレクトリを読み込むようにデーモンとして実行できるファイルマネージャー。|https://docs.xfce.org/xfce/thunar/start|{{Pkg|thunar}}}}&lt;br /&gt;
&lt;br /&gt;
====== Twin-panel ======&lt;br /&gt;
&lt;br /&gt;
Note that some of these twin-panel file managers can also be set to have only one pane.&lt;br /&gt;
&lt;br /&gt;
* {{App|Double Commander|2つのパネルが並ぶファイルマネージャ。Total Commander にインスパイアされており新しいアイデアが実装されています。|https://doublecmd.sourceforge.io/|GTK: {{Pkg|doublecmd-gtk2}}, Qt5: {{Pkg|doublecmd-qt5}}}}&lt;br /&gt;
* {{App|[[Wikipedia:GNOME Commander|GNOME Commander]]|GNOME デスクトップのデュアルパネルファイルマネージャ。|https://gcmd.github.io/|{{AUR|gnome-commander}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Krusader|Krusader]]|KDE デスクトップ用の先進的なツインパネル (Midnight Commander スタイル) ファイルマネージャー。|https://krusader.org/|{{Pkg|krusader}}}}&lt;br /&gt;
* {{App|muCommander|軽量でクロスプラットフォームのファイルマネージャ。デュアルパネルのインターフェイスを持ち、Java で書かれています。|https://www.mucommander.com/|{{AUR|mucommander}}}}&lt;br /&gt;
* {{App|[[SpaceFM]]|GTK マルチパネルタブ式ファイルマネージャー。|https://ignorantguru.github.io/spacefm/|{{AUR|spacefm}}}}&lt;br /&gt;
* {{App|Sunflower|小さく細かく設定可能でプラグインをサポートしたツインパネルの Linux ファイルマネージャー。|https://sunflower-fm.org/|{{AUR|sunflower}}}}&lt;br /&gt;
* {{App|trolCommander|Lightweight, dual-pane file manager written in Java. Fork of muCommander.|https://github.com/trol73/mucommander|{{AUR|trolcommander}}}}&lt;br /&gt;
* {{App|Tux Commander|人気の Total Commander や Midnight Commander ファイルマネージャーに似た２つのパネルをもったウィンドウ型ファイルマネージャー。|http://tuxcmd.sourceforge.net/description.php|{{Pkg|tuxcmd}}}}&lt;br /&gt;
* {{App|Worker|高速、軽量、機能豊富な X Window System 向けファイルマネージャー。|http://www.boomerangsworld.de/cms/worker/|{{AUR|worker}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Xfe|Xfe]]|Microsoft Explorer ライクの X 用ファイルマネージャー (X File Explorer)。|http://roland65.free.fr/xfe/|{{AUR|xfe}}}}&lt;br /&gt;
&lt;br /&gt;
==== ゴミ箱管理 ====&lt;br /&gt;
&lt;br /&gt;
* {{App|trash-cli|[https://specifications.freedesktop.org/trash-spec/trashspec-latest.html FreeDesktop.org の Trash 規格] を実装するコマンドラインインターフェイス。|https://github.com/andreafrancia/trash-cli|{{Pkg|trash-cli}}}}&lt;br /&gt;
&lt;br /&gt;
==== ファイル同期とバックアップ ====&lt;br /&gt;
&lt;br /&gt;
[[バックアッププログラム]]、[[Wikipedia:Comparison of file synchronization software]] と [[Wikipedia:Comparison of backup software]] も見てください。&lt;br /&gt;
&lt;br /&gt;
* {{App|borg|Deduplicating backup program with compression and authenticated encryption that supports backing up over ssh|https://www.borgbackup.org|{{Pkg|borg}}}}&lt;br /&gt;
* {{App|Déjà Dup|Simple GTK backup program. It hides the complexity of doing backups the &#039;right way&#039; (encrypted, off-site, and regular) and uses [[duplicity]] as the backend.|https://launchpad.net/deja-dup|{{Pkg|deja-dup}}}}&lt;br /&gt;
* {{App|[[Wikipedia:DirSync Pro|DirSync Pro]]|Small, but powerful utility for file and folder synchronization.|https://dirsyncpro.org/|{{AUR|dirsyncpro}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Duplicati|Duplicati]]|Backup client that securely stores encrypted, incremental, compressed backups on cloud storage services and remote file servers.|https://www.duplicati.com/|{{AUR|duplicati-latest}}}}&lt;br /&gt;
* {{App|[[duplicity]]|Simple command-line utility which allows encrypted compressed incremental backup to nearly any storage.|https://www.nongnu.org/duplicity/|{{Pkg|duplicity}}}}&lt;br /&gt;
* {{App|[[Duply]]|Command-line front-end for [[duplicity]] which simplifies running it. It manages backup job settings in profiles and allows to batch execute commands.|https://www.duply.net/|{{AUR|duply}}}}&lt;br /&gt;
* {{App|[[Wikipedia:FreeFileSync|FreeFileSync]]|Folder comparison and synchronization software that creates and manages backup copies of all your important files.|https://www.freefilesync.org/|{{AUR|freefilesync}}}}&lt;br /&gt;
* {{App|[[Wikipedia:git-annex|git-annex]]|Manage files with git, without checking the file contents into git.|https://git-annex.branchable.com/|{{Pkg|git-annex}}}}&lt;br /&gt;
* {{App|[[Wikipedia:grsync|grsync]]|GTK+ GUI for rsync to synchronize folders, files and make backups|https://www.opbyte.it/grsync/|{{Pkg|grsync}}}}&lt;br /&gt;
* {{App|hsync|Command line program to sync only those files that have been renamed/moved but otherwise unchanged. It works by issuing simple move operations at the destination without actually transferring the files, and is meant to be used in conjunction with other synchronization programs that lack this capability.|https://ambrevar.bitbucket.io/hsync/|{{AUR|hsync}}}}&lt;br /&gt;
* {{App|rclone|Command line program to sync files and directories to and from Amazon S3, Dropbox, Google Drive, Microsoft OneDrive, Yandex Disk and many other cloud storage services as well as between local paths.|https://rclone.org/|{{Pkg|rclone}}}}&lt;br /&gt;
* {{App|restic|Fast, secure, efficient backup program that supports backing up to many cloud services.|https://restic.net/|{{Pkg|restic}}}}&lt;br /&gt;
* {{App|[[rsync]]|File transfer program that uses the &amp;quot;rsync algorithm&amp;quot; which provides a very fast method for bringing remote files into sync. It does this by sending just the differences in the files across the link, without requiring that both sets of files are present at one of the ends of the link beforehand. Has [[Rsync#Front-ends|multiple frontends available]].|https://rsync.samba.org/|{{Pkg|rsync}}}}&lt;br /&gt;
* {{App|[[Wikipedia:SparkleShare|SparkleShare]]|File sharing and collaboration application written in C#. It can sync with any Git server over SSH.|https://www.sparkleshare.org/|{{Pkg|sparkleshare}}}}&lt;br /&gt;
* {{App|[[Syncthing]]|Continuous file synchronization program. It synchronizes files between two or more computers in a simple way without advanced configuration.|https://syncthing.net/|{{Pkg|syncthing}}}}&lt;br /&gt;
* {{App|Syncany|Cloud storage and filesharing application with a focus on security and abstraction of storage.|https://www.syncany.org/|{{AUR|syncany}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Synkron|Synkron]]|Application that helps you keep your files and folders always updated. You can easily sync your documents, music or pictures to have their latest versions everywhere.|http://synkron.sourceforge.net/|{{AUR|synkron}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Tarsnap|Tarsnap]]|Secure, efficient proprietary online backup service.|https://www.tarsnap.com/|{{Pkg|tarsnap}}}}&lt;br /&gt;
* {{App|Timeshift|A system restore tool for Linux.|https://github.com/teejee2008/timeshift|{{AUR|timeshift}}}}&lt;br /&gt;
* {{App|[[Unison]]|File synchronization tool that allows two replicas of a collection of files and directories to be stored on different hosts (or different disks on the same host), modified separately, and then brought up to date by propagating the changes in each replica to the other.|https://www.cis.upenn.edu/~bcpierce/unison/|{{Pkg|unison}}}}&lt;br /&gt;
&lt;br /&gt;
==== Archiving and compression tools ====&lt;br /&gt;
&lt;br /&gt;
For archiving and compression command-line tools, see [[アーカイブと圧縮]].&lt;br /&gt;
&lt;br /&gt;
===== Archive managers =====&lt;br /&gt;
&lt;br /&gt;
* {{App|360zip|A proprietary archiving tool.|https://yasuo.360.cn/|{{AUR|360zip}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Ark (software)|Ark]]|KDE デスクトップのアーカイブツール。|https://apps.kde.org/ark/|{{Pkg|ark}}}}&lt;br /&gt;
* {{App|Arqiver|Simple Qt archive manager based on libarchive.|https://github.com/tsujan/Arqiver|{{AUR|arqiver-git}}}}&lt;br /&gt;
* {{App|CoreArchiver|Simple file compressing/extracting utility based on Qt and libarchive-qt. Part of C-Suite.|https://cubocore.org/|{{AUR|corearchiver}}}}&lt;br /&gt;
* {{App|Deepin Archive Manager|Fast and lightweight application for creating and extracting archives.|https://github.com/linuxdeepin/deepin-compressor|{{Pkg|deepin-compressor}}}}&lt;br /&gt;
* {{App|Engrampa|[[MATE]] のアーカイブマネージャ。|https://github.com/mate-desktop/engrampa|{{Pkg|engrampa}}}}&lt;br /&gt;
* {{App|[[Wikipedia:GNOME Archive Manager|GNOME Archive Manager]]|GNOME のデフォルト圧縮ファイルマネージャ (previously File Roller).|https://wiki.gnome.org/Apps/FileRoller|{{Pkg|file-roller}}}}&lt;br /&gt;
* {{App|LXQt File Archiver|Simple and lightweight desktop-agnostic Qt file archiver.|https://github.com/lxqt/lxqt-archiver|{{Pkg|lxqt-archiver}}}}&lt;br /&gt;
* {{App|p7zip-gui|The GUI belonging to the p7zip software.|http://p7zip.sourceforge.net/|{{AUR|p7zip-gui}}}}&lt;br /&gt;
* {{App|[[Wikipedia:PeaZip|PeaZip]]|オープンソースのファイル・アーカイブマネージャ。|https://www.peazip.org/peazip-linux.html|GTK: {{AUR|peazip-gtk2-bin}}, Qt: {{AUR|peazip-qt-bin}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Xarchiver|Xarchiver]]|GTK で作られた軽量なデスクトップ非依存のアーカイブマネージャ。|https://github.com/ib/xarchiver|GTK 3: {{Pkg|xarchiver}}, GTK 2: {{Pkg|xarchiver-gtk2}}}}&lt;br /&gt;
&lt;br /&gt;
==== Comparison, diff, merge ====&lt;br /&gt;
&lt;br /&gt;
See also [[Wikipedia:Comparison of file comparison tools]].&lt;br /&gt;
&lt;br /&gt;
For managing &#039;&#039;pacnew&#039;&#039;/&#039;&#039;pacsave&#039;&#039; files, specialised tools exist. See [[Pacnew と Pacsave ファイル#.pac* ファイルの管理]].&lt;br /&gt;
&lt;br /&gt;
===== Console =====&lt;br /&gt;
&lt;br /&gt;
See {{man|1|diff}} from {{Pkg|diffutils}} and [[Core utilities#diff alternatives|its alternatives]].&lt;br /&gt;
&lt;br /&gt;
* {{App|colordiff|&#039;diff&#039; の Perl スクリプトラッパー。同じ出力にシンタックスハイライトを追加。|https://www.colordiff.org/|{{Pkg|colordiff}}}}&lt;br /&gt;
* {{App|diffr|A Rust utility to pretty-print diff with highlighting at word-level for ease of review.|https://github.com/mookid/diffr|{{aur|diffr}}}}&lt;br /&gt;
* {{App|ydiff|A Python wrapper to get highlighted diff output from stdin or VCS-tracked file/dirs, in either unfied or side-by-side view.|https://github.com/ymattw/ydiff|{{AUR|ydiff}}}}&lt;br /&gt;
* {{App|delta|A diff viewer written in Rust with syntax highlighting.|https://github.com/dandavison/delta|{{Pkg|git-delta}}}}&lt;br /&gt;
* {{App|diff-so-fancy|A diff output decorator. It does not calculate the diff, it only decorates it.|https://github.com/so-fancy/diff-so-fancy|{{Pkg|diff-so-fancy}}}}&lt;br /&gt;
&lt;br /&gt;
===== Graphical =====&lt;br /&gt;
&lt;br /&gt;
* {{App|DiffPDF|Compare the text or the visual appearance of each page in two PDF files.|https://gitlab.com/eang/diffpdf|{{Pkg|diffpdf}}}}&lt;br /&gt;
* {{App|Diffuse|Python で書かれた小さくてシンプルなテキストマージツール。|http://diffuse.sourceforge.net/|{{Pkg|diffuse}}}}&lt;br /&gt;
* {{App|KDiff3|KDE デスクトップのファイルとディレクトリの比較・マージツール。|https://apps.kde.org/kdiff3/|{{Pkg|kdiff3}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Kompare|Kompare]]|ソースファイルの差を回覧・マージするための GUI フロントエンドプログラム。様々な diff フォーマットをサポートし、表示する情報レベルをカスタマイズするための多くのオプションがある。|https://apps.kde.org/kompare/|{{Pkg|kompare}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Meld (software)|Meld]]|ビジュアル比較・マージツール。ファイル・ディレクトリ・プロジェクトのバージョンの比較が可能。|https://meldmerge.org/|{{Pkg|meld}}}}&lt;br /&gt;
* {{App|xxdiff|ファイルやディレクトリの差異を表示するグラフィカルブラウザ。|https://furius.ca/xxdiff/|{{AUR|xxdiff}}}}&lt;br /&gt;
&lt;br /&gt;
[[Vim]] と [[Emacs]] にはそれぞれ [[Vim#ファイルのマージ (vimdiff)|vimdiff]] と {{ic|ediff}} というマージ機能があります。&lt;br /&gt;
&lt;br /&gt;
==== バッチ処理リネームプログラム ====&lt;br /&gt;
&lt;br /&gt;
===== Console =====&lt;br /&gt;
&lt;br /&gt;
See {{man|1|rename}} from {{Pkg|util-linux}}.&lt;br /&gt;
&lt;br /&gt;
* {{App|edir|Rename, delete, and copy files and directories using your editor (enhanced vidir).|https://github.com/bulletmark/edir|{{AUR|edir}}}}&lt;br /&gt;
* {{App|f2|Cross-platform command-line tool for batch renaming files and directories quickly and safely, can also rename files based on audio tags.|https://github.com/ayoisaiah/f2|{{AUR|f2}}}}&lt;br /&gt;
* {{App|rename.pl|perl regex ベースのバッチリネーマー。|https://search.cpan.org/~pederst/rename/|{{Pkg|perl-rename}}}}&lt;br /&gt;
* {{App|vidir|Rename and delete files and directories using your editor.|https://linux.die.net/man/1/vidir|{{AUR|vidir}}}}&lt;br /&gt;
&lt;br /&gt;
===== Graphical =====&lt;br /&gt;
* {{App|Caja-Rename|Batch renaming extension for Caja.|https://tari.in/www/software/caja-rename|{{AUR|caja-rename}}}}&lt;br /&gt;
* {{App|CoreRenamer|Simple lightweight batch file renamer application. Part of C-Suite.|https://cubocore.org/|{{AUR|corerenamer}}}}&lt;br /&gt;
* {{App|[[Wikipedia:GPRename|GPRename]]|ファイルとディレクトリの名前を変える GTK バッチ処理プログラム。|http://gprename.sourceforge.net|{{Pkg|gprename}}}}&lt;br /&gt;
* {{App|[[Wikipedia:KRename|KRename]]|KDE デスクトップ向けのとてもパワフルなバッチ処理リネームプログラム。|https://apps.kde.org/krename/|{{Pkg|krename}}}}&lt;br /&gt;
* {{App|metamorphose2|wxPython ベースのバッチリネーマーで、正規表現や、メタデータによるマルチメディアファイルの名前変更などをサポートしています。|http://file-folder-ren.sourceforge.net|{{AUR|metamorphose2}}}}&lt;br /&gt;
* {{App|[[Thunar]] Bulk Rename|Change the name of multiple files at once using some criterion that applies to at least one of the files. Run with {{ic|thunar -B}}.|https://docs.xfce.org/xfce/thunar/bulk-renamer/start|{{Pkg|thunar}}}}&lt;br /&gt;
&lt;br /&gt;
==== ファイル検索 ====&lt;br /&gt;
&lt;br /&gt;
This section lists utilities for file searching based on filename, file path or metadata. For full-text searching, see the next section.&lt;br /&gt;
&lt;br /&gt;
See also [[Wikipedia:List of search engines#Desktop search engines]].&lt;br /&gt;
&lt;br /&gt;
===== Console =====&lt;br /&gt;
&lt;br /&gt;
See {{man|1|find}} from {{Pkg|findutils}} and [[Core utilities#find alternatives|its alternatives]].&lt;br /&gt;
&lt;br /&gt;
===== Graphical =====&lt;br /&gt;
&lt;br /&gt;
* {{App|Catfish|多目的のファイル検索ツール by Xfce, can be powered by find, locate and Zeitgeist.|https://launchpad.net/catfish-search|{{Pkg|catfish}}}}&lt;br /&gt;
* {{App|CoreHunt|Easy to use fast file searching tool with categorized search and search history. Part of C-Suite.|https://cubocore.org/|{{AUR|corehunt}}}}&lt;br /&gt;
* {{App|GNOME Search Tool|ファイルを検索する Gnome ユーティリティ, depends on [[GNOME Files]].|https://gitlab.gnome.org/GNOME/gnome-search-tool|{{Pkg|gnome-search-tool}}}}&lt;br /&gt;
* {{App|KFind|Search tool for KDE to find files by name, type or content. Has internal search and supports locate.|https://apps.kde.org/kfind/|{{Pkg|kfind}}}}&lt;br /&gt;
* {{App|MATE Search Tool|MATE utility to search for files.|https://github.com/mate-desktop/mate-utils|{{Pkg|mate-utils}}}}&lt;br /&gt;
* {{App|regexxer|Interactive search and replace tool featuring Perl-style regular expressions.|http://regexxer.sourceforge.net/|{{Pkg|regexxer}}}}&lt;br /&gt;
* {{App|Searchmonkey|正規表現が使えるパワフルな GUI 検索ユーティリティ。|https://sourceforge.net/projects/searchmonkey/|{{AUR|searchmonkey}}{{Broken package link|package not found}}}}&lt;br /&gt;
&lt;br /&gt;
====== File indexers ======&lt;br /&gt;
&lt;br /&gt;
These programs index your files to allow for quick searching.&lt;br /&gt;
&lt;br /&gt;
* {{App|Basenji|Volume indexing tool designed for easy and fast indexing of CD/DVD and other type of volume collections.|https://github.com/pulb/basenji|{{AUR|basenji}}}}&lt;br /&gt;
* {{App|fsearch|A fast file search utility for Unix-like systems based on GTK 3.|https://github.com/cboxdoerfer/fsearch|{{AUR|fsearch-git}}}}&lt;br /&gt;
&lt;br /&gt;
==== Full-text searching ====&lt;br /&gt;
&lt;br /&gt;
See {{man|1|grep}} from {{Pkg|grep}} and [[Core utilities#grep alternatives|its alternatives]], which provide non-indexed [[Wikipedia:Full-text search|full-text search]].&lt;br /&gt;
&lt;br /&gt;
===== Full-text indexers =====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Baloo]]|KDE のファイルインデックス作成・検索ソリューション, has a CLI and is used by [[KRunner]].|https://community.kde.org/Baloo|{{Pkg|baloo}}}}&lt;br /&gt;
* {{App|[[Wikipedia:DocFetcher|DocFetcher]]|Graphical Java デスクトップ検索アプリケーション。|http://docfetcher.sourceforge.net|{{AUR|docfetcher}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Recoll|Recoll]]|Xapian がバックエンドのフルテキスト検索ツール, has CLI and GUI.|https://lesbonscomptes.com/recoll/|{{Pkg|recoll}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Tracker (search software)|Tracker]]|オールインワンのインデックス作成・検索ツールとメタデータのデータベース, used by [[GNOME]] Documents, Music, Photos and Videos.|https://gnome.pages.gitlab.gnome.org/tracker/|{{Pkg|tracker}}, {{Pkg|tracker3}}}}&lt;br /&gt;
* {{App|[[Zeitgeist]]|Event aggregation framework for the user&#039;s activities and notifications (files opened, websites visited, conversations had, etc.), has several third-party front-ends.|https://launchpad.net/zeitgeist-project|{{Pkg|zeitgeist}}}}&lt;br /&gt;
&lt;br /&gt;
=== Development ===&lt;br /&gt;
&lt;br /&gt;
==== Code forges ====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[GitLab]]|Project management and code hosting application.|https://gitlab.com/gitlab-org/gitlab-foss|{{Pkg|gitlab}}}}&lt;br /&gt;
* {{App|[[Gitea]]|Painless self-hosted Git service. Community managed fork of Gogs.|https://gitea.io|{{Pkg|gitea}}}}&lt;br /&gt;
&lt;br /&gt;
===== Code forge clients =====&lt;br /&gt;
&lt;br /&gt;
* {{App|git-open|Open a repo website (GitHub, GitLab, Bitbucket) in your browser|https://github.com/paulirish/git-open|{{AUR|git-open}}}}&lt;br /&gt;
* {{App|github-cli|GitHub&#039;s official command line tool|https://github.com/cli/cli|{{Pkg|github-cli}}}}&lt;br /&gt;
* {{App|hub|Command line interface for GitHub|https://hub.github.com|{{Pkg|hub}}}}&lt;br /&gt;
* {{App|lab|A hub-like tool for GitLab|https://zaquestion.github.io/lab/|{{AUR|lab-bin}}}}&lt;br /&gt;
* {{App|snippet|A terminal based interface to create a new GitLab snippet|https://gitlab.com/zj/snippet|{{AUR|snippet}}}}&lt;br /&gt;
&lt;br /&gt;
==== バージョン管理システム ====&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Comparison of revision control software]] も参照してください。&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Bazaar]]|Distributed version control system that helps you track project history over time and to collaborate easily with others.|https://bazaar.canonical.com/|{{AUR|bzr}}}}&lt;br /&gt;
* {{App|[[CVS]]|Concurrent Versions System, a client-server revision control system.|http://cvs.nongnu.org/|{{Pkg|cvs}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Darcs|Darcs]]|Distributed revision control system that was designed to replace traditional, centralized source control systems such as CVS and Subversion.|http://darcs.net/|{{Pkg|darcs}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Fossil (software)|Fossil]]|Distributed VCS with bug tracking, wiki, forum, and technotes.|https://www.fossil-scm.org/|{{Pkg|fossil}}}}&lt;br /&gt;
* {{App|[[Git]]|Distributed revision control and source code management system with an emphasis on speed.|https://git-scm.com/|{{Pkg|git}}}}&lt;br /&gt;
* {{App|[[Mercurial]]|Distributed version control system written in Python and similar in many ways to Git.|https://www.mercurial-scm.org/|{{Pkg|mercurial}}}}&lt;br /&gt;
* {{App|[[Subversion]]|Full-featured centralized version control system originally designed to be a better CVS.|https://subversion.apache.org/|{{Pkg|subversion}}}}&lt;br /&gt;
&lt;br /&gt;
==== ビルド自動化 ====&lt;br /&gt;
&lt;br /&gt;
See also [[Wikipedia:List of build automation software]].&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:Apache Ant|Apache Ant]]|Java ライブラリとコマンドラインツール。相互に依存するターゲットや拡張ポイントにあわせてビルドファイルに書かれている手順を実行します。|https://ant.apache.org/|{{Pkg|ant}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Apache Maven|Apache Maven]]|Build automation tool used primarily for Java.|https://maven.apache.org/|{{Pkg|maven}}}}&lt;br /&gt;
* {{App|[[Wikipedia:CMake|CMake]]|ソフトウェアをビルド、テスト、パッケージ化するためのツール群。|https://cmake.org/|{{Pkg|cmake}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Make (software)|GNU make]]|プログラムのグループを管理するための、GNU make ユーティリティ。|https://www.gnu.org/software/make/|{{Pkg|make}} ({{Grp|base-devel}} の一部)}}&lt;br /&gt;
* {{App|[[Wikipedia:Meson (software)|Meson]]|Extremely fast and user friendly build system.|https://mesonbuild.com/|{{Pkg|meson}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Gradle|Gradle]]|JVM の強力なビルドシステム。|https://gradle.org/|{{Pkg|gradle}}}}&lt;br /&gt;
* {{App|Phing|あらゆる作業を自動化する PHP プログラム。|https://www.phing.info/|{{AUR|phing}}}}&lt;br /&gt;
&lt;br /&gt;
==== 統合開発環境 ====&lt;br /&gt;
&lt;br /&gt;
See also [[Wikipedia:Comparison of integrated development environments]].&lt;br /&gt;
&lt;br /&gt;
For PHP specific list, see [[PHP#Development tools]].&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Android Studio]]|The official Android development environment based on IntelliJ IDEA.|https://developer.android.com/studio/index.html|{{AUR|android-studio}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Anjuta|Anjuta]]|プロジェクト管理、アプリケーションウィザード、インタラクティブデバッガ、ソースエディタ、バージョンコントロールなど多数のツールを備えた多目的 IDE。|http://anjuta.org/|{{Pkg|anjuta}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Aptana#Aptana_Studio|Aptana Studio]]|ウェブ開発を対象にしている Eclipse ベースの IDE。HTML, CSS, Javascript, Ruby on Rails, PHP, Adobe AIR などをサポート。|http://www.aptana.com/|{{AUR|aptana-studio}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Bluefish (software)|Bluefish]]|Powerful editor targeted towards programmers and webdevelopers, with many options to write websites, scripts and programming code. It supports many programming and markup languages.|http://bluefish.openoffice.nl/|{{Pkg|bluefish}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Code::Blocks|Code::Blocks]]|C, C++ and Fortran IDE built to meet the most demanding needs of its users. It is designed to be very extensible and fully configurable.|https://codeblocks.org/|{{Pkg|codeblocks}}}}&lt;br /&gt;
* {{App|[[Wikipedia:JetBrains#CLion|CLion]]|A cross-platform IDE for C and C++.|https://www.jetbrains.com/clion/|{{AUR|clion}}}}&lt;br /&gt;
* {{App|[[Wikipedia:CodeLite|CodeLite]]|C++ で書かれた C/C++/PHP/Node.js のオープンソースなクロスプラットフォーム IDE。|https://codelite.org/|{{AUR|codelite}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Cloud9 IDE|Cloud9]]|ブラウザやクラウドで動く最新の IDE、どこでも・いつでもアプリケーションを実行・デバッグ・開発できます。|https://c9.io/|{{AUR|c9.core}}{{Broken package link|package not found}}}}&lt;br /&gt;
* {{App|[[Eclipse]]|IDE for Java, C/C++, PHP, Perl and Python with subversion support and task management.|https://www.eclipse.org/|Java EE: {{AUR|eclipse-jee}}, Java: {{AUR|eclipse-java}}, C/C++: {{AUR|eclipse-cpp}}, PHP: {{AUR|eclipse-php}}, JavaScript and Web: {{AUR|eclipse-javascript}}{{Broken package link|package not found}}, Rust: {{AUR|eclipse-rust}}{{Broken package link|package not found}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Eric (software)|Eric]]|PyQt5 によるフル機能の Python / Ruby IDE。|https://eric-ide.python-projects.org/|{{AUR|eric}}}}&lt;br /&gt;
* {{App|[[Gambas]]|Basic インタプリタをベースにオブジェクト指向の拡張を加えたフリーの開発環境。|http://gambas.sourceforge.net/en/main.html|{{Pkg|gambas3-ide}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Geany|Geany]]|Small and lightweight IDE with many supported many programming and markup languages including C, Java, PHP, HTML, Python, Perl, Pascal.|https://geany.org/|{{Pkg|geany}}}}&lt;br /&gt;
* {{App|[[Wikipedia:GNOME Builder|GNOME Builder]]|Tool to write and contribute to great GNOME-based applications.|https://wiki.gnome.org/Apps/Builder|{{Pkg|gnome-builder}}}}&lt;br /&gt;
* {{App|[[Wikipedia:KDevelop|KDevelop]]|機能豊富なプラグインを使うことができる C/C++ などのプログラミング言語の IDE。|https://www.kdevelop.org/|{{Pkg|kdevelop}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Komodo_Edit|Komodo Edit]]|フリーの、多言語エディタ。|https://www.activestate.com/products/komodo-edit/|{{AUR|komodo-edit}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Lazarus (IDE)|Lazarus]]|Delphi (Object Pascal) compatible IDE for Rapid Application Development. It has variety of components ready for use and a graphical form designer to easily create complex graphical user interfaces.|https://www.lazarus-ide.org/|{{Pkg|lazarus}}}}&lt;br /&gt;
* {{App|LiteIDE|シンプルな Go の IDE。|https://github.com/visualfc/liteide|{{Pkg|liteide}}}}&lt;br /&gt;
* {{App|[[Wikipedia:MPLAB|MPLAB]]|Microchip PIC と dsPIC 開発のための IDE。|https://www.microchip.com/mplabx|{{AUR|microchip-mplabx-bin}}}}&lt;br /&gt;
* {{App|[[Netbeans]]|Java, JavaScript, PHP, Python, Ruby, Groovy, C, C++, Scala, Clojure などの言語で開発するための統合開発環境 (IDE)。|https://netbeans.org/|{{Pkg|netbeans}}}}&lt;br /&gt;
* {{App|[[Wikipedia:PhpStorm|PhpStorm]]|JetBrains PhpStorm は PHP 向けの商用のクロスプラットフォーム IDE です。JetBrains の IntelliJ IDEA プラットフォームの上で動作し、providing an editor for PHP, HTML and JavaScript with PHP や JavaScript コードをオンザフライでコード解析したり、エラー補正や自動リファクタリングが行えるエディタを提供します。|https://www.jetbrains.com/phpstorm/|{{Aur|phpstorm}} {{Aur|phpstorm-eap}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Qt Creator|Qt Creator]]|Qt での開発に焦点をおいた軽量なクロスプラットフォームの C++ 統合開発環境。|https://www.qt.io/ide/|{{Pkg|qtcreator}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Eclipse_Theia|Theia]]|Eclipse Theia is a free and open-source IDE for desktop and web applications. It is implemented in TypeScript, is based on Visual Studio Code, and emphasizes extensibility. It can be run as a web or a desktop application.|https://theia-ide.org/|{{AUR|theia-electron}}}}&lt;br /&gt;
* {{App|[[Visual Studio Code]]|Visual Studio Code is a cross-platform, free and open-source text editor developed by Microsoft, written in JavaScript and TypeScript. It supports a variety of languages thanks to its extensions.|https://code.visualstudio.com/|{{Pkg|code}} {{AUR|visual-studio-code-bin}}}}&lt;br /&gt;
* {{App|VSCodium|Free/Libre Open Source Software Binaries of VSCode.|https://vscodium.com/|{{AUR|vscodium-bin}}}}&lt;br /&gt;
&lt;br /&gt;
===== Java IDEs =====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:BlueJ|BlueJ]]|教育や初心者が主に使うことを目的とした完全な機能を備えた Java IDE。|https://bluej.org/|{{AUR|bluej}}}}&lt;br /&gt;
* {{App|[[Wikipedia:IntelliJ IDEA|IntelliJ IDEA]]|高度なリファクタリング機能を持つ Java, Groovy などのプログラミング言語向けの IDE。|https://www.jetbrains.com/idea/|{{Pkg|intellij-idea-community-edition}}}}&lt;br /&gt;
&lt;br /&gt;
===== Python IDEs =====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:Ninja-IDE|Ninja-IDE]]|IDE for Python development.|http://ninja-ide.org/|{{AUR|ninja-ide}}}}&lt;br /&gt;
* {{App|[[Wikipedia:PyCharm|PyCharm]]|Python でのプログラミングに使われる IDE。コード解析、デバッグ、ユニットテスト、バージョンコントロール、Django によるウェブ開発をサポート。|https://www.jetbrains.com/pycharm/|community edition: {{Pkg|pycharm-community-edition}}, professional edition: {{AUR|pycharm-professional}}, edu edition: {{AUR|pycharm-edu}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Spyder (software)|Spyder]]|MATLAB のような機能を提供する科学用 Python 開発環境。|https://github.com/spyder-ide/spyder|{{Pkg|spyder}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Thonny|Thonny]]|初心者向けの Python IDE。|https://thonny.org/|{{AUR|thonny}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Wing IDE|WingIDE]]|Proprietary Python development environment. It is fully featured and meant for professional use.|https://wingware.com/|{{Aur|wingide}}}}&lt;br /&gt;
&lt;br /&gt;
===== Rust IDEs =====&lt;br /&gt;
&lt;br /&gt;
See also: [https://www.rust-lang.org/tools]&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:IntelliJ IDEA|IntelliJ IDEA]]|IDE for Java, Groovy and other programming languages with advanced refactoring features.|https://www.jetbrains.com/idea/|{{Pkg|intellij-idea-community-edition}}}} Install the [https://plugins.jetbrains.com/plugin/8182-rust rust plugin].&lt;br /&gt;
* {{App|[[Visual Studio Code]]|Visual Studio Code is a cross-platform, free and open-source text editor developed by Microsoft, written in JavaScript and TypeScript. It supports a variety of languages thanks to its extensions.|https://code.visualstudio.com/|{{Pkg|code}} {{AUR|visual-studio-code-bin}}}} Install the [https://marketplace.visualstudio.com/items?itemName=rust-lang.rust rust extension].&lt;br /&gt;
* {{App|VSCodium|Free/Libre Open Source Software Binaries of VSCode.|https://vscodium.com/|{{AUR|vscodium-bin}}}}&lt;br /&gt;
&lt;br /&gt;
===== Educational IDEs =====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:Etoys (programming language)|Etoys]]|Educational tool and media-rich authoring environment for teaching children.|http://squeakland.org/|{{AUR|etoys}}{{Broken package link|package not found}}}}&lt;br /&gt;
* {{App|[[Wikipedia:KTurtle|KTurtle]]|Educational programming environment that aims to make learning how to program as easily as possible. Part of {{Grp|kde-education}}.|https://apps.kde.org/kturtle/|{{Pkg|kturtle}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Processing (programming language)|Processing]]|Playground for teaching non-programmers the fundamentals of computer programming in a visual context.|https://processing.org/|{{AUR|processing}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Scratch (programming language)|Scratch]]|インタラクティブなプロジェクトやシンプルなスプライトベースのゲームを作成できる、教育とエンターテイメント用の programming system and content development tool。[[Wikipedia:ja:イベント駆動型プログラミング|イベント駆動型プログラミング]]のエントリのように初心者 (子供など) を主に対象としています。|https://scratch.mit.edu/|{{Pkg|scratch}}}}&lt;br /&gt;
&lt;br /&gt;
==== Debuggers ====&lt;br /&gt;
&lt;br /&gt;
* {{App|Accerciser|Interactive Python accessibility explorer. It uses the AT-SPI library to inspect, examine, and interact with widgets, allowing you to check if an application is providing correct information to assistive technologies and automated testing frameworks.|https://wiki.gnome.org/Apps/Accerciser|{{Pkg|accerciser}}}}&lt;br /&gt;
* {{App|Bustle|Draws sequence diagrams of D-Bus activity. It shows signal emissions, method calls and their corresponding returns, with time stamps for each individual event and the duration of each method call.|https://www.freedesktop.org/wiki/Software/Bustle/|{{AUR|bustle-git}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Data Display Debugger|Data Display Debugger]]|Graphical front-end for command-line debuggers such as GDB.|https://www.gnu.org/software/ddd/|{{AUR|ddd}}}}&lt;br /&gt;
* {{App|Desed|TUI-based debugger for sed. Features variable and regex preview, setting breakpoints and stepping back and forth.|https://github.com/SoptikHa2/desed|{{AUR|desed}}}}&lt;br /&gt;
* {{App|D-Feet|Easy to use D-Bus debugger to inspect D-Bus interfaces of running programs and invoke methods on those interfaces.|https://wiki.gnome.org/Apps/DFeet|{{Pkg|d-feet}}}}&lt;br /&gt;
* {{App|GammaRay|Qt-application inspection and manipulation tool.|https://www.kdab.com/development-resources/qt-tools/gammaray/|{{Pkg|gammaray}}}}&lt;br /&gt;
* {{App|KCachegrind|Profile data visualization tool, used to determine the most time consuming execution parts of program.|https://apps.kde.org/kcachegrind/|KDE: {{Pkg|kcachegrind}}, Qt: {{Pkg|qcachegrind}}}}&lt;br /&gt;
* {{App|[[Wikipedia:KDbg|KDbg]]|Graphical user interface to GDB, the GNU debugger. It provides an intuitive interface for setting breakpoints, inspecting variables, and stepping through code.|http://kdbg.org/|{{Pkg|kdbg}}}}&lt;br /&gt;
* {{App|Massif-Visualizer|Visualizer for Valgrind Massif data files.|https://apps.kde.org/massif-visualizer/|{{Pkg|massif-visualizer}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Nemiver|Nemiver]]|Easy to use standalone C/C++ debugger (GDB front-end) that integrates well in the GNOME environment.|https://wiki.gnome.org/Apps/Nemiver|{{Pkg|nemiver}}}}&lt;br /&gt;
* {{App|Qt QDbusViewer|Tool to introspect D-Bus objects and messages.|https://doc.qt.io/qt-5/qdbusviewer.html|{{Pkg|qt5-tools}}}}&lt;br /&gt;
* {{App|scanmem|Debugging utility designed to isolate the address of an arbitrary variable in an executing process.|https://github.com/scanmem/scanmem|CLI: {{Pkg|scanmem}}, GUI: {{Pkg|gameconqueror}}}}&lt;br /&gt;
* {{App|Sysprof|Profiling tool that helps in finding the functions in which a program uses most of its time.|https://wiki.gnome.org/Apps/Sysprof|{{Pkg|sysprof}}}}&lt;br /&gt;
&lt;br /&gt;
==== Lexing and parsing ====&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Lex (software)|Lex]] and [[Wikipedia:Yacc|Yacc]] are part of POSIX.&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:Flex (lexical analyser generator)|flex]]|A tool for generating text-scanning programs, alternative to Lex.|https://github.com/westes/flex|{{Pkg|flex}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Berkeley Yacc|Berkeley Yacc]]|Berkeley reimplementation of the Unix parser generator Yacc.|https://invisible-island.net/byacc/|{{Pkg|byacc}}}}&lt;br /&gt;
* {{App|[[Wikipedia:GNU bison|GNU Bison]]|The GNU general-purpose parser generator, alternative to &#039;&#039;byacc&#039;&#039;.|https://www.gnu.org/software/bison/|{{Pkg|bison}}}}&lt;br /&gt;
&lt;br /&gt;
And then there are also:&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:ANTLR|ANTLR]]|Parser generator, written in Java, for parsing structured text or binary files.|https://www.antlr.org/|{{Pkg|antlr4}}}}&lt;br /&gt;
* {{App|LPeg|Pattern-matching library, based on PEGs, for Lua.|http://www.inf.puc-rio.br/~roberto/lpeg/|{{Pkg|lua-lpeg}}, {{Pkg|lua52-lpeg}}, {{Pkg|lua51-lpeg}}}}&lt;br /&gt;
* {{App|peg/leg|Recursive-descent parser generators for C.|https://www.piumarta.com/software/peg/|{{Pkg|peg}}}}&lt;br /&gt;
* {{App|Ragel|Compiles finite state machines from regular languages into executable C, C++, Objective-C, or D code.|https://www.colm.net/open-source/ragel/|{{Pkg|ragel}}}}&lt;br /&gt;
&lt;br /&gt;
==== GUI builders ====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:FLUID|FLUID]]|FLTK GUI designer.|https://www.fltk.org/|{{Pkg|fltk}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Glade Interface Designer|Glade]]|Create or open user interface designs for GTK applications.|https://glade.gnome.org/|{{Pkg|glade}}}}&lt;br /&gt;
* {{App|KUIViewer|Quick viewer for Qt Designer UI File.|https://apps.kde.org/kuiviewer/|{{Pkg|kde-dev-utils}}}}&lt;br /&gt;
* {{App|Qt Designer|Tool for designing and building graphical user interfaces (GUIs) with Qt Widgets.|https://doc.qt.io/qt-5/qtdesigner-manual.html|{{Pkg|qt5-tools}}}}&lt;br /&gt;
&lt;br /&gt;
==== Hex editors ====&lt;br /&gt;
&lt;br /&gt;
See also [[Wikipedia:Comparison of hex editors]].&lt;br /&gt;
&lt;br /&gt;
* {{App|Bless|High quality, full featured hex editor.|https://web.archive.org/web/20170503150524/http://home.gna.org/bless/|{{Pkg|bless}}}}&lt;br /&gt;
* {{App|GHex|Hex editor for GNOME, which allows the user to load data from any file, view and edit it in either hex or ascii.|https://wiki.gnome.org/Apps/Ghex|{{Pkg|ghex}}}}&lt;br /&gt;
* {{App|hyx|Minimalistic but powerful console hex editor.|https://yx7.cc/code/|{{AUR|hyx}}}}&lt;br /&gt;
* {{App|Reverse Engineer&#039;s Hex Editor|Hex editor with features for analyzing and annotating binary file formats|https://github.com/solemnwarning/rehex|{{AUR|rehex}}}}&lt;br /&gt;
* {{App|Okteta|KDE hex editor for viewing and editing the raw data of files.|https://apps.kde.org/okteta/|{{Pkg|okteta}}}}&lt;br /&gt;
&lt;br /&gt;
==== JSON tools ====&lt;br /&gt;
&lt;br /&gt;
* {{App|gron|gron transforms JSON into discrete assignments to make it easier to grep.|https://github.com/tomnomnom/gron|{{AUR|gron-bin}}}}&lt;br /&gt;
* {{App|jid|JSON incremental digger|https://github.com/simeji/jid|{{AUR|jid}}}}&lt;br /&gt;
* {{App|jo|A command to create JSON.|https://github.com/jpmens/jo|{{AUR|jo-git}}}}&lt;br /&gt;
* {{App|jq|Command-line JSON processor|https://stedolan.github.io/jq/|{{Pkg|jq}}}}&lt;br /&gt;
* {{App|jshon|A JSON parser for the shell.|http://kmkeen.com/jshon/|{{Pkg|jshon}}}}&lt;br /&gt;
* the [[Elvish]] shell has built-in support for JSON&lt;br /&gt;
&lt;br /&gt;
==== Literate programming ====&lt;br /&gt;
&lt;br /&gt;
See also [[Wikipedia:Literate programming]].&lt;br /&gt;
&lt;br /&gt;
* {{App|Noweb|A Simple, Extensible Tool for Literate Programming build against ICON libs and texlive|https://www.cs.tufts.edu/~nr/noweb/|{{AUR|noweb}}}}&lt;br /&gt;
* {{App|nuweb|A Simple Literate Programming Tool|http://nuweb.sourceforge.net/|{{AUR|nuweb}}}}&lt;br /&gt;
&lt;br /&gt;
==== UML modelers ====&lt;br /&gt;
&lt;br /&gt;
See also [[Wikipedia:List of Unified Modeling Language tools]].&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:ArgoUML|ArgoUML]]|UML modeling tool with support for all standard UML 1.4 diagrams.|http://argouml.tigris.org/|{{AUR|argouml}}}}&lt;br /&gt;
* {{App|[[Eclipse]] Modeling Tools|Tools and runtimes for building model-based applications.|https://www.eclipse.org/|{{AUR|eclipse-modeling-tools}}}}&lt;br /&gt;
* {{App|Gaphor|Simple modeling tool for UML.|https://github.com/gaphor/gaphor|{{AUR|python-gaphor}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Modelio|Modelio]]|Modeling environment supporting the main standards: UML, BPMN, MDA, SysML.|https://www.modelio.org/|{{AUR|modelio-bin}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Papyrus (software)|Papyrus]]|Model-based engineering tool based on Eclipse.|https://www.eclipse.org/papyrus/|{{AUR|papyrus}}}}&lt;br /&gt;
* {{App|[[Wikipedia:PlantUML|PlantUML]]|Tool to create UML diagrams from a plain text language.|https://plantuml.com|{{Pkg|plantuml}}}}&lt;br /&gt;
* {{App|PlantUML QEditor|PlantUML editor written in Qt.|https://github.com/borco/plantumlqeditor|{{AUR|plantumlqeditor-git}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Umbrello UML Modeller|Umbrello]]|Unified Modelling Language (UML) diagram program based on KDE Technology.|https://umbrello.kde.org/|{{Pkg|umbrello}}}}&lt;br /&gt;
* {{App|[[Wikipedia:UML Designer|UML Designer]]|Graphical tool based on Eclipse to edit and visualize UML models.|https://www.umldesigner.org/|{{AUR|umldesigner}}}}&lt;br /&gt;
* {{App|[[Wikipedia:UMLet|UMLet]]|UML tool with a simple user interface: draw UML diagrams fast, build sequence and activity diagrams from plain text, export diagrams to eps, pdf, jpg, svg, and clipboard, share diagrams using Eclipse, and create new, custom UML elements.|https://umlet.com/|{{AUR|umlet}}}}&lt;br /&gt;
* {{App|UML/INTERLIS-editor|Facilitate the application of the model driven approach to a greater number of users.|http://www.umleditor.org/|{{AUR|umleditor}}}}&lt;br /&gt;
* {{App|Violet|Very easy to learn and use UML editor that draws nice-looking diagrams.|https://sourceforge.net/projects/violet/|{{AUR|violetumleditor}}}}&lt;br /&gt;
&lt;br /&gt;
==== API documentation browsers ====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:GNOME Devhelp|Devhelp]]|Developer tool for browsing and searching API documentation.|https://wiki.gnome.org/Apps/Devhelp|{{Pkg|devhelp}}}}&lt;br /&gt;
* {{App|Doc Browser|API documentation browser with support for DevDocs and Hoogle.|https://github.com/qwfy/doc-browser|{{AUR|doc-browser-git}}}}&lt;br /&gt;
* {{App|Qt Assistant|Tool for viewing on-line documentation in Qt help file format.|https://doc.qt.io/qt-5/qtassistant-index.html|{{Pkg|qt5-tools}}}}&lt;br /&gt;
* {{App|quickDocs|Fast developer docs reader for reading Valadoc and DevDocs.|https://github.com/mdh34/quickDocs|{{AUR|quickdocs}}}}&lt;br /&gt;
* {{App|Zeal|Offline API documentation browser for software developers.|https://zealdocs.org/|{{AUR|zeal}}}}&lt;br /&gt;
&lt;br /&gt;
==== 課題追跡システム ====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Bugzilla]]|Mozilla によるバグトラッカー。|https://www.bugzilla.org|{{Pkg|bugzilla}}}}&lt;br /&gt;
* {{App|[[Flyspray]]|PHP で書かれた軽量なウェブベースのバグ追跡システム|https://www.flyspray.org/|{{Pkg|flyspray}}}}&lt;br /&gt;
* {{App|[[MantisBT]]|ウェブベースの課題追跡システム|https://www.mantisbt.org/|{{AUR|mantisbt}}}}&lt;br /&gt;
* {{App|[[Redmine]]|柔軟なプロジェクト管理のためのウェブアプリケーション。Ruby on Rails を使用して書かれており、クロスプラットフォームおよびクロスデータベース対応。|https://www.redmine.org|{{Pkg|redmine}}}}&lt;br /&gt;
* {{App|[[Request Tracker]] (RT)|オープンソースの代表的な課題追跡システム。|https://bestpractical.com/rt/|{{AUR|rt}}{{Broken package link|package not found}}}}&lt;br /&gt;
* {{App|[[Trac]]|Apache と Subversion を使用する統合 SCM &amp;amp; プロジェクト管理システム。|https://trac.edgewall.org/|{{AUR|trac}}}}&lt;br /&gt;
&lt;br /&gt;
[[:en:Git server#Advanced web applications]] を参照。&lt;br /&gt;
&lt;br /&gt;
==== コードレビュー ====&lt;br /&gt;
&lt;br /&gt;
* {{App|Gerrit|Git バージョン管理システム上に構築されたウェブベースのコードレビュー ツール|https://www.gerritcodereview.com/|{{AUR|gerrit}}}}&lt;br /&gt;
* [[GitLab]] もコードレビューをサポートしています。&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:List of tools for code review]] も参照してください。&lt;br /&gt;
&lt;br /&gt;
==== ゲーム開発 ====&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:List of game engines]] も参照してください。&lt;br /&gt;
&lt;br /&gt;
* {{App|GDevelop|プログラミングスキルが不要で、誰でも使用できるゲーム作成ツール。|https://gdevelop-app.com/|{{AUR|gdevelop}}}}&lt;br /&gt;
* {{App|[[:en:Godot]]|高度で機能満載のマルチプラットフォーム対応の 2D および 3D ゲームエンジン。Godot の独自のアプローチを使用して、簡単にゲームを作成できます。|https://godotengine.org/|{{Pkg|godot}}}}&lt;br /&gt;
* {{App|LibreSprite|アニメーションスプライトエディタおよびピクセルアートツールで、ビデオゲーム用の 2D アニメーションを作成できます。|https://github.com/LibreSprite/LibreSprite|{{AUR|libresprite}}}}&lt;br /&gt;
* {{App|Pixelorama|Orama Interactive によって Godot Engine と GDScript を使用して作成された、アニメーション対応の 2D スプライトエディタ。|https://www.orama-interactive.com/pixelorama{{Dead link|2021|05|17|status=404}}|{{AUR|pixelorama-bin}}}}&lt;br /&gt;
* {{App|Tiled|強力なタイルマップ編集機能を備えた汎用の 2D レベルエディタ。使いやすさを重視して設計されており、多くのタイプのゲームに適しています。|https://www.mapeditor.org/|{{Pkg|tiled}}}}&lt;br /&gt;
* {{App|[[Unity3D|Unity]]|Unity は、マルチプラットフォームの 3D および 2D ゲームを作成するための柔軟で強力な開発プラットフォームです。プロプライエタリですが、特定の使用例には無料バージョンが利用可能です（詳細は[https://store.unity.com/compare-plans こちら]をご覧ください）。|https://unity3d.com/unity|{{AUR|unity-editor}}}}&lt;br /&gt;
&lt;br /&gt;
==== Repository managers ====&lt;br /&gt;
&lt;br /&gt;
{{Style|Redirects to company blogs should not be here.}}&lt;br /&gt;
&lt;br /&gt;
* {{App|Nexus 2|Nexus 2 Repository Manager (OSS)|https://www.sonatype.com/nexus-repository-oss|{{AUR|nexus}}}}&lt;br /&gt;
* {{App|Nexus 3|Nexus 3 Repository OSS|https://www.sonatype.com/nexus-repository-oss|{{AUR|nexus-oss}}}}&lt;br /&gt;
* {{App|Artifactory|Artifactory is an advanced Binary Repository Manager for use by build tools, dependency management tools and build servers|https://bintray.com/jfrog/product/JFrog-Artifactory-Oss/view|{{AUR|artifactory-oss}}}}&lt;br /&gt;
&lt;br /&gt;
=== Text input ===&lt;br /&gt;
&lt;br /&gt;
==== Character selectors ====&lt;br /&gt;
&lt;br /&gt;
* {{App|GNOME Characters|Character map application for GNOME.|https://gitlab.gnome.org/GNOME/gnome-characters|{{Pkg|gnome-characters}}}}&lt;br /&gt;
* {{App|[[Wikipedia:GNOME Character Map|gucharmap]]|GTK 3 character selector for GNOME.|https://wiki.gnome.org/Apps/Gucharmap|{{pkg|gucharmap}}}}&lt;br /&gt;
* {{App|KCharSelect|Tool to select special characters from all installed fonts and copy them into the clipboard. Part of {{Grp|kde-utilities}}.|https://apps.kde.org/kcharselect/|{{Pkg|kcharselect}}}}&lt;br /&gt;
&lt;br /&gt;
==== スクリーンキーボード ====&lt;br /&gt;
&lt;br /&gt;
* {{App|CellWriter|Grid-entry handwriting recognition input panel.|https://github.com/risujin/cellwriter|{{AUR|cellwriter}}}}&lt;br /&gt;
* {{App|CoreKeyboard|Simple X11 based Qt virtual keyboard with word suggestions. Part of C-Suite.|https://cubocore.org/|{{AUR|corekeyboard}}}}&lt;br /&gt;
* {{App|eekboard|Easy to use virtual keyboard toolkit.|https://github.com/ueno/eekboard|{{AUR|eekboard}}}}&lt;br /&gt;
* {{App|Florence|Extensible scalable on-screen virtual keyboard for GNOME that stays out of your way when not needed.|https://sourceforge.net/projects/florence/|{{AUR|florence}}}}&lt;br /&gt;
* {{App|Onboard|Onscreen keyboard useful for tablet PC users and for mobility impaired users.|https://launchpad.net/onboard|{{Pkg|onboard}}}}&lt;br /&gt;
* {{App|qtvkbd|Virtual keyboard written in Qt, a fork of kvkbd.|https://github.com/Alexander-r/qtvkbd|{{AUR|qtvkbd}}}}&lt;br /&gt;
* {{App|QVKbd|Virtual keyboard written in Qt.|https://github.com/KivApple/qvkbd|{{Pkg|qvkbd}}}}&lt;br /&gt;
* {{App|Squeekboard|GTK 3 virtual keyboard for [[Wayland]], written in Rust/C.|https://source.puri.sm/Librem5/squeekboard|{{AUR|squeekboard}}}}&lt;br /&gt;
* {{App|theShell On Screen Keyboard|Touchscreen keyboard for theShell.|https://github.com/vicr123/ts-kbd|{{AUR|ts-kbd}}}}&lt;br /&gt;
* {{App|xvkbd|Virtual keyboard for X window system.|http://t-sato.in.coocan.jp/xvkbd/|{{AUR|xvkbd}}}}&lt;br /&gt;
&lt;br /&gt;
==== キーボードレイアウトの切り替え ====&lt;br /&gt;
&lt;br /&gt;
* {{App|fbxkb|NETWM 互換のキーボードインジケータ・スイッチャー。システム領域にある現在のキーボードのフラグを表示し、他のキーボードに切り替えることが可能です。|http://fbxkb.sourceforge.net/|{{AUR|fbxkb}}}}&lt;br /&gt;
* {{App|xxkb|軽量なキーボードレイアウトインジケータ・スイッチャー。|https://sourceforge.net/projects/xxkb/|{{Pkg|xxkb}}}}&lt;br /&gt;
* {{App|gxkb|X11 keyboard layout indicator and switcher.|https://github.com/zen-tools/gxkb|{{Pkg|gxkb}}}}&lt;br /&gt;
* {{App|qxkb|Qt で書かれているキーボード切り替えアプリケーション。|https://github.com/disels/qxkb|{{AUR|qxkb}}}}&lt;br /&gt;
* {{App|[[Wikipedia:X Neural Switcher|X Neural Switcher]]|テキストアナライザ。入力の言語を検出して必要に応じてキーボードレイアウトを修正します。|https://xneur.ru/|{{AUR|gxneur}} (GUI)}}&lt;br /&gt;
&lt;br /&gt;
==== Keybinding managers ====&lt;br /&gt;
&lt;br /&gt;
See [[キーボードショートカット#Xorg]].&lt;br /&gt;
&lt;br /&gt;
==== インプットメソッド ====&lt;br /&gt;
&lt;br /&gt;
See the main article: [[インプットメソッド]].&lt;br /&gt;
&lt;br /&gt;
=== Disks ===&lt;br /&gt;
&lt;br /&gt;
==== パーティション分割ツール ====&lt;br /&gt;
&lt;br /&gt;
See [[パーティショニング#パーティショニングツール]].&lt;br /&gt;
&lt;br /&gt;
==== Formatting tools ====&lt;br /&gt;
&lt;br /&gt;
See [[ファイルシステム#ファイルシステムのタイプ]].&lt;br /&gt;
&lt;br /&gt;
==== Cloning tools ====&lt;br /&gt;
&lt;br /&gt;
See [[ディスクのクローン#ディスククローンソフトウェア]].&lt;br /&gt;
&lt;br /&gt;
==== マウントツール ====&lt;br /&gt;
&lt;br /&gt;
See also [[udisks#Mount helpers]].&lt;br /&gt;
&lt;br /&gt;
* {{App|9mount|9p ファイルシステムをマウント。|http://sqweek.net/code/9mount/|{{AUR|9mount}}}}&lt;br /&gt;
* {{App|cryptmount|暗号化されたファイルシステムを通常ユーザーでマウント。|https://sourceforge.net/projects/cryptmount/|{{AUR|cryptmount}}}}&lt;br /&gt;
* {{App|KDiskFree|Displays information about hard disks and other storage devices. It also allows to mount and unmount drives and view them in a file manager.|https://apps.kde.org/kdf/|{{Pkg|kdf}}}}&lt;br /&gt;
* {{App|ldm|&#039;&#039;udev&#039;&#039; を使ってドライブを自動的にマウントする軽量なデーモン。|https://github.com/LemonBoy/ldm|{{AUR|ldm}}}}&lt;br /&gt;
* {{App|pmount|通常ユーザーで&#039;&#039;ソース&#039;&#039;を自動的に作成する {{ic|/media/&#039;&#039;source_name&#039;&#039;}} にマウント。|[[Debian:pmount]]|{{AUR|pmount}}}}&lt;br /&gt;
* {{App|pmount-safe-removal|安全に取り除けるように通常ユーザーでリムーバブルデバイスをマウント。|https://mywaytoarch.tumblr.com/post/13111098534/pmount-safe-removal-of-usb-device|{{AUR|pmount-safe-removal}}}}&lt;br /&gt;
* {{App|udevil|通常ユーザーでリムーバブルデバイスをマウント。デバイス情報を表示して、デバイスの変更を監視。&#039;&#039;udev&#039;&#039; と glib にだけ依存。|https://ignorantguru.github.io/udevil|{{AUR|udevil}}}}&lt;br /&gt;
* {{App|ws|Windows ネットワーク共有をマウント ([[Wikipedia:Server Message Block|CIFS]] と [[Wikipedia:Virtual file system|VFS]])。|https://sourceforge.net/projects/winshares/|{{AUR|ws}}}}&lt;br /&gt;
* {{App|zulucrypt|暗号化ボリュームを作成・管理・マウントする cryptsetup の GUI フロントエンド。[[EncFS]] もサポート。|https://mhogomchungu.github.io/zuluCrypt/|{{AUR|zulucrypt}}}}&lt;br /&gt;
&lt;br /&gt;
==== ディスク使用量表示プログラム ====&lt;br /&gt;
&lt;br /&gt;
===== Console =====&lt;br /&gt;
&lt;br /&gt;
* {{App|duc|ディスク使用量を調査するためのライブラリとツールスイート。|https://duc.zevv.nl/|{{AUR|duc}}}}&lt;br /&gt;
* {{App|gdu|Disk usage analyzer with console interface written in Go.|https://github.com/Dundee/gdu|{{AUR|gdu}}}}&lt;br /&gt;
* {{App|gt5|差分が表示できる &amp;quot;du-browser&amp;quot;。|http://gt5.sourceforge.net|{{AUR|gt5}}}}&lt;br /&gt;
* {{App|ncdu|シンプルな ncurses ディスク使用量アナライザ。|https://dev.yorhel.nl/ncdu|{{Pkg|ncdu}}}}&lt;br /&gt;
&lt;br /&gt;
===== Graphical =====&lt;br /&gt;
* {{App|[[Wikipedia:Filelight|Filelight]]|コンピュータのディスク使用量を、リング状のマップに視覚化するディスク使用量アナライザ。|https://apps.kde.org/filelight/|{{Pkg|filelight}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Disk Usage Analyzer|GNOME Disk Usage Analyzer]]|[[GNOME]] デスクトップ用のディスク使用量アナライザ to check folder sizes and available disk space.|https://wiki.gnome.org/Apps/DiskUsageAnalyzer|{{Pkg|baobab}}}}&lt;br /&gt;
* {{App|Graphical Disk Map|ファイルやディレクトリサイズにあわせて長方形を表示するディスク使用量アナライザ。|http://gdmap.sourceforge.net/|{{Pkg|gdmap}}}}&lt;br /&gt;
* {{App|fsview (part of Konqueror)|KDE based disk usage analyzer that draws a map of rectangles sized according to file or dir sizes.|https://docs.kde.org/trunk5/en/konqueror/konqueror/view-extensions.html|{{Pkg|konqueror}}}}&lt;br /&gt;
* {{App|MATE Disk Usage Analyzer|Disk usage analyzing tool for MATE Desktop.|https://github.com/mate-desktop/mate-utils|{{Pkg|mate-utils}}}}&lt;br /&gt;
* {{App|qdirstat|Qt-based directory statistics (KDirStat/K4DirStat without any KDE - from the original KDirStat author).|https://github.com/shundhammer/qdirstat|{{AUR|qdirstat}}}}&lt;br /&gt;
&lt;br /&gt;
==== Disk health status ====&lt;br /&gt;
&lt;br /&gt;
See [[S.M.A.R.T.#GUI applications]].&lt;br /&gt;
&lt;br /&gt;
==== File recovery tools ====&lt;br /&gt;
&lt;br /&gt;
See [[ファイルリカバリ#List of utilities]].&lt;br /&gt;
&lt;br /&gt;
==== Disk cleaning ====&lt;br /&gt;
&lt;br /&gt;
===== Console =====&lt;br /&gt;
&lt;br /&gt;
* {{App|duff|A command-line utility for quickly finding duplicates in a given set of files.|https://github.com/elmindreda/duff|{{AUR|duff}}}}&lt;br /&gt;
* {{App|fclones|Very fast duplicate file Finder written in rust.|https://github.com/pkolaczk/fclones|{{AUR|fclones}}}}, {{AUR|fclones-git}}}}&lt;br /&gt;
* {{App|[[Wikipedia:fdupes|fdupes]]|Program for identifying or deleting duplicate files residing within specified directories.|https://github.com/adrianlopezroche/fdupes|{{Pkg|fdupes}}}}&lt;br /&gt;
* {{App|jdupes|Identify and take actions upon duplicate files.|https://github.com/jbruchon/jdupes|{{AUR|jdupes}}}}&lt;br /&gt;
* {{App|rdfind|Command line tool that finds duplicate files. It compares files based on their content.|https://github.com/pauldreik/rdfind|{{AUR|rdfind}}}}&lt;br /&gt;
* {{App|rmlint|重複するファイルを素早く見つけ出すツール (任意で削除も可能)。|https://github.com/sahib/rmlint|{{Pkg|rmlint}}}}&lt;br /&gt;
&lt;br /&gt;
===== Graphical =====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:BleachBit|BleachBit]]|ディスク容量を開けてプライバシーを守ります。キャッシュやクッキー、インターネット履歴、一時ファイル、ログなどを消去。|https://www.bleachbit.org/|{{Pkg|bleachbit}}}}&lt;br /&gt;
* {{App|dupeGuru|GUI tool to find duplicate files in a system.|https://dupeguru.voltaicideas.net/|{{AUR|dupeguru}}}}&lt;br /&gt;
* {{App|FSlint|A utility to find and clean various forms of lint on a filesystem.|https://www.pixelbeat.org/fslint/|{{AUR|fslint}}}}&lt;br /&gt;
* {{App|GConf Cleaner|gconf データベースに居座っている不必要な gconf キーを消去。|https://code.google.com/archive/p/gconf-cleaner/|{{AUR|gconf-cleaner}}}}&lt;br /&gt;
* {{App|Shredder|Graphical user interface for rmlint.|https://github.com/sahib/rmlint|{{Pkg|rmlint-shredder}}}}&lt;br /&gt;
* {{App|Sweeper|System cleaning utility for KDE.|https://apps.kde.org/sweeper/|{{Pkg|sweeper}}}}&lt;br /&gt;
&lt;br /&gt;
==== Disk image writing ====&lt;br /&gt;
&lt;br /&gt;
See also [[Wikipedia:List of tools to create Live USB systems]].&lt;br /&gt;
&lt;br /&gt;
{{Warning|Some disk image writing tools are known to be [[Wikipedia:adware|adware]], for example [[:en:USB flash installation medium#Using etcher|etcher]].}}&lt;br /&gt;
&lt;br /&gt;
* {{App|Deepin Boot Maker|Tool to make boot disk for Deepin OS.|https://www.deepin.org/en/original/deepin-boot-maker/|{{Pkg|deepin-boot-maker}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Fedora Media Writer|Fedora Media Writer]]|Tool that helps users put Fedora images on their portable drives such as flash disks.|https://github.com/FedoraQt/MediaWriter|{{AUR|mediawriter}}}}&lt;br /&gt;
* {{App|GNOME MultiWriter|Write an ISO file to multiple USB devices at once.|https://wiki.gnome.org/Apps/MultiWriter|{{Pkg|gnome-multi-writer}}}}&lt;br /&gt;
* {{App|Image Burner|Simple imageburner designed for elementary OS.|https://github.com/artemanufrij/imageburner|{{AUR|imageburner}}}}&lt;br /&gt;
* {{App|ISOImageWriter|Tool to write a .iso file to a USB disk.|https://community.kde.org/ISOImageWriter|{{AUR|isoimagewriter}}}}&lt;br /&gt;
* {{App|LiveUSB Install|Install various Linux distributions and operating systems on removable flash drive or external disk drive.|http://live.learnfree.eu/|{{AUR|live-usb-install}}}}&lt;br /&gt;
* {{App|MultiBootUSB|Install multiple live distributions on a USB disk non-destructively and has an option to uninstall them.|https://github.com/mbusb/multibootusb/|{{AUR|multibootusb}}}}&lt;br /&gt;
* {{App|MultiSystem|GUI tool to create a USB system that can boot multiple distributions.|http://liveusb.info/|{{AUR|multisystem}}}}&lt;br /&gt;
* {{App|Popsicle|Utility for flashing multiple USB devices in parallel, written in Rust.|https://github.com/pop-os/popsicle|{{AUR|popsicle-git}}}}&lt;br /&gt;
* {{App|[[Wikipedia:SUSE Studio ImageWriter|SUSE Studio ImageWriter]]|Utility for writing raw disk images &amp;amp; hybrid isos to USB keys.|https://github.com/openSUSE/imagewriter|{{AUR|imagewriter}}}}&lt;br /&gt;
* {{App|[[Wikipedia:UNetbootin|UNetbootin]]|Installs Linux/BSD distributions to a partition or USB drive.|https://unetbootin.github.io/|{{AUR|unetbootin}}}}&lt;br /&gt;
* {{App|Usbimager|Minimal GUI application to write compressed disk images to USB drives.|https://gitlab.com/bztsrc/usbimager|{{AUR|usbimager}}}}&lt;br /&gt;
* {{App|WoeUSB|Simple tool to create USB stick windows installer from an ISO image or a real DVD. (Fork of WinUSB).|https://github.com/WoeUSB/WoeUSB-frontend-wxgtk| {{AUR|woeusb}}}}&lt;br /&gt;
* {{App|windows2usb|Windows 7/8/8.1/10 ISO to Flash Drive burning utility for Linux with MBR/GPT, BIOS/UEFI, FAT32/NTFS support|https://github.com/ValdikSS/windows2usb|{{AUR|windows2usb-git}}}}&lt;br /&gt;
&lt;br /&gt;
=== System ===&lt;br /&gt;
&lt;br /&gt;
==== タスクマネージャ ====&lt;br /&gt;
&lt;br /&gt;
* {{App|CoreStats|Simple lightweight system resource viewer to monitor the CPU, RAM, Network and Disk IO statistics. Part of C-Suite.|https://cubocore.org/|{{AUR|corestats}}}}&lt;br /&gt;
* {{App|Deepin System Monitor|Monitor system process status for Deepin desktop.|https://www.deepin.org/en/original/deepin-system-monitor/|{{Pkg|deepin-system-monitor}}}}&lt;br /&gt;
* {{App|GNOME System Monitor|[[GNOME]] のシステムモニタ to view and manage system resources.|https://wiki.gnome.org/Apps/SystemMonitor|{{Pkg|gnome-system-monitor}}}}&lt;br /&gt;
* {{App|GNOME Usage|View information about use of system resources, like memory and disk space.|https://wiki.gnome.org/Apps/Usage|{{Pkg|gnome-usage}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Htop|htop]]|シンプルな、ncurses 対話式プロセスビューア。|http://htop.sourceforge.net/|{{Pkg|htop}}}}&lt;br /&gt;
* {{App|bpytop|Htop but more lightweight with more features.|https://github.com/aristocratos/bpytop|{{Pkg|bpytop}}}}&lt;br /&gt;
* {{App|btop|Rewrite of bpytop in C++|https://github.com/aristocratos/btop|{{Pkg|btop}}}}&lt;br /&gt;
* {{App|[[Wikipedia:KDE System Guard|KSysGuard]]|[[KDE]] のタスクマネージャ・パフォーマンスモニタ。|https://apps.kde.org/ksysguard/|{{Pkg|ksysguard}}}}&lt;br /&gt;
* {{App|Linux Process Explorer|Linux 向けのグラフィカルプロセスエクスプローラー。|https://sourceforge.net/projects/procexp/|{{AUR|procexp}}}}&lt;br /&gt;
* {{App|LXTask|[[LXDE]] の軽量なタスクマネージャー。|https://wiki.lxde.org/en/LXTask|{{Pkg|lxtask}}}}&lt;br /&gt;
* {{App|qps|Lightweight task manager for [[LXQt]].|https://github.com/lxqt/qps|{{AUR|qps}}}}&lt;br /&gt;
* {{App|MATE System Monitor|[[MATE]] のシステムモニター。|https://github.com/mate-desktop/mate-system-monitor|{{Pkg|mate-system-monitor}}}}&lt;br /&gt;
* {{App|Stacer|System optimizer and application monitor that helps users to manage entire system with different aspects, its an all in one system utility.|https://oguzhaninan.github.io/Stacer-Web/|{{AUR|stacer}}}}&lt;br /&gt;
* {{App|Task Manager|[[Xfce]] の GTK2/GTK3 プロセス管理アプリケーション with basic system resource monitor|https://goodies.xfce.org/projects/applications/xfce4-taskmanager|{{Pkg|xfce4-taskmanager}}}}&lt;br /&gt;
&lt;br /&gt;
==== システム監視 ====&lt;br /&gt;
&lt;br /&gt;
[[:カテゴリ:状態監視と通知]]も参照してください。&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Conky]]|軽量でスクリプト式のシステムモニタ。|https://github.com/brndnmtthws/conky|{{Pkg|conky}}}}&lt;br /&gt;
* {{App|Collectd|[https://oss.oetiker.ch/rrdtool/ rrdtool] ベースのシンプルで拡張性のあるシステム監視デーモン。消費リソースが少なくて、スタンドアロンに、またはサーバー・クライアントアプリケーションとして設定できます。|https://collectd.org/|{{Pkg|collectd}}}}&lt;br /&gt;
* {{App|collectl|軽量なパフォーマンス監視ツール。対話式にレポートを作成したりディスクにログを出力できます。CPU やディスク、[[InfiniBand]]、Lustre、メモリ、ネットワーク、[[NFS]]、プロセス, quadrics, slabs などの統計情報を読みやすいフォーマットでまとめます。|http://collectl.sourceforge.net/|{{AUR|collectl}}}}&lt;br /&gt;
* {{App|dstat|多目的リソース統計ツール。|http://dag.wiee.rs/home-made/dstat/|{{Pkg|dstat}}}}&lt;br /&gt;
* {{App|Fsniper|Daemon to run scripts based on changes in files monitored by inotify.|https://github.com/l3ib/fsniper|{{AUR|fsniper}}}}&lt;br /&gt;
* {{App|[[Wikipedia:GKrellM|GKrellM]]|シンプルで柔軟性のある [[GTK]] 向けシステムモニタパッケージ。多くのプラグインが含まれている。|https://billw2.github.io/gkrellm/gkrellm.html|{{Pkg|gkrellm}}}}&lt;br /&gt;
* {{App|glances|Python 製の CLI curses ベース監視ツール。|https://nicolargo.github.io/glances/|{{Pkg|glances}}}}&lt;br /&gt;
* {{App|kmon|Linux kernel manager and activity monitor.|https://github.com/orhun/kmon|{{Pkg|kmon}}}}&lt;br /&gt;
* {{App|Nagstamon|Status monitor that connects to multiple Nagios, Icinga, Opsview, Centreon, Op5 Monitor/Ninja, Checkmk and Thruk monitoring servers.|https://github.com/orhun/kmon|{{AUR|nagstamon}}}}&lt;br /&gt;
* {{App|netdata|ウェブベースのリアルタイムパフォーマンスモニター。|https://github.com/firehol/netdata/wiki|{{Pkg|netdata}}}}&lt;br /&gt;
* {{App|[[Telegraf]]|Agent written in Go for collecting, processing, aggregating, and writing metrics.|https://docs.influxdata.com/telegraf/latest/|{{AUR|telegraf}}}}&lt;br /&gt;
* {{App|[[Paramano]]|軽量なバッテリモニター、CPU 周波数スケーラ。[http://trayfreq.sourceforge.net/ trayfreq] のフォーク。|https://github.com/phillid/paramano|{{AUR|paramano}}}}&lt;br /&gt;
* {{app|Sysstat|リソース管理ツールのコレクション: iostat, isag, mpstat, pidstat, sadf, sar。|http://sebastien.godard.pagesperso-orange.fr/|{{Pkg|sysstat}}}}&lt;br /&gt;
* {{App|xosview|SGI IRIX の gr_osview に似ているシステムモニター。|https://www.pogo.org.uk/~mark/xosview/|{{AUR|xosview}}}}&lt;br /&gt;
* {{App|zps|A small utility for listing and reaping zombie processes on GNU/Linux.|https://github.com/orhun/zps|{{Pkg|zps}}}}&lt;br /&gt;
&lt;br /&gt;
==== Hardware sensor monitoring ====&lt;br /&gt;
&lt;br /&gt;
See [[lm_sensors#Graphical front-ends]].&lt;br /&gt;
&lt;br /&gt;
==== システム情報ビューア ====&lt;br /&gt;
&lt;br /&gt;
===== コンソール =====&lt;br /&gt;
&lt;br /&gt;
* {{App|alsi|Arch Linux のシステム情報ツール。スクリプトのソースコードを修正しなくても他のシステム用に設定することが可能です。|https://trizenx.blogspot.com/2012/08/alsi.html|{{AUR|alsi}}}}&lt;br /&gt;
* {{App|[[archey3]]|Arch Linux のロゴとシステム情報を表示する Python スクリプト。|https://lclarkmichalek.github.io/archey3|{{Pkg|archey3}}}}&lt;br /&gt;
* {{App|dmidecode|SMBIOS/DMI の仕様による BIOS に書かれているシステムのハードウェア情報を表示します。|https://www.nongnu.org/dmidecode/|{{Pkg|dmidecode}}}}&lt;br /&gt;
* {{App|hwdetect|{{ic|/sys}} によってエクスポートされたモジュールを表示するシンプルなスクリプト。|https://github.com/archlinux/svntogit-packages/blob/packages/hwdetect/trunk/hwdetect|{{Pkg|hwdetect}}}}&lt;br /&gt;
* {{App|hwinfo|openSUSE 由来のパワフルなハードウェア検出ツール。|https://github.com/openSUSE/hwinfo|{{Pkg|hwinfo}}}}&lt;br /&gt;
* {{App|hw-probe|Tool to probe for hardware, check operability and find drivers with the help of [https://linux-hardware.org/ Linux Hardware Database].|https://github.com/linuxhw/hw-probe|{{AUR|hw-probe}}}}&lt;br /&gt;
* {{App|inxi|システム情報を取得するためのスクリプト。|https://github.com/smxi/inxi|{{AUR|inxi}}}}&lt;br /&gt;
* {{App|neofetch|w3m で画像を表示することができる高速・カスタマイズ可能なシステム情報スクリプト。|https://github.com/dylanaraps/neofetch|{{AUR|neofetch}}}}&lt;br /&gt;
* {{App|nmon|Console based application for monitoring various system components.|http://nmon.sourceforge.net/|{{Pkg|nmon}}}}&lt;br /&gt;
* {{App|pfetch|A pretty system information tool written in POSIX sh.|https://github.com/dylanaraps/pfetch|{{AUR|pfetch}}}}&lt;br /&gt;
* {{App|screenfetch|archey と似ていますがスクリーンショットを取得することができます。bash で書かれています。|https://github.com/KittyKatt/screenFetch|{{Pkg|screenfetch}}}}&lt;br /&gt;
&lt;br /&gt;
===== グラフィカル =====&lt;br /&gt;
&lt;br /&gt;
* {{App|GPU-Viewer|GUI to glxinfo, vulkaninfo, clinfo and es2_info; written in Python with GTK.|https://github.com/arunsivaramanneo/GPU-Viewer|{{AUR|gpu-viewer}}}}&lt;br /&gt;
* {{App|hardinfo|ハードウェアとオペレーティングシステムに関する情報を表示する小さなアプリケーション。Windows のデバイスマネージャに似ています。|https://www.berlios.de/software/hardinfo/|{{Pkg|hardinfo}}}}&lt;br /&gt;
* {{App|i-Nex|システムで利用できるハードウェアコンポーネントの情報を収集して Windows の人気ツール CPU-Z に似ているユーザーインターフェースで情報を表示するアプリケーション。|http://i-nex.linux.pl/|{{AUR|i-nex-git}}}}&lt;br /&gt;
* {{App|lshw|マシンのハードウェア設定に関する情報を詳しく表示する小さなツール。CLI と GTK のインターフェイス。|https://ezix.org/project/wiki/HardwareLiSter|{{Pkg|lshw}}}}&lt;br /&gt;
* {{App|[[Wikipedia:KInfoCenter|KInfoCenter]]|Centralized and convenient overview of system information for KDE.|https://userbase.kde.org/KInfoCenter|{{Pkg|kinfocenter}}}}&lt;br /&gt;
* {{App|USBView|Display the topology of devices on the USB bus.|http://www.kroah.com/linux/usb/|{{Pkg|usbview}}}}&lt;br /&gt;
&lt;br /&gt;
==== System log viewers ====&lt;br /&gt;
&lt;br /&gt;
* {{App|GNOME Logs|Viewer for the systemd journal. Part of {{Grp|gnome}}.|https://wiki.gnome.org/Apps/Logs|{{Pkg|gnome-logs}}}}&lt;br /&gt;
* {{App|GNOME System Log|System log viewer for GNOME.|https://gitlab.gnome.org/GNOME/gnome-system-log|{{Pkg|gnome-system-log}}}}&lt;br /&gt;
* {{App|KSystemLog|System log viewer tool for KDE.|https://apps.kde.org/ksystemlog/|{{Pkg|ksystemlog}}}}&lt;br /&gt;
* {{App|MATE System Log|System log viewer for MATE.|https://github.com/mate-desktop/mate-utils|{{Pkg|mate-utils}}}}&lt;br /&gt;
* {{App|Pacman Log Viewer|Tool used to inspect pacman log file, in particular it lists installed, removed and upgraded packages letting you to filter by package&#039;s name and/or date.|https://www.opendesktop.org/content/show.php?content&amp;amp;#61;150484|{{Pkg|pacmanlogviewer}}}}&lt;br /&gt;
* {{App|QJournalctl|Qt-based graphical user interface for systemd&#039;s &#039;&#039;journalctl&#039;&#039; command.|https://github.com/pentix/qjournalctl|{{Pkg|qjournalctl}}}}&lt;br /&gt;
&lt;br /&gt;
==== Font viewers ====&lt;br /&gt;
&lt;br /&gt;
See also [[Wikipedia:Font management software]].&lt;br /&gt;
* {{App|Deepin Font Manager|A font management tool for Deepin desktop.|https://www.deepin.org/en/original/deepin-font-manager/|{{Pkg|deepin-font-manager}}}}&lt;br /&gt;
* {{App|Font Manager|Simple font management for GTK desktop environments.|https://fontmanager.github.io/|{{AUR|font-manager}}}}&lt;br /&gt;
* {{App|Fonty Python|Manage, view and find your fonts.|https://savannah.nongnu.org/projects/fontypython|{{AUR|fontypython}}}}&lt;br /&gt;
* {{App|GNOME Fonts|Font viewer for GNOME.|https://gitlab.gnome.org/GNOME/gnome-font-viewer|{{Pkg|gnome-font-viewer}}}}&lt;br /&gt;
* {{App|KFontview|KDE application to view and install different types of fonts.|https://kde.org/|{{Pkg|plasma-desktop}}}}&lt;br /&gt;
* {{App|MATE Font Viewer|Font viewer for MATE.|https://github.com/mate-desktop/mate-control-center|{{Pkg|mate-utils}}}}&lt;br /&gt;
&lt;br /&gt;
==== Help viewers ====&lt;br /&gt;
&lt;br /&gt;
See [[man ページ#インストール]].&lt;br /&gt;
&lt;br /&gt;
==== Command schedulers ====&lt;br /&gt;
&lt;br /&gt;
See also [[Cron]].&lt;br /&gt;
&lt;br /&gt;
* {{App|FcronQ|Fcron GUI, an advanced periodic command scheduler.|http://fcronq.xavion.name/|{{AUR|fcronq}}}}&lt;br /&gt;
* {{App|GNOME Schedule|Graphical interface to crontab and at for GNOME.|http://gnome-schedule.sourceforge.net/|{{AUR|gnome-schedule}}}}&lt;br /&gt;
* {{App|KCron|Tool for KDE to run applications in the background at regular intervals. It is a graphical interface to the Cron command.|https://apps.kde.org/kcron/|{{Pkg|kcron}}}}&lt;br /&gt;
* {{App|KTimer|Little tool for KDE to execute programs after some time. It allows you to enter several tasks and to set a timer for each of them. The timers for each task can be started, stopped, changed, or looped.|https://apps.kde.org/ktimer/|{{Pkg|ktimer}}}}&lt;br /&gt;
&lt;br /&gt;
==== Shutdown timers ====&lt;br /&gt;
&lt;br /&gt;
* {{App|GShutdown|Advanced shutdown utility which allows you to schedule the shutdown or the restart of your computer, or logout your actual session.|https://gshutdown.tuxfamily.org/|{{AUR|gshutdown}}}}&lt;br /&gt;
* {{App|Hsiu-Ming&#039;s Timer|Graphical shutdown timer, which enables you to shutdown, turn off monitor, reboot or play sound after a period of time.|https://cges30901.github.io/hmtimer-website/|{{AUR|hmtimer}}}}&lt;br /&gt;
* {{App|KShutdown|Graphical shutdown utility, which allows you to turn off or suspend a computer at a specified time. It features various time and delay options, command-line support, and notifications.|https://kshutdown.sourceforge.io/|{{Pkg|kshutdown}}}}&lt;br /&gt;
&lt;br /&gt;
==== 時刻同期 ====&lt;br /&gt;
&lt;br /&gt;
See [[時刻同期]].&lt;br /&gt;
&lt;br /&gt;
==== Screen management ====&lt;br /&gt;
&lt;br /&gt;
See [[Xrandr#Graphical front-ends]].&lt;br /&gt;
&lt;br /&gt;
==== Backlight management ====&lt;br /&gt;
&lt;br /&gt;
See [[バックライト#バックライトユーティリティ]].&lt;br /&gt;
&lt;br /&gt;
==== Color management ====&lt;br /&gt;
&lt;br /&gt;
See [[:en:ICC profiles#Utilities]] and [[バックライト#色補正]].&lt;br /&gt;
&lt;br /&gt;
==== Printer management ====&lt;br /&gt;
&lt;br /&gt;
See [[CUPS#GUI applications]].&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth management ====&lt;br /&gt;
&lt;br /&gt;
See [[Bluetooth#Front-ends]].&lt;br /&gt;
&lt;br /&gt;
==== 電源管理 ====&lt;br /&gt;
&lt;br /&gt;
See [[電源管理#ユーザースペースツール]].&lt;br /&gt;
&lt;br /&gt;
==== System management ====&lt;br /&gt;
&lt;br /&gt;
See [[Systemd#GUI configuration tools]].&lt;br /&gt;
&lt;br /&gt;
==== Boot management ====&lt;br /&gt;
&lt;br /&gt;
See [[GRUB/Tips and tricks#GUI configuration tools]].&lt;br /&gt;
&lt;br /&gt;
==== パッケージ管理 ====&lt;br /&gt;
&lt;br /&gt;
See [[pacman ヒント#ユーティリティ]].&lt;br /&gt;
&lt;br /&gt;
==== Virtualization ====&lt;br /&gt;
&lt;br /&gt;
See [[Libvirt#Client]] and [[VirtualBox]].&lt;br /&gt;
&lt;br /&gt;
==== Compatibility layers ====&lt;br /&gt;
&lt;br /&gt;
See [[Wine]] (Windows) and [https://www.darlinghq.org/ Darling] (MacOS).&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{TranslationStatus|List of applications/Utilities|2021-12-25|707362}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hkiku482</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%83%9A%E3%83%B3%E3%82%BF%E3%83%96%E3%83%AC%E3%83%83%E3%83%88&amp;diff=40331</id>
		<title>ペンタブレット</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%83%9A%E3%83%B3%E3%82%BF%E3%83%96%E3%83%AC%E3%83%83%E3%83%88&amp;diff=40331"/>
		<updated>2025-05-29T17:14:31Z</updated>

		<summary type="html">&lt;p&gt;Hkiku482: /* ユーティリティ */ パッケージ名リンク切れ修正&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:入力デバイス]]&lt;br /&gt;
[[en:Graphics tablet]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|タブレット PC}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Graphics tablet]] より:&lt;br /&gt;
:グラフィックタブレット（デジタイザー、デジタルグラフィックタブレット、ペンタブレット、描画タブレット、外部描画パッド、デジタルアートボードとも呼ばれる）は、コンピュータの入力デバイスで、特殊なペンのようなスタイラスを使って、鉛筆と紙で画像を描くのと同様の方法で、手描きの画像、アニメーション、グラフィックを作成することができます。&lt;br /&gt;
&lt;br /&gt;
ほとんどのグラフィックタブレットは、Arch Linux でそのまま動作します。ボタンのリマップやタブレットのアスペクト比の調整など、特定の追加機能には追加の設定が必要です。この記事では、[[Xorg]] でタブレットを設定する方法を説明します。[[Wayland]] での設定については、[[#Wayland と libinput]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
Arch Linux [[カーネル]] には、[https://linuxwacom.github.io linux-wacom] および [https://digimend.github.io DIGImend] プロジェクトによるドライバーが含まれています。linux-wacom は Wacom デバイスをサポートし、DIGImend は他のメーカーのデバイスをサポートします。どちらのプロジェクトも、サポートされているデバイスのリストを公開しています: [https://github.com/linuxwacom/input-wacom/wiki/Device-IDs linux-wacom]、[https://digimend.github.io/tablets/DIGImend] USB または [[Bluetooth]] 経由でタブレットを接続した後、root として {{ic|dmesg}} を実行すると表示され、{{ic|/proc/bus/input/devices}} にリストされます。USB デバイスの場合、{{Pkg|usbutils}} の {{ic|lsusb}} コマンドでもタブレットが表示されます。タブレットが表示されない場合、または特定の機能が動作しない場合は、[[#デバイスがカーネルに認識されない]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|xf86-input-wacom}} を [[インストール]] します。Xorg ドライバです。Wacom デバイスを接続すると、同梱の {{ic|/usr/share/X11/xorg.conf.d/70-wacom.conf}} ファイルが自動的に {{Man|4|wacom}} ドライバを読み込むので、追加の設定は必要ありません。デバイスが他のメーカーのものである場合、手動で [[Xorg#Configuration|configure]] を行う必要があります。Xorg を &#039;&#039;wacom&#039;&#039; ドライバで使うようにし、&#039;&#039;xsetwacom&#039;&#039; を使って設定できるようにします。ここで {{ic|VID:PID}} は {{ic|lsusb}} から見たあなたの USB ID です:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/X11/xorg.conf.d/10-tablet.conf|&lt;br /&gt;
Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
    Identifier &amp;quot;Tablet&amp;quot;&lt;br /&gt;
    Driver &amp;quot;wacom&amp;quot;&lt;br /&gt;
    MatchDevicePath &amp;quot;/dev/input/event*&amp;quot;&lt;br /&gt;
    MatchUSBID &amp;quot;&#039;&#039;VID:PID&#039;&#039;&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|Wacom 以外のいくつかのデバイスをカバーするサンプル設定ファイルは、DIGImend プロジェクトによって提供されています [https://github.com/DIGImend/digimend-kernel-drivers/blob/master/xorg.conf こちら]}}&lt;br /&gt;
&lt;br /&gt;
X を再起動した後、{{ic|xsetwacom list devices}} コマンドを実行すると、いくつかのデバイスが一覧表示されるはずです。そうでない場合は、[[#手動設定]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== ユーティリティ ===&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|wacomtablet}} は KDE [[KDE#KCM|構成モジュール]] で、ボタンの再マッピングとタブレットのモニターへのマッピングを可能にします。また、タブレット固有のプロファイルとホットプラグもサポートしています。 &#039;&#039;wacom&#039;&#039; Xorg ドライバーが必要なため、Wayland では動作しません。&lt;br /&gt;
* [https://gist.github.com/tom-galvin/6c19fe907945d735c045 mapwacom] は、[[#画面領域幅の縮小]] 方式でアスペクト比を保ったままタブレットをモニターにマッピングすることを自動化するスクリプトです。&lt;br /&gt;
* [https://gist.github.com/Konfekt/d57567b84b264e37e62bd5c001e76457 wacom2monitor.sh] は、[[#タブレットをモニタにマッピング]] メソッドを使用してすべての Wacom デバイスをマッピングし、利用可能な出力間のサイクルを可能にするスクリプトです。[[Xbindkeys]] や [[sxhkd]] を使って起動するように設計されています。&lt;br /&gt;
&lt;br /&gt;
* {{AUR|ptxconf-git}} はタブレットをモニタにマッピングするための [[GTK]]2 GUIです。タブレットの座標変換行列を &#039;&#039;xinput&#039;&#039; で変更することで動作するので、使用する Xorg ドライバに関係なく動作します (&#039;&#039;wacom&#039;&#039; または &#039;&#039;libinput&#039;&#039; のどちらか))&lt;br /&gt;
&lt;br /&gt;
=== 代替ドライバー ===&lt;br /&gt;
&lt;br /&gt;
* Bamboo Spark や Bamboo Slate などのワコムのスマートパッドから図面をダウンロードすることができるアプリケーションです。&lt;br /&gt;
* {{AUR|huiontablet}} は [https://www.huion.com/ Huion] の公式でプロプライエタリな Linux ドライバです。&lt;br /&gt;
* {{AUR|xp-pen-tablet}} は、[https://www.xp-pen.com/ XP-Pen] の公式プロプライエタリな Linux ドライバです。&lt;br /&gt;
* {{AUR|opentabletdriver}} は、いくつかの異なるタブレットモデル用のクロスプラットフォームユーザースペースドライバです。より詳しい情報は [https://opentabletdriver.net/ プロジェクトのウェブサイト] で見ることができます。&lt;br /&gt;
&lt;br /&gt;
=== Weylus ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/H-M-H/Weylus Weylus] は、スマートフォンやタブレットをコンピュータ上でグラフィックタブレットとして使用できるようにするプロジェクトです。{{Aur|weylus}} または {{Aur|weylus-bin}} として提供されています。&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
=== 全体的な概念 ===&lt;br /&gt;
&lt;br /&gt;
設定方法は2つあり、一時的な設定には &#039;&#039;xf86-input-wacom&#039;&#039; に含まれている `xsetwacom` ツールを使い、永続的な設定には {{ic|xorg.conf}} もしくは {{ic|/etc/X11/xorg.conf.d}} 内のファイルを使います。&lt;br /&gt;
利用できるオプションは同じため、まずは `xsetwacom` を使ってテストし、それから最終的な設定を &#039;&#039;Xorg&#039;&#039; の設定ファイルに追加するのを推奨します。&lt;br /&gt;
&lt;br /&gt;
==== 一時的な設定 ====&lt;br /&gt;
&lt;br /&gt;
初めにデフォルトの設定と利用できるオプションを全て確認すると良いでしょう。以下のコマンドを使います。&lt;br /&gt;
&lt;br /&gt;
 $ xsetwacom --list devices                    # get/set コマンドで利用できるデバイスを一覧します&lt;br /&gt;
 Wacom Bamboo 16FG 4x5 Finger touch	id: 12	type: TOUCH&lt;br /&gt;
 Wacom Bamboo 16FG 4x5 Finger pad	id: 13	type: PAD       &lt;br /&gt;
 Wacom Bamboo 16FG 4x5 Pen stylus	id: 17	type: STYLUS    &lt;br /&gt;
 Wacom Bamboo 16FG 4x5 Pen eraser	id: 18	type: ERASER&lt;br /&gt;
 $ xsetwacom --get &amp;quot;Wacom Bamboo 16FG 4x5&amp;quot; all # デバイスの名前を使います&lt;br /&gt;
 $ xsetwacom --get 17 all                      # もしくはデバイス id を使います&lt;br /&gt;
 $ xsetwacom --list parameters                 # オプションの説明を表示します&lt;br /&gt;
 $ man wacom                                   # さらに詳しい説明を表示します&lt;br /&gt;
&lt;br /&gt;
{{Note|オプションを設定するシェルスクリプトを書くときにデバイス id を使ってはいけません。ホットプラグで id が変わることがあるからです。}}&lt;br /&gt;
&lt;br /&gt;
オプションは {{ic|--set}} フラグを使って変更できます。例えば:&lt;br /&gt;
&lt;br /&gt;
 $ xsetwacom --set &amp;quot;Wacom Bamboo 16FG 4x5 Finger touch&amp;quot; ScrollDistance 50  # スクロールの速度を変更します&lt;br /&gt;
 $ xsetwacom --set &amp;quot;Wacom Bamboo 16FG 4x5 Finger touch&amp;quot; Gesture off        # マルチタッチジェスチャーを無効にします&lt;br /&gt;
 $ xsetwacom --set &amp;quot;Wacom Bamboo 16FG 4x5 Finger touch&amp;quot; Touch off          # タッチを無効にします&lt;br /&gt;
&lt;br /&gt;
詳しい設定については下の [[#特定の設定のヒント]] を見て下さい。&lt;br /&gt;
{{Note|&lt;br /&gt;
* タブレットを一旦切断してからもう一度接続することでいつでも一時的な設定をリセットできます。&lt;br /&gt;
* xsetwacom によって動的にしか設定できないオプションも存在します。そのような場合、デバイスが接続されたときにスクリプトを実行することで xsetwacom を呼び出してデバイスを設定できます。詳しくは [https://unix.stackexchange.com/a/290940/89955] を参照。}}&lt;br /&gt;
&lt;br /&gt;
==== 永続的な設定 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Xorg&#039;&#039; 1.8 以上で永続的な設定をするときは {{ic|/etc/X11/xorg.conf.d}} に新しいファイルを作成するのが推奨されています (例: {{ic|52-wacom-options.conf}})。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/X11/xorg.conf.d/52-wacom-options.conf|&lt;br /&gt;
Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
    Identifier &amp;quot;Wacom Bamboo stylus options&amp;quot;&lt;br /&gt;
    MatchDriver &amp;quot;wacom&amp;quot;&lt;br /&gt;
    MatchProduct &amp;quot;Pen&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    # Apply custom Options to this device below.&lt;br /&gt;
    Option &amp;quot;Rotate&amp;quot; &amp;quot;none&amp;quot;&lt;br /&gt;
    Option &amp;quot;RawSample&amp;quot; &amp;quot;20&amp;quot;&lt;br /&gt;
    Option &amp;quot;PressCurve&amp;quot; &amp;quot;0,10,90,100&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
    Identifier &amp;quot;Wacom Bamboo eraser options&amp;quot;&lt;br /&gt;
    MatchDriver &amp;quot;wacom&amp;quot;&lt;br /&gt;
    MatchProduct &amp;quot;eraser&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    # Apply custom Options to this device below.&lt;br /&gt;
    Option &amp;quot;Rotate&amp;quot; &amp;quot;none&amp;quot;&lt;br /&gt;
    Option &amp;quot;RawSample&amp;quot; &amp;quot;20&amp;quot;&lt;br /&gt;
    Option &amp;quot;PressCurve&amp;quot; &amp;quot;5,0,100,95&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
    Identifier &amp;quot;Wacom Bamboo touch options&amp;quot;&lt;br /&gt;
    MatchDriver &amp;quot;wacom&amp;quot;&lt;br /&gt;
    MatchProduct &amp;quot;Finger&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    # Apply custom Options to this device below.&lt;br /&gt;
    Option &amp;quot;Rotate&amp;quot; &amp;quot;none&amp;quot;&lt;br /&gt;
    Option &amp;quot;ScrollDistance&amp;quot; &amp;quot;18&amp;quot;&lt;br /&gt;
    Option &amp;quot;TapTime&amp;quot; &amp;quot;220&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
    Identifier &amp;quot;Wacom Bamboo pad options&amp;quot;&lt;br /&gt;
    MatchDriver &amp;quot;wacom&amp;quot;&lt;br /&gt;
    MatchProduct &amp;quot;pad&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    # Apply custom Options to this device below.&lt;br /&gt;
    Option &amp;quot;Rotate&amp;quot; &amp;quot;none&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    # Setting up buttons&lt;br /&gt;
    Option &amp;quot;Button1&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
    Option &amp;quot;Button2&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
    Option &amp;quot;Button3&amp;quot; &amp;quot;3&amp;quot;&lt;br /&gt;
    Option &amp;quot;Button4&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
identifier は自由に設定することができます。オプションの名前は {{ic|xsetwacom --list parameters}} で表示されるものや {{ic|man wacom}} で説明されているものと (ボタンを除いて) 同じです。[[#ボタンの再マッピング]] で説明しているとおり、ボタンの id は {{ic|xsetwacom}} のものと異なるようです。&lt;br /&gt;
&lt;br /&gt;
==== 向きを変更する ====&lt;br /&gt;
&lt;br /&gt;
タブレットを異なる向きで使いたいときはドライバーに向きの設定をする必要があります。そうしないと動きがおかしなことになってしまいます。&lt;br /&gt;
全てのデバイスに &#039;&#039;&#039;Rotate&#039;&#039;&#039; オプションを設定することで向きを変更できます。利用できる方向は &#039;&#039;&#039;none&#039;&#039;&#039;,&#039;&#039;&#039;cw&#039;&#039;&#039;,&#039;&#039;&#039;ccw&#039;&#039;&#039;, &#039;&#039;&#039;half&#039;&#039;&#039; です。&lt;br /&gt;
例えば:&lt;br /&gt;
 $ for i in 12 13 17 18; do xsetwacom --set $i Rotate half; done   # remember the ids might change when hotplugging&lt;br /&gt;
&lt;br /&gt;
もしくは {{ic|./wacomrot.sh half}} のように以下のスクリプトを使って下さい:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=wacomrot.sh|2=&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
device=&amp;quot;Wacom Bamboo 16FG 4x5&amp;quot;&lt;br /&gt;
stylus=&amp;quot;$device Pen stylus&amp;quot;&lt;br /&gt;
eraser=&amp;quot;$device Pen eraser&amp;quot;&lt;br /&gt;
touch=&amp;quot;$device Finger touch&amp;quot;&lt;br /&gt;
pad=&amp;quot;$device Finger pad&amp;quot;&lt;br /&gt;
&lt;br /&gt;
xsetwacom --set &amp;quot;$stylus&amp;quot; Rotate $1&lt;br /&gt;
xsetwacom --set &amp;quot;$eraser&amp;quot; Rotate $1&lt;br /&gt;
xsetwacom --set &amp;quot;$touch&amp;quot;  Rotate $1&lt;br /&gt;
xsetwacom --set &amp;quot;$pad&amp;quot;    Rotate $1&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== ボタンの再マッピング ====&lt;br /&gt;
&lt;br /&gt;
ボタンとホットキーのマッピングを変更することが可能です。&lt;br /&gt;
&lt;br /&gt;
{{Tip|[http://planetedessonges.org:8010/wakey/ xsetwacom 用のシンプルなウェブベースの GUI] が存在します。現在サポートされているのは &#039;&#039;bamboo small&#039;&#039; ですが、他のモデルもサポートされる可能性があります。}}&lt;br /&gt;
&lt;br /&gt;
===== ボタン ID を見つけ出す =====&lt;br /&gt;
場合によって適切なボタン ID を見つけるために試行錯誤が必要です。例えばボタン ID が {{ic|xsetwacom}} や {{ic|xorg.conf}} の設定と異なることがあります。そういう場合 {{ic|xev}} や {{ic|xbindkeys -mk}} などのツールがとても役に立ちます。一時的にキーストロークをタブレットのボタンに割り当てるには:&lt;br /&gt;
&lt;br /&gt;
 $ xsetwacom --set &amp;quot;Wacom Bamboo 16FG 4x5 Finger pad&amp;quot; Button 1 &#039;key a&#039;&lt;br /&gt;
 $ xsetwacom --set &amp;quot;Wacom Bamboo 16FG 4x5 Finger pad&amp;quot; Button 2 &#039;key b&#039;&lt;br /&gt;
 $ xsetwacom --set &amp;quot;Wacom Bamboo 16FG 4x5 Finger pad&amp;quot; Button 3 &#039;key c&#039;&lt;br /&gt;
 $ # and so on&lt;br /&gt;
&lt;br /&gt;
ターミナルウィンドウから {{ic|xev}} を立ち上げ、ウィンドウ上にマウスカーソルを移動してボタンを押すと id が書き出されます:&lt;br /&gt;
&lt;br /&gt;
 $ xev | grep KeyPress -A 5&lt;br /&gt;
&lt;br /&gt;
===== 構文 =====&lt;br /&gt;
&lt;br /&gt;
{{ic|xsetwacom}} の構文は柔軟性がありますが、あまりドキュメントがまとまっていません。xsetwacom 0.17.0 の一般的なマッピングの構文は以下の通りです (ソースコードより)。&lt;br /&gt;
&lt;br /&gt;
 KEYWORD [ARGS...] [KEYWORD [ARGS...] ...]&lt;br /&gt;
 &lt;br /&gt;
 KEYWORD + ARGS:&lt;br /&gt;
   key [+,-]KEY [[+,-]KEY ...]  where +:key down, -:key up, no prefix:down and up&lt;br /&gt;
   button BUTTON [BUTTON ...]   (1=left,2=middle,3=right mouse button, 4/5 scroll mouse wheel)&lt;br /&gt;
   modetoggle                   toggle absolute/relative tablet mode &lt;br /&gt;
   displaytoggle                toggle cursor movement among all displays which include individual screens&lt;br /&gt;
                                plus the whole desktop for the selected tool if it is not a pad.&lt;br /&gt;
                                When the tool is a pad, the function applies to all tools that are asssociated&lt;br /&gt;
                                with the tablet&lt;br /&gt;
 &lt;br /&gt;
 BUTTON: button ID as integer number&lt;br /&gt;
 &lt;br /&gt;
 KEY: MODIFIER, SPECIALKEY or ASCIIKEY&lt;br /&gt;
 MODIFIER: (each can be prefix with an &#039;&#039;&#039;l&#039;&#039;&#039; or an &#039;&#039;&#039;r&#039;&#039;&#039; for the left/right modifier (no prefix = left)&lt;br /&gt;
    ctrl=ctl=control, meta, alt, shift, super, hyper&lt;br /&gt;
 SPECIALKEY: f1-f35, esc=Esc, up,down,left,right, backspace=Backspace, tab, PgUp,PgDn&lt;br /&gt;
 ASCIIKEY: (usual characters the key produces, e.g. a,b,c,1,2,3 etc.)&lt;br /&gt;
&lt;br /&gt;
===== サンプル =====&lt;br /&gt;
&lt;br /&gt;
 $ xsetwacom --set &amp;quot;Wacom Bamboo 16FG 4x5 Finger pad&amp;quot; Button 1 3 # 右マウスボタン&lt;br /&gt;
 $ xsetwacom --set &amp;quot;Wacom Bamboo 16FG 4x5 Finger pad&amp;quot; Button 1 &amp;quot;key +ctrl z -ctrl&amp;quot;&lt;br /&gt;
 $ xsetwacom --get &amp;quot;Wacom Bamboo 16FG 4x5 Finger pad&amp;quot; Button 1&lt;br /&gt;
 key +Control_L +z -z -Control_L&lt;br /&gt;
 $ xsetwacom --set &amp;quot;Wacom Bamboo 16FG 4x5 Finger pad&amp;quot; Button 1 &amp;quot;key +shift button 1 key -shift&amp;quot;&lt;br /&gt;
&lt;br /&gt;
マクロを使うこともできます:&lt;br /&gt;
&lt;br /&gt;
 $ xsetwacom --set &amp;quot;Wacom Bamboo 16FG 4x5 Finger pad&amp;quot; Button 1 &amp;quot;key +shift h -shift e l l o&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note|&#039;&#039;xf86-input-wacom&#039;&#039; ドライバーのバージョン 0.17.0 にはバグが存在し、&#039;&#039;Wacom Bamboo Pen &amp;amp; Touch&#039;&#039; などで、キーストロークが正しく上書きされないことがあります:&lt;br /&gt;
 $ xsetwacom --set &amp;quot;Wacom Bamboo 16FG 4x5 Finger pad&amp;quot; Button 1 &amp;quot;key a b c&amp;quot; # press button 1 -&amp;gt; abc&lt;br /&gt;
 $ xsetwacom --set &amp;quot;Wacom Bamboo 16FG 4x5 Finger pad&amp;quot; Button 1 &amp;quot;key d&amp;quot;     # press button 1 -&amp;gt; dbc  WRONG!&lt;br /&gt;
&lt;br /&gt;
マッピングを &amp;quot;&amp;quot; に設定してリセットすることで解決できます:&lt;br /&gt;
 $ xsetwacom --set &amp;quot;Wacom Bamboo 16FG 4x5 Finger pad&amp;quot; Button 1 &amp;quot;&amp;quot;          # to reset the mapping&lt;br /&gt;
 $ xsetwacom --set &amp;quot;Wacom Bamboo 16FG 4x5 Finger pad&amp;quot; Button 1 &amp;quot;key d&amp;quot;     # press button 1 -&amp;gt; d&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|udev ルールから {{ic|xsetwacom}} コマンドでスクリプトを実行しても動作しません。この時点では wacom のインプットデバイスの準備ができていないからです。スクリプトの冒頭に {{ic|sleep 1}} を追加することで問題を回避できます。}}&lt;br /&gt;
&lt;br /&gt;
===== カスタムコマンドの実行 =====&lt;br /&gt;
&lt;br /&gt;
ボタンにカスタムコマンドをマップするのは少々厄介ですが実際はとてもシンプルです。{{Pkg|xbindkeys}} が必要になるので次のコマンドでインストールしてください:&lt;br /&gt;
 # pacman -S xbindkeys&lt;br /&gt;
&lt;br /&gt;
ボタンのコードを定義するには、以下を永続的な設定ファイルに追加してください (例: {{ic|/etc/X11/xorg.conf.d/52-wacom-options.conf}} の &#039;&#039;&#039;pad&#039;&#039;&#039; デバイスの InputClass セクション)。タブレットのボタンを使用していないボタンの id にマップします:&lt;br /&gt;
&lt;br /&gt;
 # Setting up buttons (preferably choose the correct button order, so the topmost key is mapped to 10 and so on)&lt;br /&gt;
 Option &amp;quot;Button1&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
 Option &amp;quot;Button2&amp;quot; &amp;quot;11&amp;quot;&lt;br /&gt;
 Option &amp;quot;Button3&amp;quot; &amp;quot;12&amp;quot;&lt;br /&gt;
 Option &amp;quot;Button4&amp;quot; &amp;quot;13&amp;quot;&lt;br /&gt;
&lt;br /&gt;
そして &#039;&#039;Xorg&#039;&#039; サーバーを再起動して {{ic|xev}} や {{ic|xbindkeys -mk}} でボタンを確認してください。&lt;br /&gt;
&lt;br /&gt;
それから xbindkeys の設定を行います。デフォルトの設定ファイルが存在しない場合は作成すると良いでしょう:&lt;br /&gt;
 $ xbindkeys --defaults &amp;gt; ~/.xbindkeysrc&lt;br /&gt;
&lt;br /&gt;
それからカスタムキーマップを {{ic|~/.xbindkeysrc}} に追加してください。例:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;firefox&amp;quot;&lt;br /&gt;
     m:0x10 + b:10   (mouse)&lt;br /&gt;
 &amp;quot;xterm&amp;quot;&lt;br /&gt;
     m:0x10 + b:11   (mouse)&lt;br /&gt;
 &amp;quot;xdotool key ctrl-z&amp;quot;&lt;br /&gt;
     m:0x10 + b:12   (mouse)&lt;br /&gt;
 &amp;quot;send-notify Test &amp;quot;No need for escaping the quotes&amp;quot;&amp;quot;&lt;br /&gt;
     m:0x10 + b:13   (mouse)&lt;br /&gt;
&lt;br /&gt;
==== LED ====&lt;br /&gt;
&lt;br /&gt;
[https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-driver-wacom sysfs-driver-wacom] ドキュメントを見て下さい。root 権限なしで変更できるようにするには以下のような [[udev]] ルールを作成します:&lt;br /&gt;
{{hc|/etc/udev/rules.d/99-wacom.rules|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
# Give the users group permissions to set Wacom device LEDs.&lt;br /&gt;
ACTION==&amp;quot;add&amp;quot;, SUBSYSTEM==&amp;quot;hid&amp;quot;, DRIVERS==&amp;quot;wacom&amp;quot;, RUN+=&amp;quot;/usr/bin/sh -c &#039;chown :users /sys/%p/wacom_led/*&#039;&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Intuos の OLED は AUR の {{AUR|i4oled}} を使って設定できます。&lt;br /&gt;
&lt;br /&gt;
==== TwinView セットアップ ====&lt;br /&gt;
&lt;br /&gt;
2つのモニターでタブレットを使用するとアスペクト比が不自然に感じられることがあります。これを修正するには {{ic|xorg.conf}} ファイルの全ての Wacom-InputDevice エントリに以下を追加してください:&lt;br /&gt;
&lt;br /&gt;
 Option &amp;quot;TwinView&amp;quot; &amp;quot;horizontal&amp;quot;&lt;br /&gt;
&lt;br /&gt;
詳しくは [https://ubuntuforums.org/showthread.php?t=640898 こちら] を参照。&lt;br /&gt;
&lt;br /&gt;
===== TwinView の一時的なセットアップ =====&lt;br /&gt;
アスペクト比を維持しつつ、一時的に Wacom デバイスをシングルディスプレイにマッピングしたい場合、[https://gist.github.com/Quackmatic/6c19fe907945d735c045 このスクリプト] を使うことができます。ディスプレイ上に入力が引き伸ばされないように、必要に応じてデバイスにレターボックスを設定します。{{ic|.xinitrc}} ファイルなどから自動的に実行させることも可能です。&lt;br /&gt;
&lt;br /&gt;
==== Xrandr の設定 ====&lt;br /&gt;
xrandr は2つのモニターを1つの大きな画面として設定するので、仮想スクリーン全体にタブレットをマップするとアスペクト比が変形してしまいます。解決方法は次のスレッドを見て下さい: [https://bbs.archlinux.org/viewtopic.php?pid=797617 archlinux forum]。&lt;br /&gt;
&lt;br /&gt;
タブレットをディスプレイのどちらかにマッピングしたい場合、まずディスプレイの名前を確認してください:&lt;br /&gt;
 $ xrandr&lt;br /&gt;
 Screen 0: minimum 320 x 200, current 3840 x 1080, maximum 16384 x 16384&lt;br /&gt;
 &#039;&#039;&#039;HDMI-0&#039;&#039;&#039; disconnected (normal left inverted right x axis y axis)&lt;br /&gt;
 &#039;&#039;&#039;DVI-0&#039;&#039;&#039; connected 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm&lt;br /&gt;
   1920x1080      60.0*+&lt;br /&gt;
   1680x1050      60.0  &lt;br /&gt;
   ...&lt;br /&gt;
 &#039;&#039;&#039;VGA-0&#039;&#039;&#039; connected 1920x1080+1920+0 (normal left inverted right x axis y axis) 477mm x 268mm&lt;br /&gt;
   1920x1080      60.0*+&lt;br /&gt;
   1680x1050      60.0  &lt;br /&gt;
   ...&lt;br /&gt;
そしてタブレットの ID を確認してください:&lt;br /&gt;
 $ xsetwacom --list devices&lt;br /&gt;
 WALTOP International Corp. Slim Tablet stylus   id: &#039;&#039;&#039;12&#039;&#039;&#039;  type: STYLUS&lt;br /&gt;
&lt;br /&gt;
例えばタブレット (ID: &#039;&#039;&#039;12&#039;&#039;&#039;) を右側のディスプレイ (&#039;&#039;&#039;&amp;quot;VGA-0&amp;quot;&#039;&#039;&#039;) にマッピングするには:&lt;br /&gt;
 $ xsetwacom --set &#039;&#039;&#039;12&#039;&#039;&#039; MapToOutput &#039;&#039;&#039;&amp;quot;VGA-0&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
上記のコマンドはすぐに適用されます。root は不要です。&lt;br /&gt;
&lt;br /&gt;
xsetwacom が &amp;quot;Unable to find an output ...&amp;quot; と返してくる場合、ディスプレイの識別子のかわりに &#039;&#039;&#039;WIDTHxHEIGHT+X+Y&#039;&#039;&#039; という形式で X11 のジオメトリを指定します。例:&lt;br /&gt;
 $ xsetwacom --set &#039;&#039;&#039;12&#039;&#039;&#039; MapToOutput &#039;&#039;&#039;&amp;quot;1920x1080+1920+0&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
上記のコマンドでタブレットが右のディスプレイにマップされるはずです。&lt;br /&gt;
&lt;br /&gt;
もしくは [https://bitbucket.org/denilsonsa/small_scripts/src/3380435f92646190f860b87f566a39d0e215034c/xsetwacom_my_preferences.sh?at=default bash スクリプト] を使用してタブレットを素早くマッピングしたりアスペクト比を修正することもできます。&lt;br /&gt;
&lt;br /&gt;
=== 筆圧曲線 ===&lt;br /&gt;
&lt;br /&gt;
[http://linuxwacom.sourceforge.net/misc/bezier.html Wacom Pressure Demo] を使って望ましい曲線の P1=red (例: 50,0), P2=purple (例: 100,80), Threshold=green (例: 27) を見つけてください。X 軸はあなたがペンにかける入力圧で、Y 軸はアプリケーションが感知する出力圧です ([http://250kb.de/u/150207/p/FoS1SiXuZQRP.png サンプル曲線])。&lt;br /&gt;
&lt;br /&gt;
以下のコマンドを使うことで、即座に値をデバイスでテストすることができます (例: &amp;quot;Wacom Intuos4 6x9 stylus&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
 $ xsetwacom --set &amp;quot;Wacom Intuos4 6x9 stylus&amp;quot; PressureCurve &amp;quot;50&amp;quot; &amp;quot;0&amp;quot; &amp;quot;100&amp;quot; &amp;quot;80&amp;quot;&lt;br /&gt;
 $ xsetwacom --set &amp;quot;Wacom Intuos4 6x9 stylus&amp;quot; Threshold &amp;quot;27&amp;quot;&lt;br /&gt;
&lt;br /&gt;
満足のいく値が見つかったら以下のように {{ic|/etc/X11/xorg.conf}} で適用するか、スタートアップスクリプトで上のシェルコマンドを実行するようにします:&lt;br /&gt;
{{hc|/etc/X11/xorg.conf|&lt;br /&gt;
Option        &amp;quot;PressCurve&amp;quot;    &amp;quot;50,0,100,80&amp;quot;         # Custom preference&lt;br /&gt;
Option        &amp;quot;Threshold&amp;quot;     &amp;quot;27&amp;quot;                  # sensitivity to do a &amp;quot;click&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== 縦横比を保持 ===&lt;br /&gt;
&lt;br /&gt;
ワイドスクリーンディスプレイ (&#039;&#039;16:9&#039;&#039;) で Wacom のタブレットを使用する場合、入力が物理的な縦横比よりも横に長くなってしまうことが問題になります (例えばペンで円を描いてもコンピュータに表示されるのは楕円になります)。ペンタブの縦軸比がモニターと異なるためです。強制的に入力範囲をモニターのアスペクト比にあわせて入力面の下端を取り除くことで問題を解決できます。Windows ドライバーの設定にある &amp;quot;Force Proportions&amp;quot; オプションと同じです。タブレットからの入力をできるだけ正確になぞるために推奨される設定です。&lt;br /&gt;
&lt;br /&gt;
タブレットのデフォルト値を確認するには以下のコマンドを実行 ( &amp;quot;device name or ID&amp;quot; はスタイラスの名前に置き換えてください):&lt;br /&gt;
 $ xsetwacom --get &amp;quot;device name or ID&amp;quot; Area&lt;br /&gt;
&lt;br /&gt;
値を &#039;&#039;11.25&#039;&#039; で割ることでタブレットの解像度を弾き出すことができます (例: &#039;&#039;21600/11.25=1920&#039;&#039; と &#039;&#039;13500/11.25=1200&#039;&#039;)。それからディスプレイの解像度である &#039;&#039;1920x1080&#039;&#039; (&#039;&#039;16:9&#039;&#039;) に変換して、&#039;&#039;1080*11.25=12150&#039;&#039; を xsetwacom で新しく設定します:&lt;br /&gt;
 $ xsetwacom --set &amp;quot;device name or ID&amp;quot; Area 0 0 21600 12150&lt;br /&gt;
&lt;br /&gt;
xorg の設定ファイルでは以下のようにして同じ設定ができます:&lt;br /&gt;
 Option &amp;quot;BottomX&amp;quot; &amp;quot;21600&amp;quot;&lt;br /&gt;
 Option &amp;quot;BottomY&amp;quot; &amp;quot;12150&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note|自動的に設定を行う KeepShape オプションも存在しますが、必ずしも機能するとは限りません。}}&lt;br /&gt;
&lt;br /&gt;
=== kcm-wacomtablet を使う ===&lt;br /&gt;
&lt;br /&gt;
KDE の設定モジュール {{Pkg|kcm-wacomtablet}} (もしくは Plasma 5 を使っている場合、{{AUR|kcm-wacomtablet-frameworks-git}}{{Broken package link|パッケージが存在しません}}) を使うことでグラフィカルなユーザーインターフェイスでタブレットの簡単な設定を行うことができます。プロファイルを変更したりホットプラグの適切なサポートができます。タブレットのタイプが自動で検出され、タブレットが接続されたときに自動で設定プロファイルがロードされます。&lt;br /&gt;
&lt;br /&gt;
== 特定のアプリケーションの設定 ==&lt;br /&gt;
&lt;br /&gt;
=== Blender ===&lt;br /&gt;
&lt;br /&gt;
Blender でパッドのボタンやペンのボタンを有効にするには、xsetwacom のラッパーを作成して、Blender が起動している間だけ一時的にボタンをリマップします。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sculpt&#039;&#039;&#039; モードに適合させた例 (Bamboo Fun の場合): [http://pastebin.archlinux.fr/1887946 blender_sculpt.sh]&lt;br /&gt;
&lt;br /&gt;
*左のタブレットボタンを &#039;&#039;&#039;Shift&#039;&#039;&#039; と &#039;&#039;&#039;Control&#039;&#039;&#039; &#039;&#039;(pan/tilt/zoom/smooth/invert)&#039;&#039; にマップ&lt;br /&gt;
*右のタブレットボタンを &#039;&#039;&#039;F&#039;&#039;&#039; &#039;&#039;(brush size/strenght)&#039;&#039; と &#039;&#039;&#039;Control-z&#039;&#039;&#039; &#039;&#039;(undo)&#039;&#039; にマップ&lt;br /&gt;
*上のペンのボタンを &#039;&#039;&#039;m&#039;&#039;&#039; &#039;&#039;(mask control)&#039;&#039; にマップ&lt;br /&gt;
&lt;br /&gt;
=== GIMP ===&lt;br /&gt;
&lt;br /&gt;
[[GIMP]] で適切な使用法や、筆圧感知を有効にするには &#039;&#039;設定 &amp;amp;rarr; 入力デバイス &amp;amp;rarr; 追加された入力デバイスの設定...&#039;&#039; を見て下さい。&#039;&#039;eraser&#039;&#039;, &#039;&#039;stylus&#039;&#039;, &#039;&#039;cursor&#039;&#039; の各デバイスの&#039;&#039;モード&#039;&#039;を&#039;&#039;スクリーン&#039;&#039;に設定して保存してください。&lt;br /&gt;
&lt;br /&gt;
*GIMP は &#039;&#039;pad&#039;&#039; &#039;&#039;device&#039;&#039; をサポートしていないので、存在する場合、無効にするようにしてください。もしくは、機能を使いたい場合 [http://hem.bredband.net/devel/wacom/ Wacom ExpressKeys] などのプログラムを使ってキーボードのコマンドにマッピングしてください。&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;stylus&#039;&#039; で選択されたツールは &#039;&#039;eraser&#039;&#039; のツールとは独立していることに注意してください。これはかなり便利に使うことができます。&#039;&#039;eraser&#039;&#039; を自由なツールに設定できるからです。&lt;br /&gt;
&lt;br /&gt;
詳しくは [http://www.gimptalk.com/forum/topic.php?t=17992&amp;amp;start=1 GIMP Talk - Community - Install Guide: Getting Wacom Drawing Tablets To Work In Gimp] の &#039;&#039;Setting up GIMP&#039;&#039; セクションを参照してください。&lt;br /&gt;
&lt;br /&gt;
上記の設定で不満の場合、{{ic|xinput create-master}} と {{ic|xinput reattach}} コマンドを使ってタブレットの stylus (と eraser) を2番目のマウスポインタとして設定してみてください。スタイラスペンでタブレットに触っても GIMP で絵を描けない場合に役立ちます。&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
&lt;br /&gt;
GIMP と同じように、&#039;&#039;ファイル &amp;amp;rarr; 入力デバイス...&#039;&#039; を見て下さい。&#039;&#039;eraser&#039;&#039;, &#039;&#039;stylus&#039;&#039;, &#039;&#039;cursor&#039;&#039; の各デバイスの&#039;&#039;モード&#039;&#039;を&#039;&#039;スクリーン&#039;&#039;に設定して保存してください。&lt;br /&gt;
&lt;br /&gt;
=== Krita ===&lt;br /&gt;
&lt;br /&gt;
Krita でタブレットを使って絵を描けない場合 (クリックや筆圧が反映されない)、ブラシ選択ダイアログの小さなスクラッチパッドは使えるときは、Krita をフルスクリーンまたはキャンバスオンリーモードにしてみてください。&lt;br /&gt;
		 &lt;br /&gt;
Krita ではタブレットを使うために Qt を正しく設定する必要があります。タブレットが Krita で動作しない場合、まず Qt でタブレットがちゃんと動作するか確認してください。タブレットの筆圧の効果は painttop 設定で調整することができます。例えば透明度や筆圧、カーブなどを設定できます。&lt;br /&gt;
&lt;br /&gt;
=== VirtualBox ===&lt;br /&gt;
&lt;br /&gt;
まず、Arch でタブレットが問題なく動作しているか確認してください。それから、[http://www.wacom.com/downloads/drivers.php Wacom のウェブサイト] からゲスト OS の最新ドライバーをダウンロード・インストールしてください。仮想マシンをシャットダウンして、&#039;&#039;Settings &amp;gt; USB&#039;&#039; を開いて下さい。&#039;&#039;Add Filter From Device&#039;&#039; を選択してあなたの使っているタブレットを選びます (例: WACOM CTE-440-U V4.0-3 [0403])。&#039;&#039;Edit Filter&#039;&#039; を選択して、最後のアイテム &#039;&#039;Remote&#039;&#039; を &#039;&#039;Any&#039;&#039; に変更してください。&lt;br /&gt;
&lt;br /&gt;
=== ウェブブラウザのプラグイン ===&lt;br /&gt;
&lt;br /&gt;
公式の Wacom ウェブプラグインと同じような機能を提供するプラグインが AUR に {{AUR|wacomwebplugin}}{{Broken package link|{{aur-mirror|wacomwebplugin}}}} としてあります。Chromium と Firefox で動くことが確認されています。&lt;br /&gt;
&lt;br /&gt;
このプラグインを使うことで [http://sta.sh/muro/ deviantART の Muro] といったオンラインツールを利用することが可能です。プラグインの開発はまだ初期段階なので、上手く動くか保証はできません。&lt;br /&gt;
&lt;br /&gt;
== Wayland と libinput ==&lt;br /&gt;
&lt;br /&gt;
[[Wayland]] を使用している場合、グラフィックタブレットは [[libinput]] によって処理されます。このシナリオでは、&#039;&#039;xsetwacom&#039;&#039; による設定はできません。[[デスクトップ環境]] または Wayland [[Wayland#Compositors|compositor]] で利用可能な設定を通じてのみ、タブレットを設定できます。&lt;br /&gt;
&lt;br /&gt;
* [[GNOME]] は、ボタンの設定とタブレットのモニターへのマッピングを完全にサポートしています。  [https://help.gnome.org/users/gnome-help/stable/wacom.html.en]&lt;br /&gt;
* [[KDE Plasma]] は、ボタンの構成とタブレットのモニターへのマッピングを完全にサポートしています。  [https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/677] [https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/1116]&lt;br /&gt;
* [[Sway]] は、タブレットのモニターまたは領域へのマッピングのみをサポートします。[[#Sway]] および {{Man|5|sway-input|MAPPING CONFIGURATION}} を参照してください。&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* libinput または Wayland を使用している場合、特定の [[入力リマップユーティリティ]] を使用してタブレットボタンをリマップできます。&lt;br /&gt;
* Wayland 環境にタブレットオプションがない場合は、OpenTabletDriver を使用することもできます。[[#代替ドライバー]] を参照してください。}}&lt;br /&gt;
&lt;br /&gt;
=== Sway ===&lt;br /&gt;
&lt;br /&gt;
==== 出力へのマップ ====&lt;br /&gt;
&lt;br /&gt;
これは、[[#タブレットをモニターにマッピングする]] と同じ効果があり、タブレットのアスペクト比が出力と正確に一致しないことを意味します。&lt;br /&gt;
&lt;br /&gt;
次の行を sway 構成ファイルに追加します。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|&lt;br /&gt;
input &#039;&#039;Identifier&#039;&#039; map_to_output &#039;&#039;Display-Name&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
ここで、&#039;&#039;Identifier&#039;&#039; は、{{ic|swaymsg -t get_inputs}} によって読み取られるタブレットの識別子です。&lt;br /&gt;
&lt;br /&gt;
{{hc|$ swaymsg -t get_inputs|&lt;br /&gt;
Input device: Wacom One by Wacom S Pen&lt;br /&gt;
 Type: Tablet tool&lt;br /&gt;
 Identifier: &#039;&#039;&#039;1386:890:Wacom_One_by_Wacom_S_Pen&#039;&#039;&#039;&lt;br /&gt;
 Product ID: 890&lt;br /&gt;
 Vendor ID: 1386&lt;br /&gt;
 Libinput Send Events: enabled&lt;br /&gt;
 ...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|接続するタブレットにこのマッピングを適用する場合は、デバイス識別子の代わりに {{ic|type:tablet_pad}} と {{ic|type:tablet_tool}} を使用します。}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Display-Name&#039;&#039; は、{{ic|swaymsg -t get_outputs}} によって読み取られる出力の識別子です。&lt;br /&gt;
&lt;br /&gt;
{{hc|$ swaymsg -t get_outputs|&lt;br /&gt;
 Output &#039;&#039;&#039;HDMI-A-1&#039;&#039;&#039; &#039;Samsung Electric Company ...&#039;&lt;br /&gt;
 Current mode: 1920x1080 @ 60.000 Hz&lt;br /&gt;
 Position: 0,0&lt;br /&gt;
 Scale factor: 1.000000&lt;br /&gt;
 Scale filter: nearest&lt;br /&gt;
 ...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== 出力領域へのマップ ====&lt;br /&gt;
&lt;br /&gt;
[[#画面領域の幅を狭くする]] と同じ効果があります。まず、タブレットのアクティブ領域を把握する必要があります。:&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
# libinput debug-tablet&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
タブレットのスタイラスを右下隅に移動して最大の &#039;&#039;ABS_X&#039;&#039; および &#039;&#039;ABS_Y&#039;&#039; 値を取得してから、sway 構成に次の行を追加します。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|&lt;br /&gt;
input &#039;&#039;Identifier&#039;&#039; map_to_region &#039;&#039;X&#039;&#039; &#039;&#039;Y&#039;&#039; &#039;&#039;width&#039;&#039; &#039;&#039;output_height&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;width&#039;&#039; は &#039;&#039;output_height * (ABS_X / ABS_Y)&#039;&#039; で計算され、X と Y は領域の開始座標です。&lt;br /&gt;
&lt;br /&gt;
たとえば、1920x1080 のモニターが 2 台並んでいて、タブレットを右端のモニターの領域にマップする場合は、次の行を使用します。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|&lt;br /&gt;
input &#039;&#039;Identifier&#039;&#039; map_to_region 1920 0 &#039;&#039;width&#039;&#039; 1080&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==トラブルシューティング==&lt;br /&gt;
&lt;br /&gt;
=== Device not recognized by the kernel ===&lt;br /&gt;
&lt;br /&gt;
Some tablets may be too recent to be supported by your current kernel. On Wacom devices, this is represented by a &amp;quot;Unknown device_type&amp;quot; message in your &#039;&#039;dmesg&#039;&#039; output. In this scenario, it is possible that the out-of-tree version of the drivers have support for your tablet before it is upstreamed to the kernel.&lt;br /&gt;
&lt;br /&gt;
[[Install]] {{AUR|input-wacom-dkms-git}} if you have a Wacom tablet, or {{AUR|digimend-kernel-drivers-dkms-git}} if you have a tablet from another manufacturer.&lt;br /&gt;
&lt;br /&gt;
=== Tablet recognized but xsetwacom and similar tools do not display it ===&lt;br /&gt;
&lt;br /&gt;
Your logs indicate that the correct driver is selected, and the tablet works. However, when running {{ic|xsetwacom list devices}} or use similar tools that depend on the correct driver, you get an empty list.&lt;br /&gt;
&lt;br /&gt;
A reason might be the execution order of your xorg configuration. {{ic|/usr/share/X11/xorg.conf.d}} gets executed first, then {{ic|/etc/X11/xorg.conf.d}}. The package {{pkg|xf86-input-wacom}} contains the file {{ic|/usr/share/X11/xorg.conf.d/70-wacom.conf}}. If there is a catchall for tablets, executed after this file, the previously selected {{ic|wacom}} driver will be overwritten with a generic one that does not work with xsetwacom et. al.&lt;br /&gt;
&lt;br /&gt;
To make sure, check the rules contained in the files executed after {{ic|/usr/share/X11/xorg.conf.d/70-wacom.conf}} for anything that looks like graphics tablets.&lt;br /&gt;
&lt;br /&gt;
=== Manual setup ===&lt;br /&gt;
&lt;br /&gt;
A manual configuration is done in {{ic|/etc/X11/xorg.conf}} or in a separate file in the {{ic|/etc/X11/xorg.conf.d/}} directory. The Wacom tablet device is accessed using an input event interface in {{ic|/dev/input/}} which is provided by the kernel driver. The interface number {{ic|event??}} is likely to change when unplugging and replugging into the same or especially a different &#039;&#039;USB&#039;&#039; port. Therefore it is wise to not refer to the device using its concrete {{ic|event??}} interface (&#039;&#039;&#039;static&#039;&#039;&#039; configuration) but by letting &#039;&#039;udev&#039;&#039; dynamically create a symbolic link to the correct {{ic|event}} file (&#039;&#039;&#039;dynamic&#039;&#039;&#039; configuration).&lt;br /&gt;
&lt;br /&gt;
==== USB-devices ====&lt;br /&gt;
&lt;br /&gt;
After (re-)plugging in your &#039;&#039;USB&#039;&#039;-tablet (or at least after rebooting) some symbolic links should appear in {{ic|/dev/input}} referring to your tablet device.&lt;br /&gt;
&lt;br /&gt;
{{hc|$ ls /dev/input/wacom*|&lt;br /&gt;
/dev/input/wacom  /dev/input/wacom-stylus  /dev/input/wacom-touch&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
If not, your device is likely to be not yet included in the &#039;&#039;udev&#039;&#039; configuration from &#039;&#039;wacom-udev&#039;&#039; which resides in {{ic|/usr/lib/udev/rules.d/wacom.rules}}. Copy the file to {{ic|/etc/udev/rules.d/wacom.rules}} and modify it there.&lt;br /&gt;
&lt;br /&gt;
Add your device to the file by duplicating some line of another device and adapting &#039;&#039;idVendor&#039;&#039;,&#039;&#039;idProduct&#039;&#039; and the symlink name to your device.&lt;br /&gt;
The two id&#039;s can be determined using&lt;br /&gt;
&lt;br /&gt;
{{hc|$ lsusb {{!}} grep -i wacom|&lt;br /&gt;
Bus 002 Device 007: ID 056a:0062 Wacom Co., Ltd&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
In this example idVendor is 056a and idProduct 0062. In case you have device with touch (e.g. Bamboo Pen&amp;amp;Touch) you might need to add a second line for the touch input interface. For details check the linuxwacom wiki [https://github.com/linuxwacom/input-wacom/wiki/Fixed-device-files-with-udev Fixed device files with udev].&lt;br /&gt;
&lt;br /&gt;
Save the file and reload udev&#039;s configuration profile using the command &#039;&#039;udevadm control --reload-rules&#039;&#039; Check again the content of &#039;&#039;/dev/input&#039;&#039; to make sure that the &#039;&#039;wacom&#039;&#039; symlinks appeared. Note that you may need to plug-in the tablet again for the device to appear.&lt;br /&gt;
&lt;br /&gt;
The files of further interest for the &#039;&#039;Xorg&#039;&#039; configuration are {{ic|/dev/input/wacom}} and for a touch-device also {{ic|/dev/input/wacom_touch}}.&lt;br /&gt;
&lt;br /&gt;
==== Static setup ====&lt;br /&gt;
&lt;br /&gt;
Usually it is recommended to rely on [[Xorg]]&#039;s auto-detection or to use a &#039;&#039;&#039;dynamic&#039;&#039;&#039; setup. However for an &#039;&#039;internal&#039;&#039; tablet device one might consider a &#039;&#039;&#039;static&#039;&#039;&#039; Xorg setup in case autodetection does not work. A static [[Xorg]] setup is usually not able to recognize your Wacom tablet when it is connected to a different &#039;&#039;USB&#039;&#039; port or even after unplugging and replugging it into the same port, and as such it should be considered as deprecated.&lt;br /&gt;
&lt;br /&gt;
If you insist in using a static setup just refer to your tablet in the &#039;&#039;Xorg&#039;&#039; configuration in the next section using the correct {{ic|/dev/input/event??}} files as one can find out by looking into {{ic|/proc/bus/input/devices}}.&lt;br /&gt;
&lt;br /&gt;
==== Xorg configuration ====&lt;br /&gt;
&lt;br /&gt;
In either case, dynamic or static setup you got now one or two files in {{ic|/dev/input/}} which refer to the correct input event devices of your tablet. All that is left to do is add the relevant information to {{ic|/etc/X11/xorg.conf}}, or a dedicated file under  {{ic|/etc/X11/xorg.conf.d/}}. The exact configuration depends on your tablet&#039;s features of course. {{ic|xsetwacom list devices}} might give helpful information on what &#039;&#039;InputDevice&#039;&#039; sections are needed for your tablet.&lt;br /&gt;
&lt;br /&gt;
An example configuration for a &#039;&#039;Volito2&#039;&#039; might look like this&lt;br /&gt;
&lt;br /&gt;
 Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
     Driver        &amp;quot;wacom&amp;quot;&lt;br /&gt;
     Identifier    &amp;quot;stylus&amp;quot;&lt;br /&gt;
     Option        &amp;quot;Device&amp;quot;       &amp;quot;/dev/input/wacom&amp;quot;   # or the corresponding event?? for a static setup&lt;br /&gt;
     Option        &amp;quot;Type&amp;quot;         &amp;quot;stylus&amp;quot;&lt;br /&gt;
     Option        &amp;quot;USB&amp;quot;          &amp;quot;on&amp;quot;                 # USB ONLY&lt;br /&gt;
     Option        &amp;quot;Mode&amp;quot;         &amp;quot;Relative&amp;quot;           # other option: &amp;quot;Absolute&amp;quot;&lt;br /&gt;
     Option        &amp;quot;Vendor&amp;quot;       &amp;quot;WACOM&amp;quot;&lt;br /&gt;
     Option        &amp;quot;tilt&amp;quot;         &amp;quot;on&amp;quot;  # add this if your tablet supports tilt&lt;br /&gt;
     Option        &amp;quot;Threshold&amp;quot;    &amp;quot;5&amp;quot;   # the official linuxwacom howto advises this line&lt;br /&gt;
 EndSection&lt;br /&gt;
 Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
     Driver        &amp;quot;wacom&amp;quot;&lt;br /&gt;
     Identifier    &amp;quot;eraser&amp;quot;&lt;br /&gt;
     Option        &amp;quot;Device&amp;quot;       &amp;quot;/dev/input/wacom&amp;quot;   # or the corresponding event?? for a static setup&lt;br /&gt;
     Option        &amp;quot;Type&amp;quot;         &amp;quot;eraser&amp;quot;&lt;br /&gt;
     Option        &amp;quot;USB&amp;quot;          &amp;quot;on&amp;quot;                  # USB ONLY&lt;br /&gt;
     Option        &amp;quot;Mode&amp;quot;         &amp;quot;Relative&amp;quot;            # other option: &amp;quot;Absolute&amp;quot;&lt;br /&gt;
     Option        &amp;quot;Vendor&amp;quot;       &amp;quot;WACOM&amp;quot;&lt;br /&gt;
     Option        &amp;quot;tilt&amp;quot;         &amp;quot;on&amp;quot;  # add this if your tablet supports tilt&lt;br /&gt;
     Option        &amp;quot;Threshold&amp;quot;    &amp;quot;5&amp;quot;   # the official linuxwacom howto advises this line&lt;br /&gt;
 EndSection&lt;br /&gt;
 Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
     Driver        &amp;quot;wacom&amp;quot;&lt;br /&gt;
     Identifier    &amp;quot;cursor&amp;quot;&lt;br /&gt;
     Option        &amp;quot;Device&amp;quot;       &amp;quot;/dev/input/wacom&amp;quot;   # or the corresponding event?? for a static setup&lt;br /&gt;
     Option        &amp;quot;Type&amp;quot;         &amp;quot;cursor&amp;quot;&lt;br /&gt;
     Option        &amp;quot;USB&amp;quot;          &amp;quot;on&amp;quot;                  # USB ONLY&lt;br /&gt;
     Option        &amp;quot;Mode&amp;quot;         &amp;quot;Relative&amp;quot;            # other option: &amp;quot;Absolute&amp;quot;&lt;br /&gt;
     Option        &amp;quot;Vendor&amp;quot;       &amp;quot;WACOM&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
Make sure that you also change the path ({{Ic|&amp;quot;Device&amp;quot;}}) to your mouse, as it will be {{Ic|/dev/input/mouse_udev}} now.&lt;br /&gt;
&lt;br /&gt;
 Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
     Identifier  &amp;quot;Mouse1&amp;quot;&lt;br /&gt;
     Driver      &amp;quot;mouse&amp;quot;&lt;br /&gt;
     Option      &amp;quot;CorePointer&amp;quot;&lt;br /&gt;
     Option      &amp;quot;Device&amp;quot;             &amp;quot;/dev/input/mouse_udev&amp;quot;&lt;br /&gt;
     Option      &amp;quot;SendCoreEvents&amp;quot;     &amp;quot;true&amp;quot;&lt;br /&gt;
     Option      &amp;quot;Protocol&amp;quot;           &amp;quot;IMPS/2&amp;quot;&lt;br /&gt;
     Option      &amp;quot;ZAxisMapping&amp;quot;       &amp;quot;4 5&amp;quot;&lt;br /&gt;
     Option      &amp;quot;Buttons&amp;quot;            &amp;quot;5&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
Add this to the &#039;&#039;ServerLayout&#039;&#039; section&lt;br /&gt;
&lt;br /&gt;
 InputDevice &amp;quot;cursor&amp;quot; &amp;quot;SendCoreEvents&amp;quot; &lt;br /&gt;
 InputDevice &amp;quot;stylus&amp;quot; &amp;quot;SendCoreEvents&amp;quot;&lt;br /&gt;
 InputDevice &amp;quot;eraser&amp;quot; &amp;quot;SendCoreEvents&amp;quot;&lt;br /&gt;
&lt;br /&gt;
And finally make sure to update the identifier of your mouse in the &#039;&#039;ServerLayout&#039;&#039; section &amp;amp;ndash; as mine went from&lt;br /&gt;
&lt;br /&gt;
 InputDevice    &amp;quot;Mouse0&amp;quot; &amp;quot;CorePointer&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
 InputDevice    &amp;quot;Mouse1&amp;quot; &amp;quot;CorePointer&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Mouse moving erratically due to proximity sensor ===&lt;br /&gt;
&lt;br /&gt;
You can disable the mouse jumping due to a proximity sensor detecting a non-existing stylus. You can find your device with {{ic|xinput --list}}, and after spotting the stylus, disable it with:&lt;br /&gt;
&lt;br /&gt;
 $ xinput disable &#039;&#039;device&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This only works if you are not currently using a stylus.&lt;br /&gt;
&lt;br /&gt;
=== Touch arbitration not working on graphic tablets ===&lt;br /&gt;
&lt;br /&gt;
If you are using [[libinput]], graphic tablets that have a stylus and a touchscreen might not support [https://who-t.blogspot.com/2019/03/libinput-and-location-based-touch.html touch arbitration] out of the box because the devices are not grouped into the same libinput device group. You can fix this by writing [[udev]] rules. For example, if the touchscreen is recognized with {{ic|0001:000a}} and the Wacom tablet with {{Ic|0002:000b}}, you can create {{ic|/etc/udev/rules.d/80-touch-arbitration.rules}} as a rule that groups these devices into the group {{Ic|f865e87b}}:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/udev/rules.d/80-touch-arbitration.rules|2=&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0001&amp;quot;, ATTRS{idProduct}==&amp;quot;000a&amp;quot;, ENV{LIBINPUT_DEVICE_GROUP}=&amp;quot;f865e87b&amp;quot;&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0002&amp;quot;, ATTRS{idProduct}==&amp;quot;000b&amp;quot;, ENV{LIBINPUT_DEVICE_GROUP}=&amp;quot;f865e87b&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Reporting issues with non-Wacom tablets ===&lt;br /&gt;
&lt;br /&gt;
If you have a non-Wacom tablet that has missing features, you can [https://digimend.github.io/support/howto/trbl/diagnostics/ report a tablet test to DIGImend drivers authors] in order to include its functionalities into the driver. The DIGImend diagnostic tools are available on the AUR as {{AUR|uclogic-tools}}. You will also need the {{ic|lsusb}} and {{ic|usbhid-dump}} programs available in {{Pkg|usbutils}}.&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
*[https://sourceforge.net/apps/mediawiki/linuxwacom/index.php?title=Main_Page Linux Wacom Project Wiki]&lt;br /&gt;
*[http://www.gimptalk.com/forum/topic.php?t=17992&amp;amp;start=1 GIMP Talk - Community - Install Guide: Getting Wacom Drawing Tablets To Work In Gimp]&lt;br /&gt;
*[https://help.ubuntu.com/community/Wacom Ubuntu Help: Wacom]&lt;br /&gt;
*[https://ubuntuforums.org/showthread.php?t=1038949 Ubuntu Forums - Install a LinuxWacom Kernel Driver for Tablet PC&#039;s]&lt;/div&gt;</summary>
		<author><name>Hkiku482</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=WireGuard&amp;diff=40013</id>
		<title>WireGuard</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=WireGuard&amp;diff=40013"/>
		<updated>2025-03-18T15:34:05Z</updated>

		<summary type="html">&lt;p&gt;Hkiku482: /* インストール */ 同期&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:仮想プライベートネットワーク]]&lt;br /&gt;
[[en:WireGuard]]&lt;br /&gt;
[[zh-hans:WireGuard]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Linux Containers で OpenVPN クライアント}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
[https://www.wireguard.com/ WireGuard] のホームページより:&lt;br /&gt;
:Wireguard は最先端の暗号技術を使用する非常にシンプルで高速な VPN です。IPSec よりも高速・単純・軽量・有用であることを目指しており、面倒なことを避けています。OpenVPN と比べると高いパフォーマンスを発揮します。WireGuard は組み込みインターフェイスからスーパーコンピュータまで様々な環境に対応する汎用の VPN として設計されています。最初は Linux カーネル用にリリースされましたが、現在はクロスプラットフォーム（Windows、macOS、BSD、iOS、Android）であり、広く展開できます。&lt;br /&gt;
&lt;br /&gt;
この記事で使用されている主な概念の大まかな紹介は、[https://www.wireguard.com/ WireGuard] のプロジェクトホームページにあります。 WireGuard は、2019年後半から Linux カーネルに組み込まれています。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
ユーザースペースユーティリティの {{pkg|wireguard-tools}} パッケージを[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
または、ピアキーが使用可能な場合、さまざまなネットワークマネージャーが WireGuard のサポートを提供します。詳細については、[[#設定の永続化]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== グラフィカルクライアント ===&lt;br /&gt;
&lt;br /&gt;
* {{App|wireguird|Linux向けのWireGuard用GTK GUIクライアント。|https://github.com/UnnoTed/wireguird|{{AUR|wireguird}}}}&lt;br /&gt;
&lt;br /&gt;
=== コマンドラインツール ===&lt;br /&gt;
&lt;br /&gt;
* {{App|wg_tool|サーバーとユーザーの wireguard 設定を管理するツール。|https://github.com/gene-git/wg_tool|{{AUR|wg_tool}}}}&lt;br /&gt;
* {{App|wg-client|コマンドラインとGUIの両方を備えたLinuxクライアント。|https://github.com/gene-git/wg-client|{{AUR|wg-client}}}}&lt;br /&gt;
* {{App|wg2nd|{{man|8|wg-quick}}形式のWireGuard設定を[[systemd-networkd]]互換の設定に変換するツール。|https://git.flu0r1ne.net/wg2nd/about|{{AUR|wg2nd}}}}&lt;br /&gt;
&lt;br /&gt;
== 使用方法 ==&lt;br /&gt;
&lt;br /&gt;
ここでは以下の構成でピア間のトンネルを設定する方法を説明します:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! &lt;br /&gt;
! Peer A&lt;br /&gt;
! Peer B&lt;br /&gt;
|----------------------------------------------------------&lt;br /&gt;
| 外部 IP アドレス&lt;br /&gt;
| 10.10.10.1/24&lt;br /&gt;
| 10.10.10.2/24&lt;br /&gt;
|----------------------------------------------------------&lt;br /&gt;
| 内部 IP アドレス&lt;br /&gt;
| 10.0.0.1/24&lt;br /&gt;
| 10.0.0.2/24&lt;br /&gt;
|----------------------------------------------------------&lt;br /&gt;
| wireguard 使用ポート&lt;br /&gt;
| UDP/48574&lt;br /&gt;
| UDP/39814&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
外部アドレスはあらかじめ用意してください。例えば、ピア A からピア B に {{ic|ping 10.10.10.2}} で ping が通るようにする必要があります。内部アドレスは {{ic|ip}} コマンドで作成する新しいアドレスで、WireGuard ネットワーク内で内部的に共有します。IP アドレスの {{ic|/24}} は [[wikipedia:Classless_Inter-Domain_Routing#CIDR_notation|CIDR]] です。&lt;br /&gt;
&lt;br /&gt;
==== 鍵の生成 ====&lt;br /&gt;
&lt;br /&gt;
{{Note|秘密鍵ファイルを保存するときは {{ic|600}} などのように厳しいパーミッションを使うことを推奨します。}}&lt;br /&gt;
&lt;br /&gt;
秘密鍵を作成するには:&lt;br /&gt;
&lt;br /&gt;
 $ wg genkey &amp;gt; privatekey&lt;br /&gt;
&lt;br /&gt;
公開鍵を作成するには:&lt;br /&gt;
&lt;br /&gt;
 $ wg pubkey &amp;lt; privatekey &amp;gt; publickey&lt;br /&gt;
&lt;br /&gt;
もしくは、秘密鍵と公開鍵を同時に作成するには:&lt;br /&gt;
&lt;br /&gt;
 $ wg genkey | tee privatekey | wg pubkey &amp;gt; publickey&lt;br /&gt;
&lt;br /&gt;
量子コンピュータが実用化された場合を考慮して、既存の公開鍵暗号に対称鍵暗号のレイヤーを追加するために事前共有鍵を生成することもできます:&lt;br /&gt;
&lt;br /&gt;
 # wg genpsk &amp;gt; preshared&lt;br /&gt;
&lt;br /&gt;
=== 手動設定 ===&lt;br /&gt;
==== Peer A の設定 ====&lt;br /&gt;
&lt;br /&gt;
このピアでは UDP ポート 48574 を開いて内部・外部 IP アドレスと公開鍵を紐づけてピア B からの接続を許可します:&lt;br /&gt;
&lt;br /&gt;
 # ip link add dev wg0 type wireguard&lt;br /&gt;
 # ip addr add 10.0.0.1/24 dev wg0&lt;br /&gt;
 # wg set wg0 listen-port 48574 private-key ./privatekey&lt;br /&gt;
 # wg set wg0 peer [Peer B public key] persistent-keepalive 25 allowed-ips 10.0.0.2/32 endpoint 10.10.10.2:39814&lt;br /&gt;
 # ip link set wg0 up&lt;br /&gt;
&lt;br /&gt;
{{ic|[Peer B public key]}} は {{ic|1=EsnHH9m6RthHSs+sd9uM6eCHe/mMVFaRh93GYadDDnM=}} という形式で指定してください。{{ic|allowed-ips}} はトラフィックの送信を許可するアドレスのリストを指定してください。{{ic|allowed-ips 0.0.0.0/0}} であらゆるアドレスにトラフィックを送信できるようになります。&lt;br /&gt;
&lt;br /&gt;
==== Peer B の設定 ====&lt;br /&gt;
&lt;br /&gt;
ピア A とほとんど同じですが、wireguard デーモンで使用するのは UDP ポート 39814 でピア A からの接続だけを許可します:&lt;br /&gt;
&lt;br /&gt;
 # ip link add dev wg0 type wireguard&lt;br /&gt;
 # ip addr add 10.0.0.2/24 dev wg0&lt;br /&gt;
 # wg set wg0 listen-port 39814 private-key ./privatekey&lt;br /&gt;
 # wg set wg0 peer [Peer A public key] persistent-keepalive 25 allowed-ips 10.0.0.1/32 endpoint 10.10.10.1:48574&lt;br /&gt;
 # ip link set wg0 up&lt;br /&gt;
&lt;br /&gt;
=== 基本チェック ===&lt;br /&gt;
パラメータを付けずに wg コマンドを呼び出すことで現在の設定を確認できます。&lt;br /&gt;
&lt;br /&gt;
例えば、ピア A で実行すると以下のように表示されます:&lt;br /&gt;
&lt;br /&gt;
 peer-a$ wg&lt;br /&gt;
 interface: wg0&lt;br /&gt;
   public key: UguPyBThx/+xMXeTbRYkKlP0Wh/QZT3vTLPOVaaXTD8=&lt;br /&gt;
   private key: (hidden)&lt;br /&gt;
   listening port: 48574&lt;br /&gt;
 &lt;br /&gt;
 peer: 9jalV3EEBnVXahro0pRMQ+cHlmjE33Slo9tddzCVtCw=&lt;br /&gt;
   endpoint: 10.10.10.2:39814&lt;br /&gt;
   allowed ips: 10.0.0.2/32&lt;br /&gt;
&lt;br /&gt;
トンネルの末端にアクセスすることができるはずです:&lt;br /&gt;
  peer-a$ ping 10.0.0.2&lt;br /&gt;
&lt;br /&gt;
=== 設定の永続化 ===&lt;br /&gt;
&lt;br /&gt;
{{ic|showconf}} を使うことで設定を保存できます:&lt;br /&gt;
 # wg showconf wg0 &amp;gt; /etc/wireguard/wg0.conf&lt;br /&gt;
 # wg setconf wg0 /etc/wireguard/wg0.conf&lt;br /&gt;
&lt;br /&gt;
==== ピア設定例 ====&lt;br /&gt;
&lt;br /&gt;
{{hc|1=/etc/wireguard/wg0.conf|2=&lt;br /&gt;
[Interface]&lt;br /&gt;
Address = 10.0.0.1/32&lt;br /&gt;
PrivateKey = [CLIENT PRIVATE KEY]&lt;br /&gt;
MTU = 1420&lt;br /&gt;
&lt;br /&gt;
[Peer]&lt;br /&gt;
PublicKey = [SERVER PUBLICKEY]&lt;br /&gt;
AllowedIPs = 10.0.0.0/24, 10.123.45.0/24, 1234:4567:89ab::/48&lt;br /&gt;
Endpoint = [SERVER ENDPOINT]:51820&lt;br /&gt;
PersistentKeepalive = 25&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== systemd-networkd の設定例 ====&lt;br /&gt;
&lt;br /&gt;
{{hc|1=/etc/systemd/network/30-wg0.netdev|2=&lt;br /&gt;
[NetDev]&lt;br /&gt;
Name = wg0&lt;br /&gt;
Kind = wireguard&lt;br /&gt;
Description = Wireguard&lt;br /&gt;
&lt;br /&gt;
[WireGuard]&lt;br /&gt;
PrivateKey = [CLIENT PRIVATE KEY]&lt;br /&gt;
&lt;br /&gt;
[WireGuardPeer]&lt;br /&gt;
PublicKey = [SERVER PUBLIC KEY]&lt;br /&gt;
PresharedKey = [PRE SHARED KEY]&lt;br /&gt;
AllowedIPs = 10.0.0.0/24&lt;br /&gt;
Endpoint = [SERVER ENDPOINT]:51820&lt;br /&gt;
PersistentKeepalive = 25&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{hc|1=/etc/systemd/network/30-wg0.network|2=&lt;br /&gt;
[Match]&lt;br /&gt;
Name = wg0&lt;br /&gt;
&lt;br /&gt;
[Network]&lt;br /&gt;
Address = 10.0.0.3/32&lt;br /&gt;
DNS = 10.0.0.1&lt;br /&gt;
&lt;br /&gt;
[Route]&lt;br /&gt;
Gateway = 10.0.0.1&lt;br /&gt;
Destination = 10.0.0.0/24&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 特定のユースケース: VPN サーバー ==&lt;br /&gt;
&lt;br /&gt;
このセクションでは [[OpenVPN]] などと同じように暗号化されたトンネルを使ってサーバー・ネットワークリソースにアクセスできるようにするため、WireGuard の「サーバー」と汎用的な「クライアント」を設定します。サーバーは Linux で稼働させますがクライアントのプラットフォームは複数選択できます (WireGuard プロジェクトは Linux ネイティブや macOS のソフトウェアに加えて iOS や Android プラットフォームのアプリも提供しています)。詳しくは公式プロジェクトの [https://www.wireguard.com/install/ インストールリンク] を見てください。&lt;br /&gt;
&lt;br /&gt;
=== サーバー ===&lt;br /&gt;
サーバー側のマシンではまず IPv4 フォワーディングを有効にしてください:&lt;br /&gt;
&lt;br /&gt;
 # sysctl net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
変更を永続化するには {{ic|/etc/sysctl.d/99-sysctl.conf}} に {{ic|1=net.ipv4.ip_forward = 1}} を追加します。&lt;br /&gt;
&lt;br /&gt;
インターネットに接続する場合は[[ファイアウォール]]を設定することが推奨されます:&lt;br /&gt;
* WireGuard が動作するポートの UDP トラフィックを許可してください (例えば 51820/udp のトラフィックを許可)。&lt;br /&gt;
* WireGurad の設定 {{ic|/etc/wireguard/wg0.conf}} に転送ポリシーを記述しない場合はファイアウォールで転送ポリシーを設定してください。以下の例はそのまま動作します。&lt;br /&gt;
&lt;br /&gt;
最後に、WAN からアクセスできるようにするため WireGuard のポートをルーターからサーバーの LAN の IP に転送するようにする必要があります。&lt;br /&gt;
&lt;br /&gt;
=== 鍵の生成 ===&lt;br /&gt;
サーバーとクライアントの鍵を[[#鍵の生成]]で説明しているように生成してください。&lt;br /&gt;
&lt;br /&gt;
=== サーバーの設定 ===&lt;br /&gt;
サーバーの設定ファイルを作成:&lt;br /&gt;
&lt;br /&gt;
{{Note|&#039;&#039;PresharedKey&#039;&#039; 行は任意です。使用する場合、事前共有鍵をサーバーとクライアントの設定ファイルで設定する必要があります。詳しくは wg の [[man ページ]]を参照してください。}}&lt;br /&gt;
&lt;br /&gt;
{{hc|1=/etc/wireguard/wg0.conf|2=&lt;br /&gt;
[Interface]&lt;br /&gt;
Address = 10.200.200.1/24&lt;br /&gt;
SaveConfig = true&lt;br /&gt;
ListenPort = 51820&lt;br /&gt;
PrivateKey = [SERVER PRIVATE KEY]&lt;br /&gt;
MTU = 1420&lt;br /&gt;
&lt;br /&gt;
# note - substitute &#039;&#039;eth0&#039;&#039; in the following lines to match the Internet-facing interface&lt;br /&gt;
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE&lt;br /&gt;
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE&lt;br /&gt;
&lt;br /&gt;
[Peer]&lt;br /&gt;
# client foo&lt;br /&gt;
PublicKey = [FOO&#039;s PUBLIC KEY]&lt;br /&gt;
PresharedKey = [PRE-SHARED KEY]&lt;br /&gt;
AllowedIPs = 10.200.200.2/32&lt;br /&gt;
&lt;br /&gt;
[Peer]&lt;br /&gt;
# client bar&lt;br /&gt;
PublicKey = [BAR&#039;s PUBLIC KEY]&lt;br /&gt;
PresharedKey = [PRE-SHARED KEY]&lt;br /&gt;
AllowedIPs = 10.200.200.3/32&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|必要に応じて同じような形式でピアを追加してください。}}&lt;br /&gt;
&lt;br /&gt;
インターフェイスは手動あるいは [[systemctl]] で制御できます。&lt;br /&gt;
&lt;br /&gt;
{{ic|wg-quick up wg0}} でインターフェイスが立ち上がり {{ic|wg-quick down wg0}} で終了します。&lt;br /&gt;
&lt;br /&gt;
systemctl で制御したい場合、{{ic|wg-quick@.service}} を[[起動]]・[[有効化]]してください。&amp;quot;@&amp;quot; 記号の後ろにサーバーの設定の名前を入力してください。例:&lt;br /&gt;
 # systemctl start wg-quick@wg0&lt;br /&gt;
&lt;br /&gt;
=== クライアントの設定 ===&lt;br /&gt;
&lt;br /&gt;
クライアントの設定ファイルを作成:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=foo.conf|2=&lt;br /&gt;
[Interface]&lt;br /&gt;
Address = 10.200.200.2/24&lt;br /&gt;
PrivateKey = [FOO&#039;s PRIVATE KEY]&lt;br /&gt;
DNS = 10.200.200.1&lt;br /&gt;
MTU = 1420&lt;br /&gt;
&lt;br /&gt;
[Peer]&lt;br /&gt;
PublicKey = [SERVER PUBLICKEY]&lt;br /&gt;
PresharedKey = [PRE-SHARED KEY]&lt;br /&gt;
AllowedIPs = 0.0.0.0/0&lt;br /&gt;
Endpoint = my.ddns.address.com:51820&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{hc|1=bar.conf|2=&lt;br /&gt;
[Interface]&lt;br /&gt;
Address = 10.200.200.3/24&lt;br /&gt;
PrivateKey = [BAR&#039;s PRIVATE KEY]&lt;br /&gt;
DNS = 10.200.200.1&lt;br /&gt;
MTU = 1420&lt;br /&gt;
&lt;br /&gt;
[Peer]&lt;br /&gt;
PublicKey = [SERVER PUBLICKEY]&lt;br /&gt;
PresharedKey = [PRE-SHARED KEY]&lt;br /&gt;
AllowedIPs = 0.0.0.0/0&lt;br /&gt;
Endpoint = my.ddns.address.com:51820&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|1=設定ファイルを作るときは、公開・秘密鍵と &#039;&#039;Address =&#039;&#039; の値を適当に置き換えてください。}}&lt;br /&gt;
&lt;br /&gt;
クライアントがスマートフォンなどの場合、{{Pkg|qrencode}} を使って設定を共有することができます:&lt;br /&gt;
 $ qrencode -t ansiutf8 &amp;lt; foo.conf&lt;br /&gt;
&lt;br /&gt;
{{Note|[[NetworkManager]] を使用している場合、{{ic|NetworkManager-wait-online.service}} を、[[systemd-networkd]] を使用している場合、{{ic|systemd-networkd-wait-online.service}} を有効化することでネットワーク接続が有効になってからサービスが実行されるようになります。}}&lt;br /&gt;
&lt;br /&gt;
== トンネルのテスト ==&lt;br /&gt;
&lt;br /&gt;
トンネルが確立されたら、[[netcat]]を使ってトラフィックを送り、スループットや CPU 使用率などをテストすることができます。&lt;br /&gt;
トンネルの片側で {{ic|nc}} を listen モードで実行し、もう片側で {{ic|/dev/zero}} から送信モードの {{ic|nc}} にデータをパイプします。&lt;br /&gt;
&lt;br /&gt;
以下の例では、ポート 2222 がトラフィックに使用されています（ファイアウォールを使用している場合は、ポート2222のトラフィックを必ず許可してください）。&lt;br /&gt;
&lt;br /&gt;
トンネルの片側で、トラフィックを確認する。&lt;br /&gt;
&lt;br /&gt;
 $ nc -vvlnp 2222&lt;br /&gt;
&lt;br /&gt;
トンネルの向こう側では、トラフィックを送ってください。&lt;br /&gt;
&lt;br /&gt;
 $ dd if=/dev/zero bs=1024K count=1024 | nc -v 10.0.0.203 2222&lt;br /&gt;
&lt;br /&gt;
状態の監視は {{ic|wg}} で直接行うことができます。&lt;br /&gt;
&lt;br /&gt;
{{hc|# wg|2=&lt;br /&gt;
interface: wg0&lt;br /&gt;
  public key: UguPyBThx/+xMXeTbRYkKlP0Wh/QZT3vTLPOVaaXTD8=&lt;br /&gt;
  private key: (hidden)&lt;br /&gt;
  listening port: 51820&lt;br /&gt;
&lt;br /&gt;
peer: 9jalV3EEBnVXahro0pRMQ+cHlmjE33Slo9tddzCVtCw=&lt;br /&gt;
  preshared key: (hidden)&lt;br /&gt;
  endpoint: 192.168.1.216:53207&lt;br /&gt;
  allowed ips: 10.0.0.0/0&lt;br /&gt;
  latest handshake: 1 minutes, 17 seconds ago&lt;br /&gt;
  transfer: 56.43 GiB received, 1.06 TiB sent&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== ヒントとテクニック ==&lt;br /&gt;
&lt;br /&gt;
=== 秘密鍵を暗号化して保存 ===&lt;br /&gt;
&lt;br /&gt;
設定ファイルの [Interface] セクションの PrivateKey 行を以下のように置き換えることで [[pass]] を使って秘密鍵を暗号化できます:&lt;br /&gt;
&lt;br /&gt;
 PostUp = wg set %i private-key &amp;lt;(su user -c &amp;quot;export PASSWORD_STORE_DIR=/path/to/your/store/; pass WireGuard/private-keys/%i&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
user はユーザー名に置き換えてください。詳しくは {{man|8|wg-quick}} を参照。&lt;br /&gt;
&lt;br /&gt;
=== IP が変わるエンドポイント ===&lt;br /&gt;
&lt;br /&gt;
サーバーのドメインの解決後、WireGuard は DNS で再度変更をチェックすることはありません [https://lists.zx2c4.com/pipermail/wireguard/2017-November/002028.html]。&lt;br /&gt;
&lt;br /&gt;
WireGuard サーバーの IP アドレスが DHCP, Dyndns, IPv6 などによって頻繁に変更された場合、WireGuard クライアントは接続を失います。その際 {{ic|wg set &amp;quot;$INTERFACE&amp;quot; peer &amp;quot;$PUBLIC_KEY&amp;quot; endpoint &amp;quot;$ENDPOINT&amp;quot;}} などのようにエンドポイントを更新しなくてはなりません。&lt;br /&gt;
&lt;br /&gt;
また、エンドポイントがアドレスを変更したとき (例えば新しいプロバイダ・データセンターに移行した場合)、DNS を更新するだけでは不十分となるため、DNS ベースのセットアップでは reresolve-dns を定期的に実行する必要が出てきます。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|wireguard-tools}} には WG の設定ファイルを読み込んでエンドポイントのアドレスを自動的にリセットするスクリプト {{ic|/usr/share/wireguard/examples/reresolve-dns/reresolve-dns.sh}} が含まれています。&lt;br /&gt;
&lt;br /&gt;
{{ic|/usr/share/wireguard/examples/reresolve-dns/reresolve-dns.sh /etc/wireguard/wg.conf}} を定期的に実行することで IP が変わったエンドポイントから復旧できます。&lt;br /&gt;
&lt;br /&gt;
systemd タイマーを使って30秒ごとに WireGuard のエンドポイントを更新する例 [https://git.zx2c4.com/WireGuard/tree/contrib/examples/reresolve-dns/README]:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/wireguard_reresolve-dns.timer|2=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Periodically reresolve DNS of all WireGuard endpoints&lt;br /&gt;
&lt;br /&gt;
[Timer]&lt;br /&gt;
OnCalendar=*:*:0/30&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=timers.target&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/wireguard_reresolve-dns.service|2=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Reresolve DNS of all WireGuard endpoints&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
After=network-online.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=oneshot&lt;br /&gt;
ExecStart=/bin/sh -c &#039;for i in /etc/wireguard/*.conf; do /usr/share/wireguard/examples/reresolve-dns/reresolve-dns.sh &amp;quot;\$i&amp;quot;; done&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
上記ファイルを作成したら {{ic|wireguard_reresolve-dns.timer}} を[[起動]]・[[有効化]]してください。&lt;br /&gt;
&lt;br /&gt;
=== QR コードを生成 ===&lt;br /&gt;
&lt;br /&gt;
クライアントが電話などのモバイル デバイスの場合、{{Pkg|qrencode}} を使用してクライアントの設定 QR コードを生成し、端末に表示できます。&lt;br /&gt;
&lt;br /&gt;
 $ qrencode -t ansiutf8 -r &#039;&#039;client.conf&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== デバッグログを有効にする ===&lt;br /&gt;
&lt;br /&gt;
ダイナミックデバッグをサポートするカーネル上で Linux カーネルモジュールを使用する場合、実行することでデバッグ情報をカーネルリングバッファ（[[dmesg]] や [[journalctl]] で表示可能）に書き込むことができます。&lt;br /&gt;
&lt;br /&gt;
 # modprobe wireguard&lt;br /&gt;
 # echo module wireguard +p &amp;gt; /sys/kernel/debug/dynamic_debug/control&lt;br /&gt;
&lt;br /&gt;
=== ピア(サーバー)設定の再読み込み ===&lt;br /&gt;
&lt;br /&gt;
WireGuard ピア（主にサーバ）が設定から他のピアを追加または削除し、アクティブなセッションを停止せずに再読み込みしたい場合、次のコマンドを実行することができます:&lt;br /&gt;
&lt;br /&gt;
 # wg syncconf ${WGNET} &amp;lt;(wg-quick strip ${WGNET})&lt;br /&gt;
&lt;br /&gt;
ここで、{{ic|$WGNET}} は WireGuard インターフェース名または設定ベース名です。例えば、{{ic|wg0}}(サーバー用) または {{ic|client}} です。(クライアント用には &#039;&#039;.conf&#039;&#039; という拡張子をつけません)。&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== ルートが定期的にリセットされる ===&lt;br /&gt;
&lt;br /&gt;
[[NetworkManager]] が WireGuard のインターフェイスを管理しないようにしてください:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=/etc/NetworkManager/conf.d/unmanaged.conf|2=&lt;br /&gt;
[keyfile]&lt;br /&gt;
unmanaged-devices=interface-name:wg0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== DNS 解析の不具合について === &lt;br /&gt;
&lt;br /&gt;
すべてのトラフィックを WireGuard インターフェイスでトンネリングする場合、しばらくすると、または新規接続時に接続が失われたように見えることがあります。これは、[[ネットワークマネージャ]]または [[DHCP]] クライアントが {{ic|/etc/resolv.conf}} を上書きすることによって発生した可能性があります。&lt;br /&gt;
&lt;br /&gt;
デフォルトでは &#039;&#039;wg-quick&#039;&#039; は新しい [[DNS]] エントリを登録するために &#039;&#039;resolvconf&#039;&#039; を使用します (設定ファイルの {{ic|DNS}} キーワードから).これは、&#039;&#039;resolvconf&#039;&#039; を使用しない[[ネットワークマネージャ]]や [[DHCP]] クライアントで、{{ic|/etc/resolv.conf}} を上書きし、wg-quick が追加した DNS サーバを削除するため問題が発生するでしょう。&lt;br /&gt;
&lt;br /&gt;
解決策としては、[[resolvconf]] をサポートするネットワークソフトを使用することです。&lt;br /&gt;
&lt;br /&gt;
{{Note|[[systemd-resolved]] のユーザは、{{Pkg|systemd-resolvconf}} が[[インストール]]されていることを確認する必要があります。}}&lt;br /&gt;
&lt;br /&gt;
[[NetworkManager]] のユーザは、デフォルトでは resolvconf を使用しないことを知っておく必要があります。[[systemd-resolved]] を使うことが推奨されています。 これが望ましくない場合は {{Pkg|openresolv}} を[[インストール]]して、[[NetworkManager#Use openresolv]].&lt;br /&gt;
を使用するように NetworkManagerを設定してください。&lt;br /&gt;
&lt;br /&gt;
=== 低 MTU ===&lt;br /&gt;
&lt;br /&gt;
MTU が低すぎる (1280 未満) ため、wg-quick は WireGuard インターフェイスの作成に失敗した可能性があります。これは、クライアントのインターフェイス セクションの WireGuard 設定で MTU 値を設定することで解決できます。&lt;br /&gt;
&lt;br /&gt;
{{hc|foo.config|2=&lt;br /&gt;
[Interface]&lt;br /&gt;
Address = 10.200.200.2/24&lt;br /&gt;
MTU = 1420&lt;br /&gt;
PrivateKey = &#039;&#039;PEER_FOO_PRIVATE_KEY&#039;&#039;&lt;br /&gt;
DNS = 10.200.200.1&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== 鍵の長さや形式が正しくない ===&lt;br /&gt;
&lt;br /&gt;
以下のエラーを回避するためには、鍵ファイルのパスではなく、鍵の値を設定ファイルに記述してください。&lt;br /&gt;
&lt;br /&gt;
{{hc|# wg-quick up wg0|&lt;br /&gt;
[#] ip link add wg0 type wireguard&lt;br /&gt;
[#] wg setconf wg0 /dev/fd/63&lt;br /&gt;
Key is not the correct length or format: `&#039;&#039;/path/example.key&#039;&#039;&#039;&lt;br /&gt;
Configuration parsing error&lt;br /&gt;
[#] ip link delete dev wg0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== NAT /ファイアウォールの背後にある持続的な接続を確立することができない ===&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、WireGuard ピアは通信する必要がない間は沈黙を保つため、NAT や[[ファイアウォール]]の背後にあるピアは、他のピアに自らアクセスするまで他のピアからアクセスできない場合があります（または接続がタイムアウトする場合もあります）。NAT やファイアウォールの背後にあるピアの{{ic|1=PersistentKeepalive = 25}} 設定に追加することで、接続が開いたままになることを保証できます。&lt;br /&gt;
&lt;br /&gt;
{{hc|# Set the persistent-keepalive via command line (temporarily)|&lt;br /&gt;
[#] wg set wg0 peer $PUBKEY persistent-keepalive 25&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== ループ ルーティング ===&lt;br /&gt;
&lt;br /&gt;
エンドポイント IP を許可 IP リストに追加すると、カーネルは、元のルートを使用するのではなく、当該デバイスバインディングにハンドシェイクを送信しようとします。その結果、ハンドシェイクの試行が失敗します。&lt;br /&gt;
&lt;br /&gt;
回避策として、エンドポイントへの正しいルートを、以下の方法で手動で追加する必要があります。&lt;br /&gt;
&lt;br /&gt;
 ip route add &amp;lt;endpoint ip&amp;gt; via &amp;lt;gateway&amp;gt; dev &amp;lt;network interface&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e.g. for peer B from above in a standard LAN setup:&lt;br /&gt;
&lt;br /&gt;
 ip route add 203.0.113.102 via 192.168.0.1 dev eth0&lt;br /&gt;
&lt;br /&gt;
このルートを永続化するには、{{ic|1=PostUp = ip route ...}} というコマンドを {{ic|wg0.conf}} の {{ic|[Interface]}} セクションに追加することができます。しかし、特定のセットアップ（例えば、NetworkManagerと組み合わせて {{ic|wg-quick@.service}} を使用）において、これはレジュームに失敗するかもしれません。さらに、これは静的なネットワーク設定に対してのみ機能し、ゲートウェイやデバイスが変更されると失敗します（例えば、ラップトップでイーサネットや無線 LAN を使用している場合など）。&lt;br /&gt;
&lt;br /&gt;
NetworkManagerを使用する場合、より柔軟な解決策として、ディスパッチャスクリプトを使用して WireGuardを起動することができます。root として以下を作成します。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dispatcher.d/50-wg0.sh|2=&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
case $2 in&lt;br /&gt;
  up)&lt;br /&gt;
    wg-quick up wg0&lt;br /&gt;
    ip route add &amp;lt;endpoint ip&amp;gt; via $IP4_GATEWAY dev $DEVICE_IP_IFACE&lt;br /&gt;
    ;;&lt;br /&gt;
  pre-down)&lt;br /&gt;
    wg-quick down wg0&lt;br /&gt;
    ;;&lt;br /&gt;
esac&lt;br /&gt;
}}&lt;br /&gt;
まだ起動していない場合は、{{ic|NetworkManager-dispatcher.service}} を起動し、有効にしてください。&lt;br /&gt;
また、NetworkManager が {{ic|wg0}} のルートを管理していないことを確認してください。([[#ルートが定期的にリセットされる|上記参照]])。&lt;br /&gt;
&lt;br /&gt;
=== NetworkManager で切断される ===&lt;br /&gt;
&lt;br /&gt;
デスクトップの場合、全てのトラフィックを WireGuard のインターフェイス経由にすると切断が発生することがあります。アクセスポイントに新しく接続してしばらくした後に切断が発生します。&lt;br /&gt;
&lt;br /&gt;
デフォルトでは &#039;&#039;wg-quick&#039;&#039; は [[openresolv]] などの resolvconf プロバイダを使用して新しい [[DNS]] エントリを登録します (設定ファイルの {{ic|DNS}} キーワード)。しかしながら [[NetworkManager]] はデフォルトでは resolvconf を使用しません。新しい [[DHCP]] リースが取得されるたびに [[NetworkManager]] は DHCP によって提供されたアドレスで全体の DNS アドレスを上書きします。&lt;br /&gt;
&lt;br /&gt;
==== resolvconf を使う ====&lt;br /&gt;
&lt;br /&gt;
システムで resolvconf を使っていて接続が切れる場合、NetworkManager が resolvconf を使うように設定してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/rc-manager.conf|2=&lt;br /&gt;
[main]&lt;br /&gt;
rc-manager=resolvconf&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== dnsmasq を使う ====&lt;br /&gt;
&lt;br /&gt;
[[Dnsmasq#openresolv]] を見てください。&lt;br /&gt;
&lt;br /&gt;
==== systemd-resolved を使う ====&lt;br /&gt;
&lt;br /&gt;
2018年9月時点では、{{Pkg|systemd-resolvconf}} による resolvconf 互換モードは &#039;&#039;wg-quick&#039;&#039; で機能しません。ただし {{ic|PostUp}} フックを使うことで &#039;&#039;wg-quick&#039;&#039; から [[systemd-resolved]] を使用することはできます。まず NetworkManager で &#039;&#039;systemd-resolved&#039;&#039; を使うように設定: [[NetworkManager#systemd-resolved]]。それからトンネルの設定を変更:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=/etc/wireguard/wg0.conf|2=&lt;br /&gt;
[Interface]&lt;br /&gt;
Address = 10.0.0.2/24  # The client IP from wg0server.conf with the same subnet mask&lt;br /&gt;
PrivateKey = [CLIENT PRIVATE KEY]&lt;br /&gt;
PostUp = resolvectl domain %i &amp;quot;~.&amp;quot;; resolvectl dns %i 10.0.0.1; resolvectl dnssec %i yes&lt;br /&gt;
MTU = 1420&lt;br /&gt;
&lt;br /&gt;
[Peer]&lt;br /&gt;
PublicKey = [SERVER PUBLICKEY]&lt;br /&gt;
AllowedIPs = 0.0.0.0/0, ::0/0&lt;br /&gt;
Endpoint = [SERVER ENDPOINT]:51820&lt;br /&gt;
PersistentKeepalive = 25&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
新しく利用可能になった DNS サーバーに優先度を与えるためにドメイン名は {{ic|&amp;quot;~.&amp;quot;}} に設定する必要があります。&lt;br /&gt;
&lt;br /&gt;
{{ic|wg0}} が落ちたときに &#039;&#039;systemd-resolved&#039;&#039; は自動的に全てのパラメータを戻すため {{ic|PostDown}} キーは必要ありません。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [[Wikipedia:WireGuard]]&lt;br /&gt;
* [https://www.wireguard.com/presentations/ Presentations by Jason Donenfeld].&lt;br /&gt;
* [https://lists.zx2c4.com/mailman/listinfo/wireguard Mailing list]&lt;br /&gt;
* [https://docs.sweeting.me/s/wireguard Unofficial WireGuard Documentation]&lt;br /&gt;
* [[Debian:Wireguard]]&lt;/div&gt;</summary>
		<author><name>Hkiku482</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Dm-crypt/%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E5%85%A8%E4%BD%93%E3%81%AE%E6%9A%97%E5%8F%B7%E5%8C%96&amp;diff=39725</id>
		<title>Dm-crypt/システム全体の暗号化</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Dm-crypt/%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E5%85%A8%E4%BD%93%E3%81%AE%E6%9A%97%E5%8F%B7%E5%8C%96&amp;diff=39725"/>
		<updated>2025-02-14T15:24:10Z</updated>

		<summary type="html">&lt;p&gt;Hkiku482: /* LUKS を使用するパーティションに TPM2とセキュアブートを使用する */ ウィキリンクの修正&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;br /&gt;
[[Category:保存データ暗号化]]&lt;br /&gt;
[[Category:ファイルシステム]]&lt;br /&gt;
[[Category:Arch の入手とインストール]]&lt;br /&gt;
[[de:Systemverschlüsselung mit dm-crypt]]&lt;br /&gt;
[[en:Dm-crypt/Encrypting an entire system]]&lt;br /&gt;
[[es:Dm-crypt/Encrypting an entire system]]&lt;br /&gt;
以下は &#039;&#039;dm-crypt&#039;&#039; を使って完全なシステム暗号化を行う一般的なシナリオの例です。通常の[[インストールガイド|インストール手順]]に加える必要がある変更を全て説明しています。必要なツールは全て [https://www.archlinux.jp/download/ インストールイメージ] に入っています。&lt;br /&gt;
&lt;br /&gt;
== 概要 ==&lt;br /&gt;
&lt;br /&gt;
root ファイルシステムの暗号化については機能やパフォーマンスの点で &#039;&#039;dm-crypt&#039;&#039; が優れています。システムの root ファイルシステムが dm-crypt デバイス上にあれば、システム上のほとんど全てのファイルが暗号化されます。root 以外のファイルシステムを選択的に暗号化するのと異なり、root ファイルシステムの暗号化は様々な情報を隠匿できます。インストールされているプログラム、ユーザーアカウントのユーザー名、[[mlocate]] や {{ic|/var/log/}} など媒介してデータ漏洩の恐れがあるファイルなど。さらに、root ファイルシステムを暗号化することでシステムの改竄が非常に難しくなります。[[ブートローダー]]やカーネルを除く全てが暗号化されるためです。&lt;br /&gt;
&lt;br /&gt;
以上の利点をのぞく、それぞれのシナリオのメリットやデメリットなどの違いをまとめて、全てのシナリオを以下の表で説明します:&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;
| [[#LUKS を使用するシンプルなパーティションレイアウト]]&lt;br /&gt;
LUKS で root を完全に暗号化するベーシックなセットアップ&lt;br /&gt;
|&lt;br /&gt;
* パーティショニングと設定がシンプル&lt;br /&gt;
|&lt;br /&gt;
* 柔軟性がない、暗号化するディスク領域をあらかじめ指定する必要がある&lt;br /&gt;
|----------------------------------------------------------&lt;br /&gt;
| [[#LUKS を使用するパーティションに TPM2とセキュアブートを使用する]]&lt;br /&gt;
LUKS で root を完全に暗号化するベーシックなセットアップ&lt;br /&gt;
|&lt;br /&gt;
LUKS を使用するシンプルなパーティションレイアウトと加えて&lt;br /&gt;
* [[Wikipedia:Evil maid attack|Evil maid attacks]]から保護することができます。&lt;br /&gt;
* セキュアブートが無効になっていたり変更された場合に、TPM2によってロック解除を防止することができます。&lt;br /&gt;
|&lt;br /&gt;
* LUKS を使用するシンプルなパーティションレイアウト と同じ&lt;br /&gt;
|----------------------------------------------------------&lt;br /&gt;
| [[#LVM on LUKS]]&lt;br /&gt;
LUKS 暗号化パーティションの中で LVM を使うことでパーティショニングの柔軟性を確保&lt;br /&gt;
|&lt;br /&gt;
* LVM　を使ったことがあるのであれば簡単にパーティショニングできます&lt;br /&gt;
* 一つのキーで全てのボリュームのロックを解除できます (ディスクからの復帰を設定するのが簡単)&lt;br /&gt;
* ロックされていればボリュームのレイアウトが外から分かりません&lt;br /&gt;
* [[Dm-crypt/スワップの暗号化#suspend-to-disk_を使用する|ハイバネート]]を利用したいときの一番簡単な方法&lt;br /&gt;
|&lt;br /&gt;
* LVM によってマッピングレイヤーとフックが追加されます&lt;br /&gt;
* ボリュームごとに別のキーを設定する場合は不便です&lt;br /&gt;
|----------------------------------------------------------&lt;br /&gt;
| [[#LUKS on LVM]]&lt;br /&gt;
LVM をセットアップした後に dm-crypt を使用&lt;br /&gt;
|&lt;br /&gt;
* LVM を使うことで複数のディスクにまたがる暗号化ボリュームを作成できます&lt;br /&gt;
* 非暗号化・暗号化ボリュームグループを簡単に混ぜられます&lt;br /&gt;
|&lt;br /&gt;
* 複雑です。ボリュームを変更するときは暗号化マッパーも変更する必要があります&lt;br /&gt;
* ボリュームごとに個別のキーが必要になります&lt;br /&gt;
* ロックされていても LVM レイアウトは外から分かってしまいます&lt;br /&gt;
|----------------------------------------------------------&lt;br /&gt;
| [[#ソフトウェア RAID と LUKS]]&lt;br /&gt;
RAID を設定した後に dm-crypt を使います。&lt;br /&gt;
|&lt;br /&gt;
* LUKS on LVM と同じ。&lt;br /&gt;
|&lt;br /&gt;
* LUKS on LVM と同じ。&lt;br /&gt;
|----------------------------------------------------------&lt;br /&gt;
| [[#Plain dm-crypt]]&lt;br /&gt;
dm-crypt の plain モードを使用、LUKS ヘッダーや LUKS の複数のキーのオプションは使わない&amp;lt;br&amp;gt;このシナリオでは {{ic|/boot}} とキーストレージに USB デバイスを使いますが、これは他のデバイスでも利用可能です&lt;br /&gt;
|&lt;br /&gt;
* LUKS ヘッダに損害が発生した場合の耐障害性があります&lt;br /&gt;
* [[Wikipedia:Deniable encryption|否認可能暗号]]が使える&lt;br /&gt;
* SSD の[[Dm-crypt/特記事項#ソリッドステートドライブ (SSD) の Discard/TRIM のサポート|問題]]を解決できます&lt;br /&gt;
|&lt;br /&gt;
* 全ての暗号化パラメータに注意する必要があります&lt;br /&gt;
* 暗号鍵はひとつだけで変更する方法はありません&lt;br /&gt;
|----------------------------------------------------------&lt;br /&gt;
| [[#boot パーティションの暗号化 (GRUB)]]&lt;br /&gt;
GRUB ブートローダーを使って boot パーティションを暗号化する方法を説明します。&amp;lt;br&amp;gt;このシナリオでは ESP パーティションを使いますが、他のシナリオでも ESP を使うことができます。&lt;br /&gt;
|&lt;br /&gt;
* ベースにするシナリオと同じメリット (このページの例では LVM on LUKS)&lt;br /&gt;
* ブートローダーや ESP パーティションまで暗号化されます&lt;br /&gt;
|&lt;br /&gt;
* ベースにするシナリオと同じデメリット (このページの例では LVM on LUKS)&lt;br /&gt;
* 設定が複雑です&lt;br /&gt;
* 他のブートローダーのサポートがありません&lt;br /&gt;
|----------------------------------------------------------&lt;br /&gt;
| [[#Btrfs サブボリュームとスワップ]]&lt;br /&gt;
UEFI 環境で [[Btrfs]] のシステムパーティションと {{ic|/boot}} ディレクトリを暗号化して、スワップパーティションを追加する方法。&lt;br /&gt;
|&lt;br /&gt;
* [[#boot パーティションの暗号化 (GRUB)]] と同じメリット&lt;br /&gt;
* Btrfs の機能を活用できます&lt;br /&gt;
|&lt;br /&gt;
* [[#boot パーティションの暗号化 (GRUB)]] と同じデメリット&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
上記全てのシナリオが外部からの脅威に対して十分な保護を約束しますが、共通の欠点も存在します。暗号化キーを持っているユーザーなら誰でもデバイスの全てを復号化して、他のユーザーのデータにもアクセスすることが可能という点です。これが問題だという場合は、ブロックデバイスの暗号化とスタックファイルシステムの暗号化と組み合わせて使用することで、両者の利点を取り入れることができます。[[保存データ暗号化]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
他にも、スワップパーティションの暗号化を設定するべきかどうか考慮する必要があります。[[Dm-crypt/スワップの暗号化]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
シナリオで使用されているパーティショニングの外観について [[Dm-crypt/ドライブの準備#パーティショニング]] も参照してください。&lt;br /&gt;
&lt;br /&gt;
{{Warning|どのシナリオでも、暗号化ボリュームで [[fsck]] などのファイルシステム修復ソフトウェアを直接使ってはいけません。ファイルを復号化する鍵を破壊してしまいます。復号化した後に使うようにしてください。}}&lt;br /&gt;
&lt;br /&gt;
== LUKS を使用するシンプルなパーティションレイアウト ==&lt;br /&gt;
&lt;br /&gt;
この例ではシンプルなパーティションレイアウトによる &#039;&#039;dmcrypt&#039;&#039;+ LUKS のフルシステム暗号化を説明します:&lt;br /&gt;
&lt;br /&gt;
 +--------------------+--------------------------+--------------------------+&lt;br /&gt;
 |Boot partition      |LUKS encrypted system     |Optional free space       |&lt;br /&gt;
 |                    |partition                 |for additional partitions |&lt;br /&gt;
 |/dev/sdaY           |/dev/sdaX                 |or swap to be setup later |&lt;br /&gt;
 +--------------------+--------------------------+--------------------------+&lt;br /&gt;
&lt;br /&gt;
最初のステップは Arch Linux のインストールイメージを起動した後すぐに実行します。&lt;br /&gt;
&lt;br /&gt;
=== ディスクの準備 ===&lt;br /&gt;
パーティションを作成する前に、[[Dm-crypt/ドライブの準備]] で説明されているように、ディスクを完全に消去する必要性・方法を学んでください。&lt;br /&gt;
&lt;br /&gt;
それから必要なパーティションを作成します。最低でも {{ic|/}} が必要です (例: {{ic|/dev/sdaX}}) と {{ic|/boot}} ({{ic|/dev/sdaY}})。[[パーティショニング]]を参照。&lt;br /&gt;
&lt;br /&gt;
=== boot 以外のパーティションの準備 ===&lt;br /&gt;
&lt;br /&gt;
以下のコマンドは暗号化された root パーティションを作成・マウントします。[[Dm-crypt/root 以外のファイルシステムの暗号化#パーティション]] に詳しく説明されている手順に該当します (ページタイトルと相違して、[[#mkinitcpio の設定|mkinitcpio]] と[[#ブートローダーの設定|ブートローダー]]が正しく設定されていれば、root パーティションにも適用できます)。デフォルトになってない特定の暗号化オプションを使いたいときは (例: 暗号アルゴリズムや鍵長など)、最初のコマンドを実行する前に[[Dm-crypt/デバイスの暗号化#LUKS_モードの暗号化オプション|暗号化オプション]]を読んでください:&lt;br /&gt;
&lt;br /&gt;
 # cryptsetup -y -v luksFormat /dev/sdaX&lt;br /&gt;
 # cryptsetup open /dev/sdaX cryptroot&lt;br /&gt;
 # mkfs.ext4 /dev/mapper/cryptroot&lt;br /&gt;
 # mount /dev/mapper/cryptroot /mnt&lt;br /&gt;
&lt;br /&gt;
マッピングが問題ないかチェック:&lt;br /&gt;
 # umount /mnt&lt;br /&gt;
 # cryptsetup close cryptroot&lt;br /&gt;
 # cryptsetup open /dev/sdaX cryptroot&lt;br /&gt;
 # mount /dev/mapper/cryptroot /mnt&lt;br /&gt;
&lt;br /&gt;
パーティションを分割した場合 (例: {{ic|/home}})、以上のコマンドを全てのパーティションに繰り返し実行してください。ただし {{ic|/boot}} は別です。起動時に追加のパーティションを扱う方法は [[Dm-crypt/root 以外のファイルシステムの暗号化#ロック解除とマウントの自動化]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
それぞれのブロックデバイスには個々のパスフレーズが必要になります。起動時に、別々のパスフレーズを入力しないといけないので、不便とも言えます。{{ic|crypttab}} を使うことでシステムパーティションにキーファイルを保存して使用することで別のパーティションを解錠することができます。方法は [[Dm-crypt/デバイスの暗号化#LUKS を使ってキーファイルでパーティションをフォーマット]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== boot パーティションの準備 ===&lt;br /&gt;
セットアップする必要があるのは暗号化されない {{ic|/boot}} パーティションで、暗号化する root に必要となります。例えば、標準的な [[EFI|MBR/BIOS]] の {{ic|/boot}} パーティションの場合、以下を実行します:&lt;br /&gt;
 # mkfs.ext4 /dev/sdaY&lt;br /&gt;
 # mkdir /mnt/boot&lt;br /&gt;
 # mount /dev/sdaY /mnt/boot&lt;br /&gt;
&lt;br /&gt;
=== デバイスのマウント ===&lt;br /&gt;
[[インストールガイド#パーティションのマウント]]では実際のパーティションではなく、マップされたデバイスをマウントしてください。もちろん、{{ic|/boot}} は暗号化されていないので、直接マウントします。&lt;br /&gt;
&lt;br /&gt;
=== mkinitcpio の設定 ===&lt;br /&gt;
{{ic|keyboard}}, {{ic|keymap}}, {{ic|encrypt}} フックを [[mkinitcpio|mkinitcpio.conf]] 内の {{ic|filesystems}} の前に追加します:&lt;br /&gt;
{{hc|/etc/mkinitcpio.conf|2=HOOKS=(... &#039;&#039;&#039;keyboard&#039;&#039;&#039; &#039;&#039;&#039;keymap&#039;&#039;&#039; block &#039;&#039;&#039;encrypt&#039;&#039;&#039; ... filesystems ...)}}&lt;br /&gt;
&lt;br /&gt;
他に必要なフックについては [[dm-crypt/システム設定#mkinitcpio]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
設定後はイメージを再生成してください:&lt;br /&gt;
&lt;br /&gt;
 # mkinitcpio -p linux&lt;br /&gt;
&lt;br /&gt;
=== ブートローダーの設定 ===&lt;br /&gt;
暗号化された root パーティションを起動するには、ブートローダーに以下のカーネルパラメータを設定する必要があります ({{ic|&#039;&#039;&amp;lt;device-UUID&amp;gt;&#039;&#039;}} は {{ic|/dev/sdaX}} の UUID に置き換えてください。詳しくは[[永続的なブロックデバイスの命名]]を参照):&lt;br /&gt;
&lt;br /&gt;
 cryptdevice=UUID=&#039;&#039;&amp;lt;device-UUID&amp;gt;&#039;&#039;:cryptroot root=/dev/mapper/cryptroot&lt;br /&gt;
&lt;br /&gt;
他に必要なパラメータについては [[Dm-crypt/システム設定#ブートローダー]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
== LUKS を使用するパーティションに TPM2とセキュアブートを使用する ==&lt;br /&gt;
&lt;br /&gt;
この例は[[#LUKS を使用するシンプルなパーティションレイアウト]]と似ていますが、[[セキュアブート]]と[[Trusted Platform Module]] (TPM)を統合してブート時のセキュリティを強化します。&lt;br /&gt;
&lt;br /&gt;
この構成では[[EFI システムパーティション]]が暗号化されずに残り、[[ユニファイドカーネルイメージ]]と[[systemd-boot]]が格納されます。これらは両方ともセキュアブートで使用するため暗号化されています。セキュアブートが無効になっていたり、キーデータベースが改ざんされている場合は、ロック解除に使用するキーをリリースしません。これは、WindowsのBitLockerやmacOSのFileVaultに似ています。TPMロック解除に問題(署名されていないブートローダやカーネルの更新、ファームウェアの更新等)が発生した場合、データにアクセスするための回復キーも作成されます。オプションで、起動時にTPM PINが必要になるように設定して完全に自動でロック解除されるのを防ぐこともできます。&lt;br /&gt;
&lt;br /&gt;
実行する前に[[Trusted Platform Module#LUKS による保存データの暗号化]]の説明と警告をよく読んでください。&lt;br /&gt;
&lt;br /&gt;
この例では[[Systemd#GPT パーティションの自動マウント]]に従ってパーティションが作成されるため、fstabファイルやcrypttabファイルは必要ありません。&lt;br /&gt;
&lt;br /&gt;
{{Text art|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
+-----------------------+---------------------------------+&lt;br /&gt;
| EFI system partition  | LUKS encrypted root partition   |&lt;br /&gt;
|                       |                                 |&lt;br /&gt;
|                       |                                 |&lt;br /&gt;
| /boot                 | /                               |&lt;br /&gt;
|                       |                                 |&lt;br /&gt;
|                       | /dev/mapper/root                |&lt;br /&gt;
|                       |---------------------------------|&lt;br /&gt;
| /dev/sda1             | /dev/sda2                       |&lt;br /&gt;
+-----------------------+---------------------------------+&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;
パーティションを作成する前に[[dm-crypt/ドライブの準備]]で説明されているように、ディスクを安全に消去する重要性について理解しておく必要があります。&lt;br /&gt;
&lt;br /&gt;
[[パーティショニング#GUID Partition Table]] (GPT)で[[EFI システムパーティション]](この例では{{ic|/dev/sda1}})を適切なサイズで作成したあとに、その他の必要なパーティションを作成していきます。&lt;br /&gt;
&lt;br /&gt;
[[EFI システムパーティション]]は{{ic|/boot}}へマウントします。&lt;br /&gt;
&lt;br /&gt;
ドライブの残りのスペースに暗号化されたあとで{{ic|/dev/sda2}}にマウントされるルートパーティションを作成します。パーティションタイプのGUIDは{{ic|4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709}} ([[gdisk]]の場合は{{ic|8304}}、[[fdisk]]の場合は&amp;quot;Linux root (x86-64)&amp;quot;)に設定します。&lt;br /&gt;
&lt;br /&gt;
=== ルートパーティションの準備 ===&lt;br /&gt;
&lt;br /&gt;
次のコマンドでは暗号化されたルートパーティションの作成とマウントを行います。この手順は[[Dm-crypt/デバイスの暗号化#LUKS モードでデバイスを暗号化|LUKS モードでデバイスを暗号化]]の説明と対応しています。&lt;br /&gt;
&lt;br /&gt;
特定のデフォルトではない暗号化オプション(キーの長さやアルゴリズム)を使用する場合または、TPMベースの復号を使用しない場合は、最初のコマンドを実行する前に[[Dm-crypt/デバイスの暗号化#LUKS モードの暗号化オプション|LUKS モードの暗号化オプション]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
LUKSボリュームを作成(空のパスワードを使用してあとから変更することができます)し、{{ic|root}} という名前でオープンします。&lt;br /&gt;
&lt;br /&gt;
 # cryptsetup luksFormat /dev/sda2&lt;br /&gt;
 # cryptsetup open /dev/sda2 root&lt;br /&gt;
&lt;br /&gt;
次に、ファイルシステムを作成します:&lt;br /&gt;
&lt;br /&gt;
 # mkfs.ext4 /dev/mapper/root&lt;br /&gt;
&lt;br /&gt;
{{ic|/mnt}}へマウントします:&lt;br /&gt;
&lt;br /&gt;
 # mount /dev/mapper/root /mnt&lt;br /&gt;
&lt;br /&gt;
=== EFI システムパーティションの準備 ===&lt;br /&gt;
&lt;br /&gt;
新しく作成したEFIシステムパーティションを[[EFI システムパーティション#パーティションのフォーマット]]に従ってフォーマットし、{{ic|/mnt/boot}}へマウントします。&lt;br /&gt;
&lt;br /&gt;
 # mount --mkdir /dev/sda1 /mnt/boot&lt;br /&gt;
&lt;br /&gt;
[[インストールガイド#initramfs]]までセットアップを続行します。[[インストールガイド#fstab の生成]]はスキップすることができます。&lt;br /&gt;
&lt;br /&gt;
=== mkinitcpioを設定する ===&lt;br /&gt;
&lt;br /&gt;
[[mkinitcpio.conf]]の設定の{{ic|1=HOOKS=}}行を次のように設定します。順番が重要です:&lt;br /&gt;
&lt;br /&gt;
 HOOKS=(base &#039;&#039;&#039;systemd&#039;&#039;&#039; autodetect microcode modconf kms &#039;&#039;&#039;keyboard&#039;&#039;&#039; &#039;&#039;&#039;sd-vconsole&#039;&#039;&#039; block &#039;&#039;&#039;sd-encrypt&#039;&#039;&#039; filesystems fsck)&lt;br /&gt;
&lt;br /&gt;
次に[[ユニファイドカーネルイメージ#mkinitcpio]]を参照して、[[ユニファイドカーネルイメージ]]を設定します。&lt;br /&gt;
&lt;br /&gt;
この時点では&#039;&#039;&#039;まだ&#039;&#039;&#039;initramfsを再生成&#039;&#039;&#039;しない&#039;&#039;&#039;でください。{{ic|/boot/EFI/Linux}}ディレクトリは、先にブートローダインストーラによって作成される必要があります。&lt;br /&gt;
&lt;br /&gt;
=== ブートローダのインストール ===&lt;br /&gt;
&lt;br /&gt;
ブートローダを使用せずにシステムを直接起動するように設定することができます。[[ユニファイドカーネルイメージ#UEFI から直接起動]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
ブートローダが必要な場合は[[systemd-boot]]のインストールを続行します。&lt;br /&gt;
&lt;br /&gt;
 # bootctl install&lt;br /&gt;
&lt;br /&gt;
mkinitcpioによって生成された[[ユニファイドカーネルイメージ]]は自動的に認識されるため{{ic|/boot/loader/entries}}にエントリは必要ありません。&lt;br /&gt;
&lt;br /&gt;
詳細な設定については[[systemd-boot#UEFI ブートマネージャの更新]]と[[systemd-boot#ローダー設定]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== インストール完了 ===&lt;br /&gt;
&lt;br /&gt;
[[initramfs#イメージ作成とアクティベーション|initramfsを再生成]]し、イメージの作成が成功したことを確認します。&lt;br /&gt;
&lt;br /&gt;
[[インストールガイド#Root パスワード|パスワードの設定]]を忘れずに行ったあと再起動してください。&lt;br /&gt;
&lt;br /&gt;
=== セキュアブート ===&lt;br /&gt;
&lt;br /&gt;
[[セキュアブート]] を有効にするためにブートローダとEFIバイナリに署名ができるようになりました。手軽な手段については[[Unified Extensible Firmware Interface/セキュアブート#sbctl でより簡単に行う|sbctl でより簡単に行う]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== Enrolling the TPM ===&lt;br /&gt;
&lt;br /&gt;
ブートローダへ署名し、セキュアブートを有効化したあとにTPMを登録してLUKSボリュームのロックを解除できるようにします。次のコマンドは{{ic|luksFormat}}で作成されたからのパスフレーズを削除し、TPM [[Trusted Platform Module#PCR レジスタへのアクセス|PCR 7]] (デフォルトでは{{ic| Secure Boot State}}とファームウェア証明書)にバインドされたキーを作成し、問題が発生した場合に使用する回復キーを作成します。ブートチェーンが改ざんされない限り、TPMは自動的にキーをリリースします。[[systemd-cryptenroll#Trusted Platform Module]]および{{man|1|systemd-cryptenroll}}を参照してください。&lt;br /&gt;
&lt;br /&gt;
 # systemd-cryptenroll /dev/sda2 --recovery-key&lt;br /&gt;
 # systemd-cryptenroll /dev/sda2 --wipe-slot=empty --tpm2-device=auto&lt;br /&gt;
&lt;br /&gt;
{{Tip| {{ic|1=--tpm2-with-pin=yes}} を指定してブート時に追加のPINの入力を強制することができます。}}&lt;br /&gt;
{{Warning|&lt;br /&gt;
* PCR 7へバインドするときは[[セキュアブート]]がSetup ModeからUser Modeになっていることを確認してください。そうでないと、許可されていないブートデバイスが暗号化されたボリュームのロックを解除する可能性があります。&lt;br /&gt;
* ファームウェア証明書が変更されるとPCR 7の状態が変わる可能性があり、ユーザがロックアウトされるリスクがあります。これは、[[fwupd]][https://raw.githubusercontent.com/systemd/systemd/ed272a9ff59a26beedaab508dd3c9d631de67165/TODO] によって暗黙的に実行されるか、セキュアブートキーをローテーションすることによって明示的に実行されます。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== LVM on LUKS ==&lt;br /&gt;
&lt;br /&gt;
LVM の上に暗号化パーティションをセットアップするのではなく、暗号化パーティションの上に [[LVM]] をセットアップするほうが簡単です。技術的にはひとつの大きな暗号化ブロックデバイスの中に LVM をセットアップすることになります。LVM はブロックデバイスを解錠して、ボリュームをスキャンしてマウントされるまでは透過的ではなくなります。&lt;br /&gt;
&lt;br /&gt;
ディスクレイアウトの例:&lt;br /&gt;
 +-----------------------------------------------------------------------+ +----------------+&lt;br /&gt;
 | Logical volume1       | Logical volume2       | Logical volume3       | |                |&lt;br /&gt;
 |/dev/mapper/MyVol-swap |/dev/mapper/MyVol-root |/dev/mapper/MyVol-home | | Boot partition |&lt;br /&gt;
 |_ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _| | (may be on     |&lt;br /&gt;
 |                                                                       | | other device)  |&lt;br /&gt;
 |                        LUKS encrypted partition                       | |                |&lt;br /&gt;
 |                          /dev/sdaX                                    | | /dev/sdbY      |&lt;br /&gt;
 +-----------------------------------------------------------------------+ +----------------+&lt;br /&gt;
&lt;br /&gt;
{{Warning|この方法では論理ボリュームを複数のディスクに跨がらせることはできません。後で変更することも不可能です。[[#複数のパーティションの encrypt フックを修正]]を見てください。}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|Two variants of this setup: &lt;br /&gt;
* [[Dm-crypt/特記事項#リモート LUKS ヘッダーを使ってシステムを暗号化]]ではこのセットアップと USB デバイスのリモート LUKS ヘッダーを使って二段階認証を実現します。&lt;br /&gt;
* Instructions at [http://www.pavelkogan.com/2014/05/23/luks-full-disk-encryption/ Pavel Kogan&#039;s blog] show how to encrypt the {{ic|/boot}} partition while keeping it on the main LUKS partition when using GRUB.}} &lt;br /&gt;
&lt;br /&gt;
=== ディスクの準備 ===&lt;br /&gt;
&lt;br /&gt;
パーティションを作成する前に、[[Dm-crypt/ドライブの準備]] で説明されているように、ディスクを完全に消去する必要性・方法を学んでください。&lt;br /&gt;
&lt;br /&gt;
[[GPT]] で [[GRUB]] ブートローダーを使う時は、[[GRUB#BIOS システム]] で説明されているように BIOS Boot Partition を作成してください。&lt;br /&gt;
&lt;br /&gt;
{{ic|/boot}} にマウントするパーティションをタイプ {{ic|8300}} で容量 100 MB 以上にして作成します。&lt;br /&gt;
&lt;br /&gt;
タイプ {{ic|8E00}} のパーティションを作成してください。後で暗号化コンテナを入れます。&lt;br /&gt;
&lt;br /&gt;
&amp;quot;system&amp;quot; パーティションに LUKS 暗号化コンテナを作成してください。選んだパスワードを二回入力します。&lt;br /&gt;
&lt;br /&gt;
 # cryptsetup luksFormat /dev/&#039;&#039;sdaX&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
cryptsetup のオプションについては [[Dm-crypt/デバイスの暗号化#LUKS モードの暗号化オプション|LUKS 暗号化のオプション]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
コンテナを開いてください:&lt;br /&gt;
&lt;br /&gt;
 # cryptsetup open /dev/&#039;&#039;sdaX&#039;&#039; cryptolvm&lt;br /&gt;
&lt;br /&gt;
復号化されたコンテナが {{ic|/dev/mapper/cryptolvm}} から利用できるようになります。&lt;br /&gt;
&lt;br /&gt;
=== 論理ボリュームの準備 ===&lt;br /&gt;
開いた LUKS コンテナの上に物理ボリュームを作成:&lt;br /&gt;
&lt;br /&gt;
 # pvcreate /dev/mapper/cryptolvm&lt;br /&gt;
&lt;br /&gt;
{{ic|MyVol}} という名前のボリュームグループを作成して、先に作成した物理ボリュームを追加:&lt;br /&gt;
&lt;br /&gt;
 # vgcreate MyVol /dev/mapper/cryptolvm&lt;br /&gt;
&lt;br /&gt;
ボリュームグループに論理ボリュームを作成:&lt;br /&gt;
&lt;br /&gt;
 # lvcreate -L 8G MyVol -n swap&lt;br /&gt;
 # lvcreate -L 15G MyVol -n root&lt;br /&gt;
 # lvcreate -l 100%FREE MyVol -n home&lt;br /&gt;
&lt;br /&gt;
論理ボリュームのファイルシステムをフォーマット:&lt;br /&gt;
&lt;br /&gt;
 # mkfs.ext4 /dev/mapper/MyVol-root&lt;br /&gt;
 # mkfs.ext4 /dev/mapper/MyVol-home&lt;br /&gt;
 # mkswap /dev/mapper/MyVol-swap&lt;br /&gt;
&lt;br /&gt;
ファイルシステムをマウント:&lt;br /&gt;
&lt;br /&gt;
 # mount /dev/mapper/MyVol-root /mnt&lt;br /&gt;
 # mkdir /mnt/home&lt;br /&gt;
 # mount /dev/mapper/MyVol-home /mnt/home&lt;br /&gt;
 # swapon /dev/mapper/MyVol-swap&lt;br /&gt;
&lt;br /&gt;
=== boot パーティションの準備 ===&lt;br /&gt;
ブートローダーは {{ic|/boot}} ディレクトリから、カーネルや [[initramfs]]、あるいはブートローダーの設定ファイルをロードします。このディレクトリは暗号化されていない別のファイルシステム上に配置する必要があります。&lt;br /&gt;
&lt;br /&gt;
{{ic|/boot}} にするパーティションに Ext2 ファイルシステムを作成します。ブートローダーが読み込めるファイルシステムなら何でもかまいません。&lt;br /&gt;
&lt;br /&gt;
 # mkfs.ext2 /dev/&#039;&#039;sdbY&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{ic|/mnt/boot}} ディレクトリを作成:&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/boot&lt;br /&gt;
&lt;br /&gt;
パーティションを {{ic|/mnt/boot}} にマウント:&lt;br /&gt;
&lt;br /&gt;
 # mount /dev/&#039;&#039;sdbY&#039;&#039; /mnt/boot&lt;br /&gt;
&lt;br /&gt;
インストールの手順を mkinitcpio の設定まで進めてください。&lt;br /&gt;
&lt;br /&gt;
=== mkinitcpio の設定 ===&lt;br /&gt;
{{ic|keyboard}}, {{ic|encrypt}}, {{ic|lvm2}} フックを [[mkinitcpio|mkinitcpio.conf]] 内の {{ic|filesystems}} の前に追加します:&lt;br /&gt;
{{hc|/etc/mkinitcpio.conf|2=HOOKS=(... &#039;&#039;&#039;keyboard&#039;&#039;&#039; &#039;&#039;&#039;keymap&#039;&#039;&#039; block &#039;&#039;&#039;encrypt&#039;&#039;&#039; &#039;&#039;&#039;lvm2&#039;&#039;&#039; ... filesystems ...)}}&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|lvm2}} の最新実装ではフックの順番は特に意味を持ちません。}}&lt;br /&gt;
&lt;br /&gt;
他に必要なフックについては [[dm-crypt/システム設定#mkinitcpio]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
設定後はイメージを再生成してください:&lt;br /&gt;
&lt;br /&gt;
 # mkinitcpio -p linux&lt;br /&gt;
&lt;br /&gt;
=== ブートローダーの設定 ===&lt;br /&gt;
起動時に暗号化された root パーティションの暗号化が解除されるように、以下のカーネルパラメータをブートローダーで設定します ({{ic|&#039;&#039;&amp;lt;device-UUID&amp;gt;&#039;&#039;}} は {{ic|/dev/sdaX}} の UUID に置き換えてください。詳しくは[[永続的なブロックデバイスの命名]]を参照):&lt;br /&gt;
&lt;br /&gt;
 cryptdevice=UUID=&#039;&#039;device-UUID&#039;&#039;:cryptolvm root=/dev/mapper/MyVol-root&lt;br /&gt;
&lt;br /&gt;
詳しくは [[Dm-crypt/システム設定#ブートローダー]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
== LUKS on LVM ==&lt;br /&gt;
&lt;br /&gt;
[[LVM]] 上で暗号化を利用するには、まず LVM ボリュームをセットアップして、それから暗号化パーティションのベースとして使うことになります。この方法では、暗号化パーティションと非暗号化パーティションのミックスが可能です。&lt;br /&gt;
&lt;br /&gt;
{{Tip|[[#LVM on LUKS]] とは違って、複数のディスクにまたがる論理ボリュームを通常通り使うことができます。}}&lt;br /&gt;
&lt;br /&gt;
以下の短い例では LUKS on LVM 構成を作成して、/home パーティションでキーファイルを使用して {{ic|/tmp}} と {{ic|/swap}} の一時的な暗号化ボリュームを混ぜ合わせます。機密データを含む一時データが再起動しても残ってしまう可能性がないため、セキュリティ的に優れています。論理ボリュームを複数のディスクにまたがるようにしたい場合、手順は [[Dm-crypt/特記事項#LVM を複数のディスクに拡張]]で説明しています。&lt;br /&gt;
&lt;br /&gt;
=== ディスクの準備 ===&lt;br /&gt;
&lt;br /&gt;
パーティションスキーム:&lt;br /&gt;
 +----------------+-----------------------------------------------------------------------+&lt;br /&gt;
 |                | LUKS encrypted volume | LUKS encrypted volume | LUKS encrypted volume |&lt;br /&gt;
 |                | /dev/mapper/swap      | /dev/mapper/root      | /dev/mapper/home      |&lt;br /&gt;
 |                |_ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _|&lt;br /&gt;
 |                | Logical volume1       | Logical volume2       | Logical volume3       |&lt;br /&gt;
 |                |/dev/mapper/MyVol-swap |/dev/mapper/MyVol-root |/dev/mapper/MyVol-home |&lt;br /&gt;
 |                |_ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _|&lt;br /&gt;
 | Boot partition |                                                                       |&lt;br /&gt;
 |   /dev/sda1    |                               /dev/sda2                               |&lt;br /&gt;
 +----------------+-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
[[Dm-crypt/ドライブの準備#dm-crypt で空のディスクまたはパーティションを消去]]を見て {{ic|/dev/sda2}} をランダム化してください。&lt;br /&gt;
&lt;br /&gt;
=== 論理ボリュームの準備 ===&lt;br /&gt;
&lt;br /&gt;
 # pvcreate /dev/sda2&lt;br /&gt;
 # vgcreate MyVol /dev/sda2&lt;br /&gt;
 # lvcreate -L 10G -n lvroot MyVol&lt;br /&gt;
 # lvcreate -L 500M -n swap MyVol&lt;br /&gt;
 # lvcreate -L 500M -n tmp MyVol&lt;br /&gt;
 # lvcreate -l 100%FREE -n home MyVol&lt;br /&gt;
&lt;br /&gt;
 # cryptsetup luksFormat -c aes-xts-plain64 -s 512 /dev/mapper/MyVol-lvroot&lt;br /&gt;
 # cryptsetup open /dev/mapper/MyVol-lvroot root&lt;br /&gt;
 # mkfs.ext4 /dev/mapper/root&lt;br /&gt;
 # mount /dev/mapper/root /mnt&lt;br /&gt;
&lt;br /&gt;
この例では {{ic|/home}} は[[#論理ボリューム /home の暗号化|後で]]暗号化します。Arch-ISO から暗号化したルートにアクセスする必要がある場合、上記の {{ic|open}} アクションで [[LVM#論理ボリュームが表示されない|LVM を表示]]した後にアクセスできます。&lt;br /&gt;
&lt;br /&gt;
=== boot パーティションの準備 ===&lt;br /&gt;
 # dd if=/dev/zero of=/dev/sda1 bs=1M status=progress&lt;br /&gt;
 # mkfs.ext4 /dev/sda1&lt;br /&gt;
 # mkdir /mnt/boot&lt;br /&gt;
 # mount /dev/sda1 /mnt/boot&lt;br /&gt;
&lt;br /&gt;
暗号化した LVM のパーティションを設定したら、インストールを行ってください: [[インストールガイド#パーティションのマウント|Arch Install Scripts]]。&lt;br /&gt;
&lt;br /&gt;
=== mkinitcpio の設定 ===&lt;br /&gt;
&lt;br /&gt;
{{ic|encrypt}} と {{ic|lvm2}} フックを [[mkinitcpio|mkinitcpio.conf]] 内の {{ic|filesystems}} の前に追加します:&lt;br /&gt;
{{hc|/etc/mkinitcpio.conf|2=HOOKS=(... &#039;&#039;&#039;keyboard&#039;&#039;&#039; &#039;&#039;&#039;keymap&#039;&#039;&#039; block &#039;&#039;&#039;lvm2&#039;&#039;&#039; &#039;&#039;&#039;encrypt&#039;&#039;&#039; ... filesystems ...)}}&lt;br /&gt;
&lt;br /&gt;
他に必要なフックについては [[dm-crypt/システム設定#mkinitcpio]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
設定ファイルを変更した後は次のコマンドを root 権限で実行してください:&lt;br /&gt;
&lt;br /&gt;
 # mkinitcpio -p linux&lt;br /&gt;
&lt;br /&gt;
=== ブートローダーの設定 ===&lt;br /&gt;
&lt;br /&gt;
上の例の場合、ブートローダーの設定で root デバイスのカーネルオプションを以下のように変更します:&lt;br /&gt;
 cryptdevice=/dev/mapper/MyVol-lvroot:root root=/dev/mapper/root&lt;br /&gt;
詳しくは [[Dm-crypt/システム設定#ブートローダー]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== fstab と crypttab の設定 ===&lt;br /&gt;
{{hc|/etc/fstab|&lt;br /&gt;
 /dev/mapper/root        /       ext4            defaults        0       1&lt;br /&gt;
 /dev/sda1               /boot   ext4            defaults        0       2&lt;br /&gt;
 /dev/mapper/tmp         /tmp    tmpfs           defaults        0       0&lt;br /&gt;
 /dev/mapper/swap        none    swap            sw              0       0}}&lt;br /&gt;
以下の [[Dm-crypt/システム設定#crypttab|crypttab]] オプションは再起動するたびに一時ファイルシステムを暗号化します:&lt;br /&gt;
{{hc|/etc/crypttab|&lt;br /&gt;
swap	/dev/mapper/MyVol-swap	/dev/urandom	swap,cipher&amp;lt;nowiki&amp;gt;=aes-xts-plain64,size=&amp;lt;/nowiki&amp;gt;256&lt;br /&gt;
tmp	/dev/mapper/MyVol-tmp	/dev/urandom	tmp,cipher&amp;lt;nowiki&amp;gt;=aes-xts-plain64,size=&amp;lt;/nowiki&amp;gt;256&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== 論理ボリューム /home の暗号化 ===&lt;br /&gt;
Since this scenario uses LVM as the primary and dm-crypt as secondary mapper, each encrypted logical volume requires its own encryption. Yet, unlike the temporary filesystems configured with volatile encryption above, the logical volume for {{ic|/home}} should be persistent, of course. The following assumes you have rebooted into the installed system, otherwise you have to adjust paths.&lt;br /&gt;
To safe on entering a second passphrase at boot for it, a [[Dm-crypt/デバイスの暗号化#キーファイル|keyfile]] is created: &lt;br /&gt;
 # mkdir -m 700 /etc/luks-keys&lt;br /&gt;
 # dd if=/dev/random of=/etc/luks-keys/home bs=1 count=256 status=progress&lt;br /&gt;
&lt;br /&gt;
論理ボリュームは以下のように暗号化します:&lt;br /&gt;
 # cryptsetup luksFormat -v -s 512 /dev/mapper/MyVol-home /etc/luks-keys/home&lt;br /&gt;
 # cryptsetup -d /etc/luks-keys/home open /dev/mapper/MyVol-home home&lt;br /&gt;
 # mkfs.ext4 /dev/mapper/home&lt;br /&gt;
 # mount /dev/mapper/home /home&lt;br /&gt;
暗号化されたマウントは [[Dm-crypt/システム設定#crypttab|crypttab]] で設定します:&lt;br /&gt;
{{hc|/etc/crypttab|&lt;br /&gt;
home /dev/mapper/MyVol-home  /etc/luks-keys/home}}&lt;br /&gt;
{{hc|/etc/fstab|&lt;br /&gt;
/dev/mapper/home        /home  ext4        defaults        0      2}}&lt;br /&gt;
これでセットアップは完了です。&lt;br /&gt;
&lt;br /&gt;
If you want to expand the logical volume for {{ic|/home}} (or any other volume) at a later point, it is important to note that the LUKS encrypted part has to be resized as well. For a procedure see [[Dm-crypt/特記事項#LVM を複数のディスクに拡張]].&lt;br /&gt;
&lt;br /&gt;
== ソフトウェア RAID と LUKS ==&lt;br /&gt;
&lt;br /&gt;
以下の例では同じ容量の SSD を2台とストレージ用の HDD を搭載したワークステーション向けノートパソコンの設定を元にしています。最終的には LUKS ベースの ({{ic|/boot}} を含む) 完全ディスク暗号化を実現し、SSD は [[RAID|RAID0]] アレイにして、起動時に [[GRUB]] にパスフレーズを指定した後にキーファイルで暗号化を解除します。SSD の [[TRIM]] のサポートは有効にしますが、[[Dm-crypt/特記事項#ソリッドステートドライブ (SSD) の Discard/TRIM のサポート]]も読むと良いでしょう。&lt;br /&gt;
&lt;br /&gt;
非常にシンプルなパーティションスキームを使用し、RAID ストレージは全て {{ic|/}} にマウントして ({{ic|/boot}} パーティションは分割しません)、HDD は {{ic|/mnt/data}} にマウントします。システムは BIOS モードで起動し [[パーティショニング|GPT]] でパーティショニングします。&lt;br /&gt;
&lt;br /&gt;
定期的に[[バックアップ]]を取ることが非常に重要です。SSD のどちらかが故障すると、RAID アレイに保存されていたデータは復元できなくなります。耐障害性が大事なのであれば [[RAID#通常の RAID レベル|RAID レベル]]を慎重に選択してください。&lt;br /&gt;
&lt;br /&gt;
The encryption is not deniable in this setup.&lt;br /&gt;
&lt;br /&gt;
For the sake of the instructions below, the following block devices are used:&lt;br /&gt;
 /dev/sda = first SSD&lt;br /&gt;
 /dev/sdb = second SSD&lt;br /&gt;
 /dev/sdc = HDD&lt;br /&gt;
Be sure to substitue them with the appropriate device designations for your setup, as they may be different.&lt;br /&gt;
&lt;br /&gt;
=== ディスクの準備 ===&lt;br /&gt;
&lt;br /&gt;
パーティションを作成する前に、[[Dm-crypt/ドライブの準備]]に書かれているようにディスクの完全消去について考慮してください。&lt;br /&gt;
&lt;br /&gt;
[[GRUB]] ブートローダーを [[GPT]] で使用する場合、[[GRUB#BIOS システム]]に書かれているように BIOS Boot Partition を作成する必要があります。例として {{ic|/dev/sda1}} に &amp;quot;BIOS boot&amp;quot; の 1M パーティションを作成して、残りの空き容量は全て &amp;quot;Linux RAID&amp;quot; として {{ic|/dev/sda2}} にパーティションします。&lt;br /&gt;
&lt;br /&gt;
{{ic|/dev/sda}} にパーティションを作成したら以下のコマンドを使って {{ic|/dev/sdb}} に複製:&lt;br /&gt;
 # sfdisk -d /dev/sda &amp;gt; sda.dump&lt;br /&gt;
 # sfdisk /dev/sdb &amp;lt; sda.dump&lt;br /&gt;
&lt;br /&gt;
The HDD is prepared with a single Linux partition covering the whole drive at {{ic|/dev/sdc1}}.&lt;br /&gt;
&lt;br /&gt;
=== RAID アレイの構築 ===&lt;br /&gt;
&lt;br /&gt;
Create the RAID array for the SSDs. This example utilizes RAID0, you may wish to substitute a different level based on your preferences or requirements. &lt;br /&gt;
 # mdadm --create --verbose --level=0 --metadata=1.2 --raid-devices=2 /dev/md0 /dev/sda2 /dev/sdb2&lt;br /&gt;
&lt;br /&gt;
=== ブロックデバイスの準備 ===&lt;br /&gt;
&lt;br /&gt;
[[Dm-crypt/ドライブの準備]]に書かれているように {{ic|/dev/zero}} を使ってデバイスを消去してからランダムなキーでデバイスを暗号化してください。もしくは {{ic|dd}} で {{ic|/dev/random}} や {{ic|/dev/urandom}} を使うこともできます:&lt;br /&gt;
 # cryptsetup open --type plain /dev/md0 container --key-file /dev/random&lt;br /&gt;
 # dd if=/dev/zero of=/dev/mapper/container bs=1M status=progress&lt;br /&gt;
 # cryptsetup close container&lt;br /&gt;
&lt;br /&gt;
And repeat above for the HDD ({{ic|/dev/sdc1}} in this example).&lt;br /&gt;
&lt;br /&gt;
Set up encryption for {{ic|/dev/md0}}:&lt;br /&gt;
 # cryptsetup -y -v luksFormat -c aes-xts-plain64 -s 512 /dev/md0&lt;br /&gt;
 # cryptsetup open /dev/md0 cryptroot&lt;br /&gt;
 # mkfs.ext4 /dev/mapper/cryptroot&lt;br /&gt;
 # mount /dev/mapper/cryptroot /mnt&lt;br /&gt;
&lt;br /&gt;
And repeat for the HDD:&lt;br /&gt;
 # cryptsetup -y -v luksFormat -c aes-xts-plain64 -s 512 /dev/sdc1&lt;br /&gt;
 # cryptsetup open /dev/sdc1 cryptdata&lt;br /&gt;
 # mkfs.ext4 /dev/mapper/cryptdata&lt;br /&gt;
 # mkdir -p /mnt/mnt/data&lt;br /&gt;
 # mount /dev/mapper/cryptdata /mnt/mnt/data&lt;br /&gt;
&lt;br /&gt;
=== ブートローダーの設定 ===&lt;br /&gt;
&lt;br /&gt;
Configure [[GRUB]] for the encrypted system by editing {{ic|/etc/default/grub}} with the following. Note that the {{ic|:allow-discards}} option enables TRIM support on the SSDs, if you do not wish to use it you should omit this.&lt;br /&gt;
 GRUB_CMDLINE_LINUX=&amp;quot;cryptdevice=/dev/md0:cryptroot:allow-discards root=/dev/mapper/cryptroot&amp;quot;&lt;br /&gt;
 GRUB_ENABLE_CRYPTODISK=y&lt;br /&gt;
&lt;br /&gt;
詳しくは [[Dm-crypt/システム設定#ブートローダー]]や [[GRUB#暗号化された /boot]]を見てください。&lt;br /&gt;
&lt;br /&gt;
Complete the GRUB install to both SSDs (in reality, installing only to {{ic|/dev/sda}} will work).&lt;br /&gt;
 # grub-install --target=i386-pc /dev/sda&lt;br /&gt;
 # grub-install --target=i386-pc /dev/sdb&lt;br /&gt;
 # grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
=== キーファイルの作成 ===&lt;br /&gt;
&lt;br /&gt;
システムの起動時にパスフレーズを二回入力する手間を省く設定です。[[dm-crypt/デバイスの暗号化#キーファイル|キーファイル]]を作成して initramfs イメージに追加することで encrypt フックでルートデバイスを解除できるようにします。詳しくは [[dm-crypt/デバイスの暗号化#キーファイルを initramfs に埋め込む]] を参照。&lt;br /&gt;
&lt;br /&gt;
* [[dm-crypt/デバイスの暗号化#キーファイル|キーファイル]]を作成して {{ic|/dev/md0}} にキーを追加。&lt;br /&gt;
* HDD ({{ic|/dev/sdc1}}) のキーファイルを作成することで起動時に解錠が可能です。上記で作成したパスフレーズは残すことで後で必要になったときに復旧が簡単です。{{ic|/etc/crypttab}} を編集して起動時に HDD を復号化してください。詳しくは [[dm-crypt/デバイスの暗号化#起動時にロックを解除]]を参照。&lt;br /&gt;
&lt;br /&gt;
=== システムの設定 ===&lt;br /&gt;
&lt;br /&gt;
[[fstab|/etc/fstab]] を編集して cryptroot と cryptdata ブロックデバイスをマウントしてください。TRIM のサポートを有効にしなかった場合、{{ic|discard}} マウントオプションは削除してください:&lt;br /&gt;
&lt;br /&gt;
 /dev/mapper/cryptroot  /           ext4    rw,noatime,discard  0   1 &lt;br /&gt;
 /dev/mapper/cryptdata  /mnt/data   ext4    defaults            0   2  &lt;br /&gt;
&lt;br /&gt;
RAID の設定を保存:&lt;br /&gt;
&lt;br /&gt;
 # mdadm --detail --scan &amp;gt; /etc/mdadm.conf &lt;br /&gt;
&lt;br /&gt;
[[mkinitcpio.conf]] を編集してキーファイルを適切なフックを追加してください:&lt;br /&gt;
&lt;br /&gt;
 FILES=(/crypto_keyfile.bin)&lt;br /&gt;
 HOOKS=( ... &#039;&#039;&#039;keyboard&#039;&#039;&#039; &#039;&#039;&#039;keymap&#039;&#039;&#039; block &#039;&#039;&#039;mdadm_udev&#039;&#039;&#039; &#039;&#039;&#039;encrypt&#039;&#039;&#039; filesystems ... )&lt;br /&gt;
&lt;br /&gt;
詳しくは [[dm-crypt/システム設定#mkinitcpio]] を参照。&lt;br /&gt;
&lt;br /&gt;
== Plain dm-crypt ==&lt;br /&gt;
&lt;br /&gt;
Contrary to LUKS, dm-crypt &#039;&#039;plain&#039;&#039; mode does not require a header on the encrypted device: this scenario exploits this feature to set up a system on an unpartitioned, encrypted disk that will be indistinguishable from a disk filled with random data, which could allow [[Wikipedia:Deniable encryption|deniable encryption]]. See also [[wikipedia:Disk encryption#Full disk encryption]].&lt;br /&gt;
&lt;br /&gt;
Note that if full-disk encryption is not required, the methods using LUKS described in the sections above are better options for both system encryption and encrypted partitions. LUKS features like key management with multiple passphrases/key-files or re-encrypting a device in-place are unavailable with &#039;&#039;plain&#039;&#039; mode.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Plain&#039;&#039; dm-crypt encryption can be more resilient to damage than LUKS encrypted disks, because it does not rely on an encryption master-key which can be a single-point of failure if damaged. However, using &#039;&#039;plain&#039;&#039; mode also requires more manual configuration of encryption options to achieve the same cryptographic strength. See also [[ディスク暗号化#暗号メタデータ]]. Using &#039;&#039;plain&#039;&#039; mode could also be considered if concerned with the problems explained in [[Dm-crypt/特記事項#ソリッドステートドライブ (SSD) の Discard/TRIM のサポート]].&lt;br /&gt;
&lt;br /&gt;
{{Tip|If headerless encryption is your goal but you are unsure about the lack of key-derivation with &#039;&#039;plain&#039;&#039; mode, then two alternatives are:&lt;br /&gt;
* dm-crypt LUKS mode by using the &#039;&#039;cryptsetup&#039;&#039; {{ic|--header}} option. It cannot be used with the standard &#039;&#039;encrypt&#039;&#039; hook, but the hook [[Dm-crypt/特記事項#リモート LUKS ヘッダーを使ってシステムを暗号化|may be modified]].&lt;br /&gt;
* [[tcplay]] which offers headerless encryption but with the PBKDF2 function.}}&lt;br /&gt;
&lt;br /&gt;
このシナリオでは2つの USB スティックを使います:&lt;br /&gt;
* one for the boot device, which also allows storing the options required to open/unlock the plain encrypted device in the boot loader configuration, since typing them on each boot would be error prone;&lt;br /&gt;
* another for the encryption key file, assuming it stored as raw bits so that to the eyes of an unaware attacker who might get the usbkey the encryption key will appear as random data instead of being visible as a normal file. See also [[Wikipedia:Security through obscurity]], follow [[Dm-crypt/デバイスの暗号化#キーファイル]] to prepare the keyfile.&lt;br /&gt;
&lt;br /&gt;
 |--------------------+------------------+--------------------+ +---------------+ +---------------+&lt;br /&gt;
 |Volume 1:           |Volume 2:         |Volume 3:           | |Boot device    | |Encryption key |&lt;br /&gt;
 |                    |                  |                    | |               | |file storage   |&lt;br /&gt;
 |root                |swap              |home                | |/boot          | |(unpartitioned |&lt;br /&gt;
 |                    |                  |                    | |               | |in example)    |&lt;br /&gt;
 |/dev/store/root     |/dev/store/swap   |/dev/store/home     | |/dev/sdY1      | |/dev/sdZ       |&lt;br /&gt;
 |--------------------+------------------+--------------------| |---------------| |---------------|&lt;br /&gt;
 |disk drive /dev/sdaX encrypted using plain mode and LVM     | |USB stick 1    | |USB stick 2    |&lt;br /&gt;
 +------------------------------------------------------------+ +---------------+ +---------------+&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* It is also possible to use a single usb key by copying the keyfile to the initram directly. An example keyfile {{ic|/etc/keyfile}} gets copied to the initram image by setting {{ic|1=FILES=(/etc/keyfile)}} in {{ic|/etc/mkinitcpio.conf}}. The way to instruct the {{ic|encrypt}} hook to read the keyfile in the initram image is using {{ic|rootfs:}} prefix before the filename, e.g. {{ic|cryptkey&amp;amp;#61;rootfs:/etc/keyfile}}.&lt;br /&gt;
* [[ディスク暗号化#強固なパスフレーズの選択|エントロピー]]が十分なパスフレーズを使用するという選択肢も存在します。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== ディスクの準備 ===&lt;br /&gt;
&lt;br /&gt;
It is vital that the mapped device is filled with data. In particular this applies to the scenario usecase we apply here. &lt;br /&gt;
&lt;br /&gt;
[[Dm-crypt/ドライブの準備]] や [[Dm-crypt/ドライブの準備#dm-crypt 固有の方法]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== boot 以外のパーティションの準備 ===&lt;br /&gt;
&lt;br /&gt;
詳しくは [[Dm-crypt/デバイスの暗号化#plain モードの暗号化オプション]] を参照。&lt;br /&gt;
&lt;br /&gt;
Using the device {{ic|/dev/sd&#039;&#039;X&#039;&#039;}}, with the twofish-xts cipher with a 512 bit key size and using a keyfile we have the following options for this scenario:&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;# cryptsetup --hash=sha512 --cipher=twofish-xts-plain64 --offset=0 --key-file=&amp;lt;/nowiki&amp;gt;/dev/sd&#039;&#039;Z&#039;&#039; &amp;lt;nowiki&amp;gt;--key-size=512 open --type=plain /dev/sdX enc&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
Unlike encrypting with LUKS, the above command must be executed &#039;&#039;in full&#039;&#039; whenever the mapping needs to be re-established, so it is important to remember the cipher, hash and key file details. &lt;br /&gt;
&lt;br /&gt;
We can now check a mapping entry has been made for {{ic|/dev/mapper/enc}}:&lt;br /&gt;
 # fdisk -l&lt;br /&gt;
&lt;br /&gt;
Next, we setup [[LVM]] logical volumes on the mapped device, see [[LVM#Arch Linux を LVM にインストールする]] for further details: &lt;br /&gt;
 # pvcreate /dev/mapper/enc&lt;br /&gt;
 # vgcreate store /dev/mapper/enc&lt;br /&gt;
 # lvcreate -L 20G store -n root&lt;br /&gt;
 # lvcreate -L 10G store -n swap&lt;br /&gt;
 # lvcreate -l +100%FREE store -n home&lt;br /&gt;
論理ボリュームをフォーマットしてマウントします。詳しくは[[ファイルシステム#デバイスのフォーマット]]を見て下さい &lt;br /&gt;
 # mkfs.ext4 /dev/store/root&lt;br /&gt;
 # mkfs.ext4 /dev/store/home&lt;br /&gt;
 # mount /dev/store/root /mnt&lt;br /&gt;
 # mkdir /mnt/home&lt;br /&gt;
 # mount /dev/store/home /mnt/home&lt;br /&gt;
 # mkswap /dev/store/swap&lt;br /&gt;
 # swapon /dev/store/swap&lt;br /&gt;
&lt;br /&gt;
=== boot パーティションの準備 ===&lt;br /&gt;
必要であれば、USB スティックの vfat パーティションに {{ic|/boot}} パーティションをインストールできます。ただし、手動のパーティションが必要な場合、小さな 200MB のパーティションで十分です。お好きな [[パーティショニング#パーティショニングツール|パーティションツール]]を使ってパーティションを作成してください。&lt;br /&gt;
&lt;br /&gt;
vfat でフォーマットされていない場合、{{ic|/boot}} パーティションのフラッシュメモリを保護するため非ジャーナリングファイルシステムを選択します:&lt;br /&gt;
 # mkfs.ext2 /dev/sd&#039;&#039;Y&#039;&#039;1&lt;br /&gt;
 # mkdir /mnt/boot&lt;br /&gt;
 # mount /dev/sd&#039;&#039;Y&#039;&#039;1 /mnt/boot&lt;br /&gt;
&lt;br /&gt;
=== mkinitcpio の設定 ===&lt;br /&gt;
&lt;br /&gt;
{{ic|keyboard}}, {{ic|encrypt}}, {{ic|lvm2}} フックを [[mkinitcpio|mkinitcpio.conf]] 内の {{ic|filesystems}} の前に追加します:&lt;br /&gt;
{{hc|etc/mkinitcpio.conf|2=HOOKS=(... &#039;&#039;&#039;keyboard&#039;&#039;&#039; &#039;&#039;&#039;keymap&#039;&#039;&#039; block &#039;&#039;&#039;encrypt&#039;&#039;&#039; &#039;&#039;&#039;lvm2&#039;&#039;&#039; ... filesystems ...)}}&lt;br /&gt;
&lt;br /&gt;
他に必要なフックについては [[dm-crypt/システム設定#mkinitcpio]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
設定後はイメージを再生成してください:&lt;br /&gt;
&lt;br /&gt;
 # mkinitcpio -p linux&lt;br /&gt;
&lt;br /&gt;
=== ブートローダーの設定 ===&lt;br /&gt;
&lt;br /&gt;
暗号化した root パーティションを起動するには、以下のカーネルパラメータをブートローダーで設定する必要があります:&lt;br /&gt;
&lt;br /&gt;
 cryptdevice=/dev/sd&#039;&#039;X&#039;&#039;:enc cryptkey=/dev/sd&#039;&#039;Z&#039;&#039;:0:512 crypto=sha512:twofish-xts-plain64:512:0:&lt;br /&gt;
&lt;br /&gt;
{{Note|encrypt の代わりに sd-encrypt を使用する場合、cryptdevice の代わりに {{ic|&#039;&#039;luks.uuid&#039;&#039;}} を使ってください。詳しくは &#039;&#039;systemd-cryptsetup-generator(8)&#039;&#039; を参照。}}&lt;br /&gt;
&lt;br /&gt;
他に必要なパラメータについては [[Dm-crypt/システム設定#ブートローダー]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
{{Tip|GRUB を使用する場合、次のコマンドを使うことで {{ic|/boot}} パーティションと同じ USB にインストールすることができます:&lt;br /&gt;
 # grub-install --recheck /dev/sd&#039;&#039;Y&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===インストール後===&lt;br /&gt;
&lt;br /&gt;
起動後に USB スティックは取り除けます。{{ic|/boot}} パーティションは通常は必要ないため、{{ic|noauto}} オプションを {{ic|/etc/fstab}} に追加できます:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/fstab|&lt;br /&gt;
# /dev/sd&#039;&#039;Yn&#039;&#039;&lt;br /&gt;
/dev/sd&#039;&#039;Yn&#039;&#039; /boot ext2 &#039;&#039;&#039;noauto&#039;&#039;&#039;,rw,noatime 0 2}}&lt;br /&gt;
&lt;br /&gt;
ただしカーネルやブートローダーのアップグレードが必要なときは、{{ic|/boot}} パーティションがマウントされていなければなりません。{{ic|fstab}} に既にエントリが存在すれば、次のコマンドでマウントできます:&lt;br /&gt;
&lt;br /&gt;
 # mount /boot&lt;br /&gt;
&lt;br /&gt;
== boot パーティションの暗号化 (GRUB) ==&lt;br /&gt;
&lt;br /&gt;
このセットアップでは [[#LVM on LUKS]] セクションと同じパーティションレイアウト・設定でシステムのルートパーティションを設定しますが、違いが2つあります:&lt;br /&gt;
&lt;br /&gt;
# セットアップは [[UEFI]] 環境で行います。&lt;br /&gt;
# [[GRUB]] ブートローダーの特殊機能を使用してブートパーティション {{ic|/boot}} も暗号化します。[[GRUB#暗号化された /boot]]を見てください。&lt;br /&gt;
&lt;br /&gt;
ディスクレイアウトは以下のようになります:&lt;br /&gt;
&lt;br /&gt;
 +---------------+----------------+----------------+----------------+----------------+&lt;br /&gt;
 |ESP partition: |Boot partition: |Volume 1:       |Volume 2:       |Volume 3:       |&lt;br /&gt;
 |               |                |                |                |                |&lt;br /&gt;
 |/boot/efi      |/boot           |root            |swap            |home            |&lt;br /&gt;
 |               |                |                |                |                |&lt;br /&gt;
 |               |                |/dev/store/root |/dev/store/swap |/dev/store/home |&lt;br /&gt;
 |/dev/sdaX      |/dev/sdaY       +----------------+----------------+----------------+&lt;br /&gt;
 |&#039;&#039;&#039;un&#039;&#039;&#039;encrypted    |LUKS encrypted  |/dev/sdaZ encrypted using LVM on LUKS             |&lt;br /&gt;
 +---------------+----------------+--------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
{{Tip|All scenarios are intended as examples. It is, of course, possible to apply both of the two above distinct installation steps with the other scenarios as well. See also the variants linked in [[#LVM on LUKS]].}}&lt;br /&gt;
{{Note|{{AUR|cryptboot}} パッケージの {{ic|cryptboot}} スクリプトを使うことで暗号化された boot の管理 (マウント・アンマウント・パッケージのアップグレード) を簡単にできます。また、[[セキュアブート#自分で署名した鍵を使う|UEFI Secure Boot]] を使用して [https://www.schneier.com/blog/archives/2009/10/evil_maid_attac.html 悪意あるメイド] 攻撃から身を守ることができます。詳しくは [https://github.com/xmikos/cryptboot cryptboot のプロジェクトページ] を参照。}}&lt;br /&gt;
&lt;br /&gt;
=== ディスクの準備 ===&lt;br /&gt;
&lt;br /&gt;
パーティションを作成する前に、[[Dm-crypt/ドライブの準備]]に書かれているように、ディスクを完全に消去するようにしてください。&lt;br /&gt;
&lt;br /&gt;
[[Unified_Extensible_Firmware_Interface#EFI_System_Partition|EFI System Partition (ESP)]] を適当な容量で作成してください。後で {{ic|/boot/efi}} にマウントします。&lt;br /&gt;
&lt;br /&gt;
{{ic|/boot}} にマウントするパーティションをタイプ {{ic|8300}} の容量 100 MB 以上で作成します。&lt;br /&gt;
&lt;br /&gt;
{{Tip|BIOS/[[GPT]] で [[GRUB]] ブートローダーを使用する場合は、[[GRUB#BIOS システム]]に書かれているように ESP の代わりに BIOS Boot Partition を作成してください。}}&lt;br /&gt;
&lt;br /&gt;
タイプ {{ic|8E00}} のパーティションを作成してください。後で暗号化コンテナを入れます。&lt;br /&gt;
&lt;br /&gt;
&amp;quot;system&amp;quot; パーティションに LUKS 暗号化コンテナを作成してください。&lt;br /&gt;
&lt;br /&gt;
 # cryptsetup luksFormat /dev/&#039;&#039;sdaZ&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
上記のコマンドの cryptsetup で使えるオプションについては [[Dm-crypt/デバイスの暗号化#LUKS モードの暗号化オプション|LUKS 暗号化オプション]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
パーティションレイアウトは以下のようになります:&lt;br /&gt;
{{hc|# gdisk /dev/sda |&lt;br /&gt;
Number  Start (sector)    End (sector)  Size       Code  Name&lt;br /&gt;
   1            2048         1050623   512.0 MiB   EF00  EFI System&lt;br /&gt;
   2         1050624         1460223   200.0 MiB   8300  Linux filesystem&lt;br /&gt;
   3         1460224        41943006   19.3 GiB    8E00  Linux LVM&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
コンテナを開く:&lt;br /&gt;
&lt;br /&gt;
 # cryptsetup open --type luks /dev/&#039;&#039;sdaZ&#039;&#039; lvm&lt;br /&gt;
&lt;br /&gt;
復号化されたコンテナは {{ic|/dev/mapper/lvm}} から利用できます。&lt;br /&gt;
&lt;br /&gt;
=== 論理ボリュームの準備 ===&lt;br /&gt;
&lt;br /&gt;
The LVM logical volumes of this example follow the exact layout as the previous scenario. Therefore, please follow [[#論理ボリュームの準備|Preparing the logical volumes]] above or adjust as required.&lt;br /&gt;
&lt;br /&gt;
=== boot パーティションの準備 ===&lt;br /&gt;
&lt;br /&gt;
ブートローダーは {{ic|/boot}} ディレクトリからカーネルや [[initramfs]]、あるいはブートローダーの設定ファイルをロードします。&lt;br /&gt;
&lt;br /&gt;
まず、ファイルを配置・インストールするための LUKS コンテナを作成:&lt;br /&gt;
 &lt;br /&gt;
 # cryptsetup luksFormat /dev/sda&#039;&#039;Y&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
次に、コンテナをオープン:&lt;br /&gt;
 # cryptsetup open /dev/sda&#039;&#039;Y&#039;&#039; cryptboot &lt;br /&gt;
&lt;br /&gt;
{{ic|/boot}} にするパーティションにファイルシステムを作成。ブートローダーから読み込めるならどんなファイルシステムでもかまいません:&lt;br /&gt;
&lt;br /&gt;
 # mkfs.ext2 /dev/mapper/&#039;&#039;cryptboot&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{ic|/mnt/boot}} ディレクトリを作成:&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/boot&lt;br /&gt;
&lt;br /&gt;
パーティションを {{ic|/mnt/boot}} にマウント:&lt;br /&gt;
&lt;br /&gt;
 # mount /dev/mapper/&#039;&#039;cryptboot&#039;&#039; /mnt/boot&lt;br /&gt;
&lt;br /&gt;
{{ic|grub-install}} から利用できるように [[Unified_Extensible_Firmware_Interface#EFI_System_Partition|ESP]] のマウントポイントを {{ic|/boot/efi}} に作成してマウント:&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/boot/efi&lt;br /&gt;
 # mount /dev/&#039;&#039;sdaX&#039;&#039; /mnt/boot/efi&lt;br /&gt;
&lt;br /&gt;
この時点で、{{ic|/mnt}} の中に以下のパーティションと論理ボリュームが作成されているはずです:&lt;br /&gt;
{{hc|$ lsblk|&lt;br /&gt;
NAME              	  MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT&lt;br /&gt;
sda                       8:0      0   200G  0 disk  &lt;br /&gt;
├─sda1                    8:1      0   512M  0 part  /boot/efi&lt;br /&gt;
├─sda2                    8:2      0   200M  0 part  &lt;br /&gt;
│ └─boot		  254:0    0   198M  0 crypt /boot&lt;br /&gt;
└─sda3                    8:3      0   100G  0 part  &lt;br /&gt;
  └─lvm                   254:1    0   100G  0 crypt &lt;br /&gt;
    ├─MyStorage-swapvol   254:2    0     8G  0 lvm   [SWAP]&lt;br /&gt;
    ├─MyStorage-rootvol   254:3    0    15G  0 lvm   /&lt;br /&gt;
    └─MyStorage-homevol   254:4    0    77G  0 lvm   /home&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
インストールの手順を mkinitcpio の設定まで進めてください。&lt;br /&gt;
&lt;br /&gt;
=== mkinitcpio の設定 ===&lt;br /&gt;
&lt;br /&gt;
[[mkinitcpio|mkinitcpio.conf]] に {{ic|keyboard}}, {{ic|encrypt}}, {{ic|lvm2}} フックを追加:&lt;br /&gt;
{{hc|/etc/mkinitcpio.conf|2=HOOKS=(... &#039;&#039;&#039;keyboard&#039;&#039;&#039; &#039;&#039;&#039;keymap&#039;&#039;&#039; block &#039;&#039;&#039;encrypt&#039;&#039;&#039; &#039;&#039;&#039;lvm2&#039;&#039;&#039; ... filesystems ...)}}&lt;br /&gt;
&lt;br /&gt;
詳細や必要な他のフックについては [[dm-crypt/システム設定#mkinitcpio]] を参照。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
設定後はイメージを再生成してください:&lt;br /&gt;
&lt;br /&gt;
 # mkinitcpio -p linux&lt;br /&gt;
&lt;br /&gt;
=== ブートローダーの設定 ===&lt;br /&gt;
&lt;br /&gt;
起動時に LUKS で暗号化された {{ic|/boot}} パーティションを認識して暗号化された root パーティションの暗号化が解除されるように GRUB を設定:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/default/grub|2=&lt;br /&gt;
GRUB_CMDLINE_LINUX=&amp;quot;... cryptdevice=UUID=&#039;&#039;&amp;lt;device-UUID&amp;gt;&#039;&#039;:lvm ...&amp;quot;&lt;br /&gt;
GRUB_ENABLE_CRYPTODISK=y&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
詳しくは [[Dm-crypt/システム設定#ブートローダー]]や [[GRUB#暗号化された /boot]]を参照。{{ic|&#039;&#039;&amp;lt;device-UUID&amp;gt;&#039;&#039;}} は {{ic|/dev/sdaZ}} (ルートファイルシステムが存在する LVM が含まれているパーティション) の UUID に置き換えてください。詳しくは[[永続的なブロックデバイスの命名]]を参照。&lt;br /&gt;
&lt;br /&gt;
GRUB の[[GRUB#メイン設定ファイルの生成|設定ファイル]]を作成して、マウントされている ESP に [[GRUB#インストール|GRUB をインストール]]:&lt;br /&gt;
&lt;br /&gt;
 # grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
 # grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub --recheck&lt;br /&gt;
&lt;br /&gt;
設定に問題がなければ、次の起動時に GRUB は {{ic|/boot}} パーティションのロックを解除するためのパスフレーズを要求するはずです。&lt;br /&gt;
&lt;br /&gt;
=== fstab と crypttab の設定 ===&lt;br /&gt;
&lt;br /&gt;
This section deals with extra configuration to let the system &#039;&#039;&#039;mount&#039;&#039;&#039; the encrypted {{ic|/boot}}. &lt;br /&gt;
&lt;br /&gt;
While GRUB asks for a passphrase to unlock the encrypted {{ic|/boot}} after above instructions, the partition unlock is not passed on to the initramfs. Hence, {{ic|/boot}} will not be available after the system has re-/booted, because the {{ic|encrypt}} hook only unlocks the system&#039;s root. &lt;br /&gt;
&lt;br /&gt;
インストール時に &#039;&#039;genfstab&#039;&#039; スクリプトを使用した場合、{{ic|/boot}} と {{ic|/boot/efi}} マウントポイントのエントリが含まれた {{ic|/etc/fstab}} が作成されています。しかしながらシステムはブートパーティションに生成されたデバイスマッパーを見つけることができません。デバイスマッパーを使えるようにするために、以下を [[Dm-crypt/システム設定#crypttab|crypttab]] に追加してください。例: &lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/crypttab|&lt;br /&gt;
cryptboot  /dev/sdaY      none        luks}}&lt;br /&gt;
&lt;br /&gt;
上記を設定するとパスフレーズが二回要求されるようになります (GRUB と systemd ユニットでそれぞれ一回ずつ入力しなくてはなりません)。{{ic|/boot}} のロックを解除するエントリを重複させたくない場合、[[Dm-crypt/デバイスの暗号化#キーファイル]]の指示に従ってください: &lt;br /&gt;
&lt;br /&gt;
# [[Dm-crypt/デバイスの暗号化#ファイルシステムにキーファイルを保存|ランダムなテキストのキーファイル]]を作成&lt;br /&gt;
# キーファイルを ({{ic|/dev/sdaY}}) [[Dm-crypt/デバイスの暗号化#キーファイルを使用するように LUKS を設定|ブートパーティションの LUKS ヘッダ]]に追加&lt;br /&gt;
# {{ic|/etc/fstab}} のエントリを確認して[[Dm-crypt/デバイスの暗号化#起動時にロックを解除|起動時に自動的にロックが解除]]されるように {{ic|/etc/crypttab}} 行を追加&lt;br /&gt;
&lt;br /&gt;
何らかの理由でキーファイルを使って boot パーティションのロックを解除できなかった場合、systemd はフォールバックして解除するためのパスフレーズを要求します。パスフレーズが正しければ、起動に進みます。&lt;br /&gt;
&lt;br /&gt;
{{Tip|Optional post-installation steps: &lt;br /&gt;
* It may be worth considering to add the GRUB bootloader to the ignore list of {{ic|/etc/pacman.conf}} in order to take particular control of when the bootloader (which includes its own encryption modules) is updated. &lt;br /&gt;
* If you want to encrypt the {{ic|/boot}} partition to protect against offline tampering threats, the [[Dm-crypt/特記事項#mkinitcpio-chkcryptoboot|mkinitcpio-chkcryptoboot]] hook has been contributed to help.}}&lt;br /&gt;
&lt;br /&gt;
== Btrfs サブボリュームとスワップ ==&lt;br /&gt;
&lt;br /&gt;
以下の例では [[Btrfs]] のサブボリュームを使って LUKS によるフルシステム暗号化を作成します。&lt;br /&gt;
&lt;br /&gt;
UEFI を使っている場合、[[EFI システムパーティション]] (ESP) が必要です。{{ic|/boot}} は {{ic|/}} の中に保存して暗号化することができますが、ESP を暗号化することは不可能です。ここでは例として、ESP は {{ic|/dev/sda&#039;&#039;Y&#039;&#039;}} で {{ic|/boot/efi}} にマウントするとします。{{ic|/boot}} はシステムパーティション ({{ic|/dev/sda&#039;&#039;X&#039;&#039;}}) に保存します。&lt;br /&gt;
&lt;br /&gt;
{{ic|/boot}} を暗号化された {{ic|/}} の中に配置するため、ブートローダーは [[GRUB]] を使用する必要があります。GRUB だけが {{ic|/boot}} を復号化するのに必要なモジュールをロードできるからです (例: {{ic|crypto.mod}}, {{ic|cryptodisk.mod}}, {{ic|luks.mod}}) [http://www.pavelkogan.com/2014/05/23/luks-full-disk-encryption/]。&lt;br /&gt;
&lt;br /&gt;
さらに任意で暗号化した[[スワップ]]パーティションも作成します。&lt;br /&gt;
&lt;br /&gt;
{{Warning|スワップパーティションのかわりとして[[スワップファイル]]を使うことはできません。データを消失する可能性があります。[[Btrfs#スワップファイル]]を見てください。}}&lt;br /&gt;
&lt;br /&gt;
 +--------------------------+--------------------------+--------------------------+&lt;br /&gt;
 |ESP                       |System partition          |Swap partition            |&lt;br /&gt;
 |&#039;&#039;&#039;un&#039;&#039;&#039;encrypted               |LUKS-encrypted            |plain-encrypted           |&lt;br /&gt;
 |                          |                          |                          |&lt;br /&gt;
 |/boot/efi                 |/                         |                          |&lt;br /&gt;
 |/dev/sda&#039;&#039;Y&#039;&#039;                 |/dev/sda&#039;&#039;X&#039;&#039;                 |/dev/sda&#039;&#039;Z&#039;&#039;                 |&lt;br /&gt;
 |--------------------------+--------------------------+--------------------------+&lt;br /&gt;
&lt;br /&gt;
=== ディスクの準備 ===&lt;br /&gt;
&lt;br /&gt;
{{Note|LUKS を使用する場合に[[Btrfs#パーティショニング|パーティションしない Btrfs ディスク]]を使用することは不可能です。作成するパーティションがひとつだけの場合でも伝統的なパーティショニングが必須です。}}&lt;br /&gt;
&lt;br /&gt;
パーティションを作成する前に、[[dm-crypt/ドライブの準備]]に書かれているようにディスクを完全消去するようにしてください。[[UEFI]] を使っている場合、適当なサイズの [[EFI システムパーティション]]を作成してください。後で {{ic|/boot/efi}} にマウントします。スワップパーティションを暗号化する場合、パーティションを作成してもスワップとして設定してはいけません。plain &#039;&#039;dm-crypt&#039;&#039; でパーティションを使用するためです。&lt;br /&gt;
&lt;br /&gt;
必要なパーティションを作成してください。最低でも {{ic|/}} のパーティションが必要です (例: {{ic|/dev/sda&#039;&#039;X&#039;&#039;}})。[[パーティショニング]]の記事を見てください。&lt;br /&gt;
&lt;br /&gt;
=== システムパーティションの準備 ===&lt;br /&gt;
&lt;br /&gt;
==== LUKS コンテナの作成 ====&lt;br /&gt;
&lt;br /&gt;
[[dm-crypt/デバイスの暗号化#LUKS モードでデバイスを暗号化]]に従って {{ic|/dev/sda&#039;&#039;X&#039;&#039;}} を LUKS で設定してください。設定する前に [[Dm-crypt/デバイスの暗号化#LUKS モードの暗号化オプション]]を見てください。&lt;br /&gt;
&lt;br /&gt;
==== LUKS コンテナの解錠 ====&lt;br /&gt;
&lt;br /&gt;
[[dm-crypt/デバイスの暗号化#デバイスマッパーで LUKS パーティションのロックを解除・マップ]]に従って LUKS コンテナを解錠してマッピングしてください。&lt;br /&gt;
&lt;br /&gt;
==== マッピングされたデバイスのフォーマット ====&lt;br /&gt;
&lt;br /&gt;
[[Btrfs#新しいファイルシステムを作成する]]に書かれているようにデバイスをフォーマットしてください。{{ic|&#039;&#039;/dev/partition&#039;&#039;}} はマップしたデバイスの名前 ({{ic|cryptroot}}) に置き換えてください。{{ic|/dev/sda&#039;&#039;X&#039;&#039;}} を使ってはいけません。&lt;br /&gt;
&lt;br /&gt;
==== マッピングされたデバイスのマウント ====&lt;br /&gt;
&lt;br /&gt;
最後に、フォーマットされたマップ済みデバイス ({{ic|/dev/mapper/cryptroot}}) を {{ic|/mnt}} に[[マウント]]してください。&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|1=compress=lzo}} マウントオプションを使うと良いでしょう。詳しくは [[Btrfs#圧縮]]を見てください。}}&lt;br /&gt;
&lt;br /&gt;
=== btrfs サブボリュームの作成 ===&lt;br /&gt;
&lt;br /&gt;
==== レイアウト ====&lt;br /&gt;
&lt;br /&gt;
[[Btrfs#サブボリューム|サブボリューム]]をパーティションのように使いますが、他の (ネストした) サブボリュームも作成します。以下は作成するサブボリュームの例を示しています:&lt;br /&gt;
&lt;br /&gt;
 subvolid=5 (/dev/sda&#039;&#039;X&#039;&#039;)&lt;br /&gt;
    |&lt;br /&gt;
    ├── @ (mounted as /)&lt;br /&gt;
    |       |&lt;br /&gt;
    |       ├── /bin (directory)&lt;br /&gt;
    |       |&lt;br /&gt;
    |       ├── /home (mounted @home subvolume)&lt;br /&gt;
    |       |&lt;br /&gt;
    |       ├── /usr (directory)&lt;br /&gt;
    |       |&lt;br /&gt;
    |       ├── /.snapshots (mounted @snapshots subvolume)&lt;br /&gt;
    |       |&lt;br /&gt;
    |       ├── /var/cache/pacman/pkg (nested subvolume)&lt;br /&gt;
    |       |&lt;br /&gt;
    |       ├── ... (other directories and nested subvolumes)&lt;br /&gt;
    |&lt;br /&gt;
    ├── @snapshots (mounted as /.snapshots)&lt;br /&gt;
    |&lt;br /&gt;
    ├── @home (mounted as /home)&lt;br /&gt;
    |&lt;br /&gt;
    └── @... (additional subvolumes you wish to use as mount points)&lt;br /&gt;
&lt;br /&gt;
このセクションでは [[Snapper]] を使うときに便利な [[Snapper#推奨ファイルシステムレイアウト]]に従います。[https://btrfs.wiki.kernel.org/index.php/SysadminGuide#Layout Btrfs Wiki SysadminGuide#Layout] も読んでください。&lt;br /&gt;
&lt;br /&gt;
==== トップレベルサブボリュームの作成 ====&lt;br /&gt;
&lt;br /&gt;
マウントポイントとして使用するサブボリュームの名前には {{ic|@}} を前に付けます。{{ic|/}} にマウントするサブボリュームは {{ic|@}} とします。&lt;br /&gt;
&lt;br /&gt;
[[Btrfs#サブボリュームを作成する]]に従って {{ic|/mnt/@}}, {{ic|/mnt/@snapshots}}, {{ic|/mnt/@home}} にサブボリュームを作成します。&lt;br /&gt;
&lt;br /&gt;
他にマウントポイントとして使用したいサブボリュームも作成してください。&lt;br /&gt;
&lt;br /&gt;
==== トップレベルサブボリュームのマウント ====&lt;br /&gt;
&lt;br /&gt;
{{ic|/mnt}} のシステムパーティションをアンマウントしてください。&lt;br /&gt;
&lt;br /&gt;
{{ic|/}} として使用する、新しく作成した {{ic|@}} サブボリュームを {{ic|1=subvol=}} マウントオプションを使って {{ic|/mnt}} にマウントします。マップしたデバイスの名前が {{ic|cryptroot}} なら、コマンドは以下のようになります:&lt;br /&gt;
&lt;br /&gt;
 # mount -o compress=lzo,subvol=@ /dev/mapper/cryptroot /mnt&lt;br /&gt;
&lt;br /&gt;
詳しくは [[Btrfs#サブボリュームをマウントする]]を見てください。&lt;br /&gt;
&lt;br /&gt;
他のサブボリュームを適切なマウントポイントにマウントしてください: {{ic|@home}} は {{ic|/mnt/home}} に、{{ic|@snapshots}} は {{ic|/mnt/.snapshots}} にマウントします。&lt;br /&gt;
&lt;br /&gt;
==== ネストされたサブボリュームの作成 ====&lt;br /&gt;
&lt;br /&gt;
{{ic|/}} のスナップショットが作成されるときに、スナップショットを作りたくないサブボリュームを作成してください。例えば、{{ic|/var/cache/pacman/pkg}} のスナップショットなどは不要でしょう。サブボリュームは {{ic|@}} サブボリュームの下にネストしますが、{{ic|@}} と同じレベルに作成することもできます。&lt;br /&gt;
&lt;br /&gt;
{{ic|@}} サブボリュームは {{ic|/mnt}} にマウントするため、{{ic|/mnt/var/cache/pacman/pkg}} に[[Btrfs#サブボリュームを作成する|サブボリュームを作成]]する必要があります。先に親のディレクトリを作成してください。&lt;br /&gt;
&lt;br /&gt;
他にも {{ic|/var/abs}}, {{ic|/var/tmp}}, {{ic|/srv}} などのディレクトリのサブボリュームを作成してください。&lt;br /&gt;
&lt;br /&gt;
==== ESP のマウント ====&lt;br /&gt;
&lt;br /&gt;
EFI システムパーティションを準備済みなら、マウントポイントを作成してマウントしてください。&lt;br /&gt;
&lt;br /&gt;
{{Note|Btrfs のスナップショットは {{ic|/boot/efi}} を除外します (btrfs ファイルシステムではないため)。}}&lt;br /&gt;
&lt;br /&gt;
[[インストールガイド#ベースシステムのインストール|pacstrap]] でインストールを行うときに、{{Pkg|btrfs-progs}} もインストールする必要があります。&lt;br /&gt;
&lt;br /&gt;
=== mkinitcpio の設定 ===&lt;br /&gt;
&lt;br /&gt;
==== キーファイルの作成 ====&lt;br /&gt;
&lt;br /&gt;
GRUB で LUKS パーティションを解錠するために、initramfs にキーファイルを埋め込みます。[[Dm-crypt/デバイスの暗号化#キーファイルを initramfs に埋め込む]]に従って &#039;&#039;luksAddKey&#039;&#039; を実行する段階でキーを {{ic|/dev/sda&#039;&#039;X&#039;&#039;}} に追加してください。&lt;br /&gt;
&lt;br /&gt;
==== mkinitcpio.conf の編集 ====&lt;br /&gt;
&lt;br /&gt;
上記のようにキーファイルを作成して埋め込んだら、[[mkinitcpio|mkinitcpio.conf]] に {{ic|encrypt}} フックを追加してください。詳しくは [[Dm-crypt/システム設定#mkinitcpio]] を参照。設定後は initramfs を再生成する必要があります。&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|1=BINARIES=(/usr/bin/btrfs)}} を {{ic|mkinitcpio.conf}} に追加すると良いでしょう。詳しくは [[Btrfs#ファイルシステム破損のリカバリ]] を見てください。}}&lt;br /&gt;
&lt;br /&gt;
=== ブートローダーの設定 ===&lt;br /&gt;
&lt;br /&gt;
[[GRUB]] を {{ic|/dev/sda}} にインストールします。そして [[GRUB#暗号化された /boot]]に書かれているように {{ic|/etc/default/grub}} を編集します (ルートパーティションと boot パーティションの両方の手順に従ってください)。最後に、GRUB の設定ファイルを生成します。&lt;br /&gt;
&lt;br /&gt;
=== スワップの設定 ===&lt;br /&gt;
&lt;br /&gt;
スワップを暗号化するためにパーティションを作成していた場合、ここで設定してください。[[Dm-crypt/スワップの暗号化]]の手順に従ってください。&lt;br /&gt;
&lt;br /&gt;
設定を完了したら、[[インストールガイド#再起動|インストールガイド]]にしたがって通常通りにシステムの設定を続行してください。&lt;/div&gt;</summary>
		<author><name>Hkiku482</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%83%A6%E3%83%8B%E3%83%95%E3%82%A1%E3%82%A4%E3%83%89%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8&amp;diff=39724</id>
		<title>ユニファイドカーネルイメージ</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%83%A6%E3%83%8B%E3%83%95%E3%82%A1%E3%82%A4%E3%83%89%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8&amp;diff=39724"/>
		<updated>2025-02-14T15:04:16Z</updated>

		<summary type="html">&lt;p&gt;Hkiku482: /* kernel-install */ s/mkinitpcio/mkinitcpio/&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ブートローダー]]&lt;br /&gt;
[[en:Unified kernel image]]&lt;br /&gt;
[[pt:Unified kernel image]]&lt;br /&gt;
[https://uapi-group.org/specifications/specs/unified_kernel_image ユニファイドカーネルイメージ] (UKI) は、単一の実行可能ファイルであり、[[UEFI]] ファームウェアから直接起動するか、ほとんどまたは全く設定を必要とせずにブートローダーによって自動的に取得されます。これは {{man|7|systemd-stub}} のような UEFI ブートスタブプログラム、Linux [[Arch ブートプロセス#カーネル|カーネルイメージ]]、[[Arch ブートプロセス#initramfs|initrd]]、および [https://uapi-group.org/specifications/specs/unified_kernel_image/#uki-components その他のリソース] を単一の UEFI PE ファイルに組み合わせたものです。&lt;br /&gt;
&lt;br /&gt;
このファイルは、したがってこれらのすべての要素を[[Unified Extensible Firmware Interface/セキュアブート# EFI バイナリに署名する|署名]]して [[Secure Boot]] で使用することが容易になります。&lt;br /&gt;
&lt;br /&gt;
{{Note|記事全体で {{ic|&#039;&#039;esp&#039;&#039;}} は [[EFI システムパーティション]] のマウントポイントを表します。}}&lt;br /&gt;
&lt;br /&gt;
== ユニファイドカーネルイメージの準備 ==&lt;br /&gt;
&lt;br /&gt;
=== mkinitcpio ===&lt;br /&gt;
&lt;br /&gt;
==== カーネルコマンドライン ====&lt;br /&gt;
&lt;br /&gt;
[[mkinitcpio]] は、{{ic|/etc/cmdline.d}} ディレクトリ内のコマンドライン ファイルからの[[カーネルパラメータ]]の読み取りをサポートします。Mkinitcpio は、このディレクトリ内の {{ic|.conf}} 拡張子を持つすべてのファイルの内容を連結し、それらを使用してカーネルコマンドラインを生成します。コマンドラインファイル内の &#039;&#039;#&#039;&#039; 文字で始まる行はコメントとして扱われ、mkinitcpio によって無視されます。マイクロコードと initramfs を指す &#039;&#039;エントリを削除&#039;&#039; するように注意してください。&lt;br /&gt;
&lt;br /&gt;
例:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/cmdline.d/root.conf|2=&lt;br /&gt;
root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* ルート ファイルシステムがデフォルト以外の Btrfs サブボリューム上にある場合は、必ず必要なマウントフラグを {{ic|rootflags}} に設定してください。[[Btrfs#ルートとしてサブボリュームをマウントする]] を参照してください。&lt;br /&gt;
* たとえば、システムのサブボリューム ID が {{ic|256}} の場合 (サブボリューム ID は、{{ic|btrfs subvolume list &#039;&#039;btrfs_mountpoint&#039;&#039;}} を使用して確認できます。または、{{ic|/etc/fstab}}) でフラグを見ることができます、カーネルコマンドラインに {{ic|1=rootflags=subvolid=256}} を追加する必要があります。&lt;br /&gt;
* {{ic|rootflags}} は起動時にのみ使用されるため、{{ic|/etc/fstab}} 内のすべてのフラグをコピーする必要はありません。Systemd は fstab を読み取り、再マウントし、ブート後にそこにリストされているフラグを自動的に適用します。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/cmdline.d/security.conf|2=&lt;br /&gt;
# enable apparmor&lt;br /&gt;
lsm=landlock,lockdown,yama,integrity,apparmor,bpf audit=1 audit_backlog_limit=256&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
あるいは、{{ic|/etc/kernel/cmdline}} を使用してカーネルコマンドラインを構成することもできます。&lt;br /&gt;
&lt;br /&gt;
例:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/kernel/cmdline|2=&lt;br /&gt;
root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet bgrt_disable&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* root パーティションが [[systemd# GPT パーティションの自動マウント|systemd によって自動マウントされる]] 場合、{{ic|1=root=}} パラメータは省略できます。&lt;br /&gt;
* {{ic|bgrt_disable}} パラメータは、ACPI テーブルのロード後に OEM ロゴを表示しないように Linux に指示します。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== .preset ファイル ====&lt;br /&gt;
&lt;br /&gt;
次に、{{ic|/etc/mkinitcpio.d/linux.preset}}、または使用しているプリセットを、[[EFI システムパーティション]] の適切なマウントポイントを指定して、以下のように変更します:&lt;br /&gt;
&lt;br /&gt;
* {{ic|1=PRESETS=}} の各項目について、{{ic|1=&#039;&#039;PRESET&#039;&#039;_uki=}} パラメータのコメントを解除する (つまり {{ic|#}} を削除する)、&lt;br /&gt;
* 冗長な {{ic|initramfs-*.img}} ファイルを保存しないように、{{ic|1=&#039;&#039;PRESET&#039;&#039;_image=}} をコメントアウトする、&lt;br /&gt;
* オプションとして、スプラッシュイメージを追加したい各 {{ic|1=&#039;&#039;PRESET&#039;&#039;_options=}} 行に {{ic|--splash}} パラメータを追加またはコメント解除します。&lt;br /&gt;
&lt;br /&gt;
以下は {{Pkg|linux}} カーネルと Arch スプラッシュスクリーンの {{ic|linux.preset}} の例です。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/mkinitcpio.d/linux.preset|2= &lt;br /&gt;
# mkinitcpio preset file for the &#039;linux&#039; package&lt;br /&gt;
&lt;br /&gt;
#ALL_config=&amp;quot;/etc/mkinitcpio.conf&amp;quot;&lt;br /&gt;
ALL_kver=&amp;quot;/boot/vmlinuz-linux&amp;quot;&lt;br /&gt;
&lt;br /&gt;
PRESETS=(&#039;default&#039; &#039;fallback&#039;)&lt;br /&gt;
&lt;br /&gt;
#default_config=&amp;quot;/etc/mkinitcpio.conf&amp;quot;&lt;br /&gt;
#default_image=&amp;quot;/boot/initramfs-linux.img&amp;quot;&lt;br /&gt;
default_uki=&amp;quot;&#039;&#039;esp&#039;&#039;/EFI/Linux/arch-linux.efi&amp;quot;&lt;br /&gt;
default_options=&amp;quot;--splash=/usr/share/systemd/bootctl/splash-arch.bmp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#fallback_config=&amp;quot;/etc/mkinitcpio.conf&amp;quot;&lt;br /&gt;
#fallback_image=&amp;quot;/boot/initramfs-linux-fallback.img&amp;quot;&lt;br /&gt;
fallback_uki=&amp;quot;&#039;&#039;esp&#039;&#039;/EFI/Linux/arch-linux-fallback.efi&amp;quot;&lt;br /&gt;
fallback_options=&amp;quot;-S autodetect&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* 統一されたカーネルイメージからブートしたいだけであれば、[[EFI システムパーティション#典型的なマウントポイント|ESP のマウント]]を {{ic|/efi}} にして、[[ESP]] パーティションに存在する必要があるものだけをマウントすることができます。&lt;br /&gt;
* {{ic|--cmdline /etc/kernel/&#039;&#039;fallback_cmdline&#039;&#039;}} を {{ic|fallback_options}} に追加することで、フォールバックイメージに上記とは異なる [[Unified カーネルイメージ#カーネルコマンドライン|cmdline]] を使用することができます (例えば {{ic|quiet}} を無くす。)&lt;br /&gt;
* カーネルコマンドラインの埋め込みを省略するには、{{ic|--no-cmdline}} を {{ic|1=&#039;&#039;PRESET&#039;&#039;_options=}} に追加してください。カーネルパラメーターはブートローダー経由で渡す必要があります。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* {{ic|&#039;&#039;PRESET&#039;&#039;_uki}} オプションは以前は {{ic|&#039;&#039;PRESET&#039;&#039;_efi_image}} として知られていました。[https://gitlab.archlinux.org/archlinux/mkinitcpio/mkinitcpio/-/issues/134 2022 年 11 月変更], 古いオプションは非推奨ですが、今のところ動作しています。&lt;br /&gt;
* [[Unified Extensible Firmware Interface# UEFI ファームウェアのビット数|IA32 UEFI]] では、{{ic|--uefistub /usr/lib/systemd/boot/efi/linuxia32.efi.stub}} を {{ic|1=&#039;&#039;PRESET&#039;&#039;_options=}} に追加してください。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== pacman フック ====&lt;br /&gt;
&lt;br /&gt;
マイクロコードのアップグレード後に再構築をトリガーするには、[[pacman フック]] が必要です。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/pacman.d/hooks/ucode.hook|2=&lt;br /&gt;
[Trigger]&lt;br /&gt;
Operation=Install&lt;br /&gt;
Operation=Upgrade&lt;br /&gt;
Operation=Remove&lt;br /&gt;
Type=Package&lt;br /&gt;
# Change to appropriate microcode package&lt;br /&gt;
Target=amd-ucode&lt;br /&gt;
# Change the linux part above and in the Exec line if a different kernel is used&lt;br /&gt;
Target=linux&lt;br /&gt;
&lt;br /&gt;
[Action]&lt;br /&gt;
Description=Update Microcode module in initcpio&lt;br /&gt;
Depends=mkinitcpio&lt;br /&gt;
When=PostTransaction&lt;br /&gt;
NeedsTargets&lt;br /&gt;
Exec=/bin/sh -c &#039;while read -r trg; do case $trg in linux) exit 0; esac; done; /usr/bin/mkinitcpio -P&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|mkinitcpio の繰り返し実行を避けるために、このフックを [[NVIDIA#pacman フック|NVIDIA ドライバー]] のフックなど、カーネルパッケージを監視する他のフックとマージすることを検討してください。}}&lt;br /&gt;
&lt;br /&gt;
==== セキュアブート用の UKI への署名 ====&lt;br /&gt;
&lt;br /&gt;
mkinitcpio ポストフック ({{man|8|mkinitcpio|ABOUT POST HOOKS}}) を使用すると、生成された統合カーネルイメージに [[セキュアブート]] 用に署名できます。次のファイルを [[作成]] し、[[ヘルプ:読み方#実行可能属性の付与|実行可能]] にします。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/initcpio/post/uki-sbsign|2=&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
uki=&amp;quot;$3&amp;quot;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;[[ -n &amp;quot;$uki&amp;quot; ]] || exit 0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
keypairs=(&#039;&#039;/path/to/&#039;&#039;db.key &#039;&#039;/path/to/&#039;&#039;db.crt)&lt;br /&gt;
&lt;br /&gt;
for (( i=0; i&amp;lt;${#keypairs[@]}; i+=2 )); do&lt;br /&gt;
    key=&amp;quot;${keypairs[$i]}&amp;quot; cert=&amp;quot;${keypairs[(( i + 1 ))]}&amp;quot;&lt;br /&gt;
    if ! sbverify --cert &amp;quot;$cert&amp;quot; &amp;quot;$uki&amp;quot; &amp;amp;&amp;gt;/dev/null; then&lt;br /&gt;
        sbsign --key &amp;quot;$key&amp;quot; --cert &amp;quot;$cert&amp;quot; --output &amp;quot;$uki&amp;quot; &amp;quot;$uki&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|&#039;&#039;/path/to/&#039;&#039;db.key}} と {{ic|&#039;&#039;/path/to/&#039;&#039;db.crt}} をイメージの署名に使いたい鍵ペアのパスに置き換えてください。&lt;br /&gt;
&lt;br /&gt;
==== UKI の構築 ====&lt;br /&gt;
&lt;br /&gt;
最後に、UKI のディレクトリが存在することを確認し、[[mkinitcpio#イメージ作成とアクティベーション|initramfs を再生成]] します。たとえば、&#039;&#039;linux&#039;&#039; プリセットの場合は次のようになります。&lt;br /&gt;
&lt;br /&gt;
 # mkdir -p &#039;&#039;esp&#039;&#039;/EFI/Linux&lt;br /&gt;
 # mkinitcpio -p linux&lt;br /&gt;
&lt;br /&gt;
必要に応じて、残っている {{ic|initramfs-*.img}} を {{ic|/boot}} または {{ic|/efi}} から削除します。&lt;br /&gt;
&lt;br /&gt;
=== kernel-install ===&lt;br /&gt;
&lt;br /&gt;
[[systemd]] の [[Kernel-install]] スクリプトを使用して、カスタムカーネルとカーネルパッケージ (Pacman を使用してインストール) の両方について、UKI 形式のカーネルを &#039;&#039;esp&#039;&#039; に自動的にインストールできます。 Pacman フックを &#039;&#039;mkinitcpio&#039;&#039; から &#039;&#039;kernel-install&#039;&#039; に切り替える必要があります。&lt;br /&gt;
&lt;br /&gt;
UKI イメージは、&#039;&#039;mkinitcpio&#039;&#039; によって直接生成することも、カーネルイメージと生成されたスタンドアロン initramfs イメージを 1 つのファイルに統合する &#039;&#039;kernel-install&#039;&#039; によって生成することもできます (&#039;&#039;kernel-install&#039;&#039;の &#039;&#039;ukify&#039;&#039; ツールによって) 2024 年 1 月 15 日以降、&#039;&#039;install&#039;&#039; には、{{pkg|systemd-ukify}} が必要です。以下を参照してください) &#039;&#039;mkinitcpio&#039;&#039; は、適切なイメージ ({{ic|1=layout=uki}} および {{ic|1=uki_generator=mkinitcpio}} の UKI イメージ) を生成するために &#039;&#039;kernel-install&#039;&#039; によって呼び出されます。それ以外の場合は、&#039;&#039;ukify&#039;&#039; のスタンドアロンの initramfs イメージ) を生成します。&lt;br /&gt;
&lt;br /&gt;
* kernel-install {{ic|layout}} を {{ic|uki}} に設定します。例えば: {{bc|1=# echo &amp;quot;layout=uki&amp;quot; &amp;gt;&amp;gt; /etc/kernel/install.conf}}&lt;br /&gt;
&lt;br /&gt;
* デフォルトでは、レイアウトが uki に設定されている場合、&#039;&#039;kernel-install&#039;&#039; は独自の &#039;&#039;ukify&#039;&#039; ツールを使用して (ここで {{pkg|systemd-ukify}} をインストールする必要があります。下記を参照) initramfs とカーネルイメージ  mkinitcpio を使用して、uki イメージを直接生成できます。mkinitcpio を使用して uki イメージを生成したい場合は、{{ic|uki_generator}} を {{ic|mkinitcpio}} に設定します。例: {{bc|1=# echo &amp;quot;uki_generator=mkinitcpio&amp;quot; &amp;gt;&amp;gt; /etc/kernel/install.conf}}&lt;br /&gt;
&lt;br /&gt;
:{{Note|2024 年 1 月 15 日以降、{{ic|uki_generator}} でない限り、{{pkg|mkinitcpio}} は [https://gitlab.archlinux.org/archlinux/mkinitcpio/mkinitcpio/-/commit/0df979c34970b19a3e56d9a16d79e32830228448 UKI をビルドしなくなりました]}} {{ic|mkinitcpio}} に直接設定されます。以前は、{{pkg|systemd-ukify}} が明示的にインストールされていない場合、暗黙的に設定されていました。}}&lt;br /&gt;
&lt;br /&gt;
* カーネルを直接インストールする Pacman フック:{{bc|&amp;lt;nowiki&amp;gt;# ln -s /dev/null /etc/pacman.d/hooks/60-mkinitcpio-remove.hook&lt;br /&gt;
# ln -s /dev/null /etc/pacman.d/hooks/90-mkinitcpio-install.hook&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
* &#039;&#039;kernel-install&#039;&#039; の Pacman フックを作成します。{{AUR|pacman-hook-kernel-install}} を使うことができます。&lt;br /&gt;
* 使用しているカーネルパッケージを削除して再インストールします。&lt;br /&gt;
&lt;br /&gt;
=== dracut ===&lt;br /&gt;
&lt;br /&gt;
[[dracut#カーネルコマンドラインオプション|コマンドラインパラメータ]] を、例えば {{ic|/etc/dracut.conf.d/cmdline.conf}} に配置します。&lt;br /&gt;
&lt;br /&gt;
イメージを生成する。&lt;br /&gt;
&lt;br /&gt;
 # dracut -f -q --uefi --uefi-splash-image /usr/share/systemd/bootctl/splash-arch.bmp&lt;br /&gt;
&lt;br /&gt;
こちらも参照 [[dracut#カーネルのアップグレード時に新しい initramfs を生成]]&lt;br /&gt;
&lt;br /&gt;
=== sbctl ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|sbctl}} パッケージを [[インストール]] して下さい。カーネルコマンド ラインを {{ic|/etc/kernel/cmdline}} に保存します。{{ic|--save}} パラメータを指定した {{ic|sbctl bundle}} コマンドを使用してバンドルを作成し、適切なタイミングで Pacman フックによって再生成します。&lt;br /&gt;
&lt;br /&gt;
 # sbctl bundle --save &#039;&#039;esp&#039;&#039;/archlinux.efi&lt;br /&gt;
&lt;br /&gt;
他のカーネルと initramfs イメージ用にさらに EFI バイナリを作成するには、パラメーター {{ic|--kernel-img}} と {{ic|--initramfs}} を指定して上記のコマンドを繰り返します。{{man|8|sbctl|EFI BINARY COMMANDS}} を参照してください。EFI バイナリは、{{ic|sbctl generate-bundles}} を使用していつでも再生成できます。&lt;br /&gt;
&lt;br /&gt;
=== ukify ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|systemd-ukify}} パッケージを [[インストール]] します。&#039;&#039;ukify&#039;&#039; は単独で initramfs を生成できないため、必要な場合は、[[dracut]]、[[mkinitcpio]]、または [[booster]] を使用して生成する必要があります。&lt;br /&gt;
&lt;br /&gt;
最小限の動作例は次のようになります。&lt;br /&gt;
&lt;br /&gt;
 # /usr/lib/systemd/ukify build --linux=&#039;&#039;/boot/vmlinuz-linux&#039;&#039; --initrd=&#039;&#039;/boot/intel-ucode.img&#039;&#039; \&lt;br /&gt;
 --initrd=&#039;&#039;/boot/initramfs-linux.img&#039;&#039; \&lt;br /&gt;
 --cmdline=&amp;quot;&#039;&#039;quiet rw&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note|[[マイクロコード#早期ロード|外部マイクロコード initramfs イメージ]] を使用する場合 ({{ic|/boot/amd-ucode.img}} または {{ic|/boot/intel-ucode.img}}) を使用する必要があります。常にメインの initramfs イメージの前に &#039;&#039;最初に&#039;&#039; 配置します (例: {{ic|/boot/initramfs-linux.img}})}}&lt;br /&gt;
&lt;br /&gt;
次に、結果のファイルを EFI システムパーティションにコピーします。&lt;br /&gt;
&lt;br /&gt;
 # cp &#039;&#039;filename&#039;&#039;.efi &#039;&#039;esp&#039;&#039;/EFI/Linux/&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* 出来上がった EFI 実行ファイルを EFI システムパーティションにコピーするのをスキップするには、{{ic|1=--output=&#039;&#039;esp&#039;&#039;/EFI/Linux/&#039;&#039;filename&#039;&#039;.efi}} コマンドラインオプションを &#039;&#039;ukify&#039;&#039; に使用します。&lt;br /&gt;
* {{ic|--cmdline}} オプションを指定する場合、{{ic|1=--cmdline=@&#039;&#039;/path/to/cmdline&#039;&#039;}} のように {{ic|/etc/kernel/cmdline}} ファイル名の前に {{ic|@}} シンボルを追加することで、カーネルパラメータを読み込むファイル名を指定できます。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
intel ucode および /efi マウント ESP を使用した通常のカーネルイメージの systemd サービスを使用した自動 UKI 構築の例:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ukify.conf|2=&lt;br /&gt;
[UKI]&lt;br /&gt;
Linux=/boot/vmlinuz-linux&lt;br /&gt;
Initrd=/boot/intel-ucode.img /boot/initramfs-linux.img&lt;br /&gt;
Cmdline=@/etc/kernel/cmdline&lt;br /&gt;
OSRelease=@/etc/os-release&lt;br /&gt;
Splash=/usr/share/systemd/bootctl/splash-arch.bmp&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|initramfs ジェネレーターが mkinitcpio などの CPU マイクロコードをデフォルトですでにバンドルしている場合は、{{ic|1=Initrd=/boot/initramfs-linux.img}} で initramfs イメージのみを指定します。}}&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/run_ukify.service|2=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Run systemd ukify&lt;br /&gt;
[Service]&lt;br /&gt;
Type=oneshot&lt;br /&gt;
ExecStart=/usr/lib/systemd/ukify build --config=/etc/ukify.conf --output &#039;&#039;esp&#039;&#039;/EFI/Linux/archlinux-linux.efi&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/run_ukify.path|2=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Run systemd ukify&lt;br /&gt;
[Path]&lt;br /&gt;
PathChanged=/boot/initramfs-linux.img&lt;br /&gt;
PathChanged=/boot/intel-ucode.img&lt;br /&gt;
Unit=run_ukify.service&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
次に、{{ic|run_ukify.path}} を [[有効化]] します。&lt;br /&gt;
&lt;br /&gt;
=== 手動で ===&lt;br /&gt;
&lt;br /&gt;
使用するカーネルコマンドラインをファイルに記述し、{{man|1|objcopy}} を使用してバンドルファイルを作成します。&lt;br /&gt;
&lt;br /&gt;
[[マイクロコード]] の場合は、まず次のようにマイクロコードファイルと initrd を連結します。&lt;br /&gt;
&lt;br /&gt;
 $ cat &#039;&#039;esp&#039;&#039;/&#039;&#039;cpu_manufacturer&#039;&#039;-ucode.img &#039;&#039;esp&#039;&#039;/initramfs-linux.img &amp;gt; /tmp/combined_initrd.img&lt;br /&gt;
&lt;br /&gt;
統合カーネルイメージを構築するときは、{{ic|/tmp/combined_initrd.img}} を initrd として渡します。このファイルは後で削除できます。&lt;br /&gt;
&lt;br /&gt;
{{Note|[[Unified Extensible Firmware Interface#UEFI ファームウェアのビット数|IA32 UEFI]] では、以下のコマンドの {{ic|/usr/lib/systemd/boot/efi/linuxx64.efi.stub}} を {{ic|/usr/lib/systemd/boot/efi/linuxia32.efi.stub}} に置き換えてください。}}&lt;br /&gt;
&lt;br /&gt;
{{bc|1=&lt;br /&gt;
$ align=&amp;quot;$(objdump -p /usr/lib/systemd/boot/efi/linuxx64.efi.stub {{!}} awk &#039;{ if ($1 == &amp;quot;SectionAlignment&amp;quot;){print $2} }&#039;)&amp;quot;&lt;br /&gt;
$ align=$((16#$align))&lt;br /&gt;
$ osrel_offs=&amp;quot;$(objdump -h &amp;quot;/usr/lib/systemd/boot/efi/linuxx64.efi.stub&amp;quot; {{!}} awk &#039;NF==7 {size=strtonum(&amp;quot;0x&amp;quot;$3); offset=strtonum(&amp;quot;0x&amp;quot;$4)} END {print size + offset}&#039;)&amp;quot;&lt;br /&gt;
$ osrel_offs=$((osrel_offs + &amp;quot;$align&amp;quot; - osrel_offs % &amp;quot;$align&amp;quot;))&lt;br /&gt;
$ cmdline_offs=$((osrel_offs + $(stat -Lc%s &amp;quot;/usr/lib/os-release&amp;quot;)))&lt;br /&gt;
$ cmdline_offs=$((cmdline_offs + &amp;quot;$align&amp;quot; - cmdline_offs % &amp;quot;$align&amp;quot;))&lt;br /&gt;
$ splash_offs=$((cmdline_offs + $(stat -Lc%s &amp;quot;/etc/kernel/cmdline&amp;quot;)))&lt;br /&gt;
$ splash_offs=$((splash_offs + &amp;quot;$align&amp;quot; - splash_offs % &amp;quot;$align&amp;quot;))&lt;br /&gt;
$ initrd_offs=$((splash_offs + $(stat -Lc%s &amp;quot;/usr/share/systemd/bootctl/splash-arch.bmp&amp;quot;)))&lt;br /&gt;
$ initrd_offs=$((initrd_offs + &amp;quot;$align&amp;quot; - initrd_offs % &amp;quot;$align&amp;quot;))&lt;br /&gt;
$ linux_offs=$((initrd_offs + $(stat -Lc%s &amp;quot;&#039;&#039;initrd-file&#039;&#039;&amp;quot;)))&lt;br /&gt;
$ linux_offs=$((linux_offs + &amp;quot;$align&amp;quot; - linux_offs % &amp;quot;$align&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
$ objcopy \&lt;br /&gt;
    --add-section .osrel=&amp;quot;/usr/lib/os-release&amp;quot; --change-section-vma .osrel=$(printf 0x%x $osrel_offs) \&lt;br /&gt;
    --add-section .cmdline=&amp;quot;/etc/kernel/cmdline&amp;quot; \&lt;br /&gt;
    --change-section-vma .cmdline=$(printf 0x%x $cmdline_offs) \&lt;br /&gt;
    --add-section .splash=&amp;quot;/usr/share/systemd/bootctl/splash-arch.bmp&amp;quot; \&lt;br /&gt;
    --change-section-vma .splash=$(printf 0x%x $splash_offs) \&lt;br /&gt;
    --add-section .initrd=&amp;quot;&#039;&#039;initrd-file&#039;&#039;&amp;quot; \&lt;br /&gt;
    --change-section-vma .initrd=$(printf 0x%x $initrd_offs) \&lt;br /&gt;
    --add-section .linux=&amp;quot;&#039;&#039;vmlinuz-file&#039;&#039;&amp;quot; \&lt;br /&gt;
    --change-section-vma .linux=$(printf 0x%x $linux_offs) \&lt;br /&gt;
    &amp;quot;/usr/lib/systemd/boot/efi/linuxx64.efi.stub&amp;quot; &amp;quot;&#039;&#039;linux&#039;&#039;.efi&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
注意すべき点がいくつかあります:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/systemd/systemd/commit/0fa2cac4f0cdefaf1addd7f1fe0fd8113db9360b#commitcomment-76747223] で推奨されているように、オフセットは動的に計算されるので、セクションが重なることはありません。&lt;br /&gt;
* セクションは、PE スタブの {{ic|SectionAlignment}} フィールドが示す値 (通常は 0x1000) にアラインメントされます。&lt;br /&gt;
* カーネルイメージは、[https://github.com/systemd/systemd/commit/0fa2cac4f0cdefaf1addd7f1fe0fd8113db9360b#commitcomment-84868898] で述べられているように、インプレース解凍で後続のセクションが上書きされるのを防ぐために、最後のセクションにある必要があります。&lt;br /&gt;
&lt;br /&gt;
イメージを作成したら、それを EFI システムパーティションにコピーします。&lt;br /&gt;
&lt;br /&gt;
 # cp &#039;&#039;linux&#039;&#039;.efi &#039;&#039;esp&#039;&#039;/EFI/Linux/&lt;br /&gt;
&lt;br /&gt;
== 起動方法 ==&lt;br /&gt;
&lt;br /&gt;
{{Note|[[セキュアブート]] がアクティブな場合、{{ic|.cmdline}} が埋め込まれた統合カーネルイメージは、(ブートエントリを使用するか対話的に) 渡されたすべてのコマンドラインオプションを無視します。セキュアブートがアクティブでない場合、コマンドライン経由で渡されたオプションは、埋め込まれた {{ic|.cmdline}} をオーバーライドします。}}&lt;br /&gt;
&lt;br /&gt;
=== systemd-boot ===&lt;br /&gt;
&lt;br /&gt;
[[systemd-boot#Unified kernel images|systemd-boot]] は {{ic|&#039;&#039;esp&#039;&#039;/EFI/Linux/}} 内でユニファイドカーネルイメージを検索しますので、それ以上の設定は必要ありません。{{man|7|sd-boot|FILES}} を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== rEFInd ===&lt;br /&gt;
&lt;br /&gt;
[[rEFInd]] は、EFI システム パーティション上のユニファイドカーネルイメージを自動検出し、それらをロードできます。{{ic|refind.conf}} で手動で指定することもできます。デフォルトでは次の場所にあります。&lt;br /&gt;
&lt;br /&gt;
{{hc|&#039;&#039;esp&#039;&#039;/EFI/refind/refind.conf|2=&lt;br /&gt;
menuentry Linux {&lt;br /&gt;
    loader &#039;&#039;esp&#039;&#039;/EFI/Linux/archlinux-linux.efi&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
イメージが ESP のルートにある場合、rEFInd は次のようにその名前のみを必要とします: {{ic|loader archlinux-linux.efi}} この方法で起動すると、{{ic|&#039;&#039;esp&#039;&#039;/EFI/refind_linux.conf}} からのカーネルパラメータは渡されません。&lt;br /&gt;
&lt;br /&gt;
=== GRUB ===&lt;br /&gt;
&lt;br /&gt;
rEFInd と同様に、[[GRUB]] は [[GRUB#ユニファイドカーネルイメージをチェインロード]] で説明されているように EFI UKI をチェーンロードできます。&lt;br /&gt;
&lt;br /&gt;
=== UEFI から直接起動 ===&lt;br /&gt;
&lt;br /&gt;
[[efibootmgr]] を使って &#039;&#039;.efi&#039;&#039; ファイルに UEFI ブートエントリを作成することができます。&lt;br /&gt;
&lt;br /&gt;
 # efibootmgr --create --disk /dev/sd&#039;&#039;X&#039;&#039; --part &#039;&#039;partition_number&#039;&#039; --label &amp;quot;Arch Linux&amp;quot; --loader &#039;\EFI\Linux\arch-linux.efi&#039; --unicode&lt;br /&gt;
&lt;br /&gt;
オプションの説明は {{man|8|efibootmgr}} をご覧ください。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://uapi-group.org/specifications/specs/unified_kernel_image/ Unified kernel image specification]&lt;br /&gt;
* [https://linderud.dev/blog/mkinitcpio-v31-and-uefi-stubs/ mkinitcpio v31 and UEFI stubs]&lt;/div&gt;</summary>
		<author><name>Hkiku482</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%83%A6%E3%83%8B%E3%83%95%E3%82%A1%E3%82%A4%E3%83%89%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8&amp;diff=39723</id>
		<title>ユニファイドカーネルイメージ</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%83%A6%E3%83%8B%E3%83%95%E3%82%A1%E3%82%A4%E3%83%89%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8&amp;diff=39723"/>
		<updated>2025-02-14T15:03:34Z</updated>

		<summary type="html">&lt;p&gt;Hkiku482: /* mkinitpcio */ s/mkinitpcio/mkinitcpio/&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ブートローダー]]&lt;br /&gt;
[[en:Unified kernel image]]&lt;br /&gt;
[[pt:Unified kernel image]]&lt;br /&gt;
[https://uapi-group.org/specifications/specs/unified_kernel_image ユニファイドカーネルイメージ] (UKI) は、単一の実行可能ファイルであり、[[UEFI]] ファームウェアから直接起動するか、ほとんどまたは全く設定を必要とせずにブートローダーによって自動的に取得されます。これは {{man|7|systemd-stub}} のような UEFI ブートスタブプログラム、Linux [[Arch ブートプロセス#カーネル|カーネルイメージ]]、[[Arch ブートプロセス#initramfs|initrd]]、および [https://uapi-group.org/specifications/specs/unified_kernel_image/#uki-components その他のリソース] を単一の UEFI PE ファイルに組み合わせたものです。&lt;br /&gt;
&lt;br /&gt;
このファイルは、したがってこれらのすべての要素を[[Unified Extensible Firmware Interface/セキュアブート# EFI バイナリに署名する|署名]]して [[Secure Boot]] で使用することが容易になります。&lt;br /&gt;
&lt;br /&gt;
{{Note|記事全体で {{ic|&#039;&#039;esp&#039;&#039;}} は [[EFI システムパーティション]] のマウントポイントを表します。}}&lt;br /&gt;
&lt;br /&gt;
== ユニファイドカーネルイメージの準備 ==&lt;br /&gt;
&lt;br /&gt;
=== mkinitcpio ===&lt;br /&gt;
&lt;br /&gt;
==== カーネルコマンドライン ====&lt;br /&gt;
&lt;br /&gt;
[[mkinitcpio]] は、{{ic|/etc/cmdline.d}} ディレクトリ内のコマンドライン ファイルからの[[カーネルパラメータ]]の読み取りをサポートします。Mkinitcpio は、このディレクトリ内の {{ic|.conf}} 拡張子を持つすべてのファイルの内容を連結し、それらを使用してカーネルコマンドラインを生成します。コマンドラインファイル内の &#039;&#039;#&#039;&#039; 文字で始まる行はコメントとして扱われ、mkinitcpio によって無視されます。マイクロコードと initramfs を指す &#039;&#039;エントリを削除&#039;&#039; するように注意してください。&lt;br /&gt;
&lt;br /&gt;
例:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/cmdline.d/root.conf|2=&lt;br /&gt;
root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* ルート ファイルシステムがデフォルト以外の Btrfs サブボリューム上にある場合は、必ず必要なマウントフラグを {{ic|rootflags}} に設定してください。[[Btrfs#ルートとしてサブボリュームをマウントする]] を参照してください。&lt;br /&gt;
* たとえば、システムのサブボリューム ID が {{ic|256}} の場合 (サブボリューム ID は、{{ic|btrfs subvolume list &#039;&#039;btrfs_mountpoint&#039;&#039;}} を使用して確認できます。または、{{ic|/etc/fstab}}) でフラグを見ることができます、カーネルコマンドラインに {{ic|1=rootflags=subvolid=256}} を追加する必要があります。&lt;br /&gt;
* {{ic|rootflags}} は起動時にのみ使用されるため、{{ic|/etc/fstab}} 内のすべてのフラグをコピーする必要はありません。Systemd は fstab を読み取り、再マウントし、ブート後にそこにリストされているフラグを自動的に適用します。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/cmdline.d/security.conf|2=&lt;br /&gt;
# enable apparmor&lt;br /&gt;
lsm=landlock,lockdown,yama,integrity,apparmor,bpf audit=1 audit_backlog_limit=256&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
あるいは、{{ic|/etc/kernel/cmdline}} を使用してカーネルコマンドラインを構成することもできます。&lt;br /&gt;
&lt;br /&gt;
例:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/kernel/cmdline|2=&lt;br /&gt;
root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet bgrt_disable&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* root パーティションが [[systemd# GPT パーティションの自動マウント|systemd によって自動マウントされる]] 場合、{{ic|1=root=}} パラメータは省略できます。&lt;br /&gt;
* {{ic|bgrt_disable}} パラメータは、ACPI テーブルのロード後に OEM ロゴを表示しないように Linux に指示します。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== .preset ファイル ====&lt;br /&gt;
&lt;br /&gt;
次に、{{ic|/etc/mkinitcpio.d/linux.preset}}、または使用しているプリセットを、[[EFI システムパーティション]] の適切なマウントポイントを指定して、以下のように変更します:&lt;br /&gt;
&lt;br /&gt;
* {{ic|1=PRESETS=}} の各項目について、{{ic|1=&#039;&#039;PRESET&#039;&#039;_uki=}} パラメータのコメントを解除する (つまり {{ic|#}} を削除する)、&lt;br /&gt;
* 冗長な {{ic|initramfs-*.img}} ファイルを保存しないように、{{ic|1=&#039;&#039;PRESET&#039;&#039;_image=}} をコメントアウトする、&lt;br /&gt;
* オプションとして、スプラッシュイメージを追加したい各 {{ic|1=&#039;&#039;PRESET&#039;&#039;_options=}} 行に {{ic|--splash}} パラメータを追加またはコメント解除します。&lt;br /&gt;
&lt;br /&gt;
以下は {{Pkg|linux}} カーネルと Arch スプラッシュスクリーンの {{ic|linux.preset}} の例です。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/mkinitcpio.d/linux.preset|2= &lt;br /&gt;
# mkinitcpio preset file for the &#039;linux&#039; package&lt;br /&gt;
&lt;br /&gt;
#ALL_config=&amp;quot;/etc/mkinitcpio.conf&amp;quot;&lt;br /&gt;
ALL_kver=&amp;quot;/boot/vmlinuz-linux&amp;quot;&lt;br /&gt;
&lt;br /&gt;
PRESETS=(&#039;default&#039; &#039;fallback&#039;)&lt;br /&gt;
&lt;br /&gt;
#default_config=&amp;quot;/etc/mkinitcpio.conf&amp;quot;&lt;br /&gt;
#default_image=&amp;quot;/boot/initramfs-linux.img&amp;quot;&lt;br /&gt;
default_uki=&amp;quot;&#039;&#039;esp&#039;&#039;/EFI/Linux/arch-linux.efi&amp;quot;&lt;br /&gt;
default_options=&amp;quot;--splash=/usr/share/systemd/bootctl/splash-arch.bmp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#fallback_config=&amp;quot;/etc/mkinitcpio.conf&amp;quot;&lt;br /&gt;
#fallback_image=&amp;quot;/boot/initramfs-linux-fallback.img&amp;quot;&lt;br /&gt;
fallback_uki=&amp;quot;&#039;&#039;esp&#039;&#039;/EFI/Linux/arch-linux-fallback.efi&amp;quot;&lt;br /&gt;
fallback_options=&amp;quot;-S autodetect&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* 統一されたカーネルイメージからブートしたいだけであれば、[[EFI システムパーティション#典型的なマウントポイント|ESP のマウント]]を {{ic|/efi}} にして、[[ESP]] パーティションに存在する必要があるものだけをマウントすることができます。&lt;br /&gt;
* {{ic|--cmdline /etc/kernel/&#039;&#039;fallback_cmdline&#039;&#039;}} を {{ic|fallback_options}} に追加することで、フォールバックイメージに上記とは異なる [[Unified カーネルイメージ#カーネルコマンドライン|cmdline]] を使用することができます (例えば {{ic|quiet}} を無くす。)&lt;br /&gt;
* カーネルコマンドラインの埋め込みを省略するには、{{ic|--no-cmdline}} を {{ic|1=&#039;&#039;PRESET&#039;&#039;_options=}} に追加してください。カーネルパラメーターはブートローダー経由で渡す必要があります。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* {{ic|&#039;&#039;PRESET&#039;&#039;_uki}} オプションは以前は {{ic|&#039;&#039;PRESET&#039;&#039;_efi_image}} として知られていました。[https://gitlab.archlinux.org/archlinux/mkinitcpio/mkinitcpio/-/issues/134 2022 年 11 月変更], 古いオプションは非推奨ですが、今のところ動作しています。&lt;br /&gt;
* [[Unified Extensible Firmware Interface# UEFI ファームウェアのビット数|IA32 UEFI]] では、{{ic|--uefistub /usr/lib/systemd/boot/efi/linuxia32.efi.stub}} を {{ic|1=&#039;&#039;PRESET&#039;&#039;_options=}} に追加してください。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== pacman フック ====&lt;br /&gt;
&lt;br /&gt;
マイクロコードのアップグレード後に再構築をトリガーするには、[[pacman フック]] が必要です。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/pacman.d/hooks/ucode.hook|2=&lt;br /&gt;
[Trigger]&lt;br /&gt;
Operation=Install&lt;br /&gt;
Operation=Upgrade&lt;br /&gt;
Operation=Remove&lt;br /&gt;
Type=Package&lt;br /&gt;
# Change to appropriate microcode package&lt;br /&gt;
Target=amd-ucode&lt;br /&gt;
# Change the linux part above and in the Exec line if a different kernel is used&lt;br /&gt;
Target=linux&lt;br /&gt;
&lt;br /&gt;
[Action]&lt;br /&gt;
Description=Update Microcode module in initcpio&lt;br /&gt;
Depends=mkinitcpio&lt;br /&gt;
When=PostTransaction&lt;br /&gt;
NeedsTargets&lt;br /&gt;
Exec=/bin/sh -c &#039;while read -r trg; do case $trg in linux) exit 0; esac; done; /usr/bin/mkinitcpio -P&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|mkinitcpio の繰り返し実行を避けるために、このフックを [[NVIDIA#pacman フック|NVIDIA ドライバー]] のフックなど、カーネルパッケージを監視する他のフックとマージすることを検討してください。}}&lt;br /&gt;
&lt;br /&gt;
==== セキュアブート用の UKI への署名 ====&lt;br /&gt;
&lt;br /&gt;
mkinitcpio ポストフック ({{man|8|mkinitcpio|ABOUT POST HOOKS}}) を使用すると、生成された統合カーネルイメージに [[セキュアブート]] 用に署名できます。次のファイルを [[作成]] し、[[ヘルプ:読み方#実行可能属性の付与|実行可能]] にします。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/initcpio/post/uki-sbsign|2=&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
uki=&amp;quot;$3&amp;quot;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;[[ -n &amp;quot;$uki&amp;quot; ]] || exit 0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
keypairs=(&#039;&#039;/path/to/&#039;&#039;db.key &#039;&#039;/path/to/&#039;&#039;db.crt)&lt;br /&gt;
&lt;br /&gt;
for (( i=0; i&amp;lt;${#keypairs[@]}; i+=2 )); do&lt;br /&gt;
    key=&amp;quot;${keypairs[$i]}&amp;quot; cert=&amp;quot;${keypairs[(( i + 1 ))]}&amp;quot;&lt;br /&gt;
    if ! sbverify --cert &amp;quot;$cert&amp;quot; &amp;quot;$uki&amp;quot; &amp;amp;&amp;gt;/dev/null; then&lt;br /&gt;
        sbsign --key &amp;quot;$key&amp;quot; --cert &amp;quot;$cert&amp;quot; --output &amp;quot;$uki&amp;quot; &amp;quot;$uki&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|&#039;&#039;/path/to/&#039;&#039;db.key}} と {{ic|&#039;&#039;/path/to/&#039;&#039;db.crt}} をイメージの署名に使いたい鍵ペアのパスに置き換えてください。&lt;br /&gt;
&lt;br /&gt;
==== UKI の構築 ====&lt;br /&gt;
&lt;br /&gt;
最後に、UKI のディレクトリが存在することを確認し、[[mkinitcpio#イメージ作成とアクティベーション|initramfs を再生成]] します。たとえば、&#039;&#039;linux&#039;&#039; プリセットの場合は次のようになります。&lt;br /&gt;
&lt;br /&gt;
 # mkdir -p &#039;&#039;esp&#039;&#039;/EFI/Linux&lt;br /&gt;
 # mkinitcpio -p linux&lt;br /&gt;
&lt;br /&gt;
必要に応じて、残っている {{ic|initramfs-*.img}} を {{ic|/boot}} または {{ic|/efi}} から削除します。&lt;br /&gt;
&lt;br /&gt;
=== kernel-install ===&lt;br /&gt;
&lt;br /&gt;
[[systemd]] の [[Kernel-install]] スクリプトを使用して、カスタムカーネルとカーネルパッケージ (Pacman を使用してインストール) の両方について、UKI 形式のカーネルを &#039;&#039;esp&#039;&#039; に自動的にインストールできます。 Pacman フックを &#039;&#039;mkinitcpio&#039;&#039; から &#039;&#039;kernel-install&#039;&#039; に切り替える必要があります。&lt;br /&gt;
&lt;br /&gt;
UKI イメージは、&#039;&#039;mkinitcpio&#039;&#039; によって直接生成することも、カーネルイメージと生成されたスタンドアロン initramfs イメージを 1 つのファイルに統合する &#039;&#039;kernel-install&#039;&#039; によって生成することもできます (&#039;&#039;kernel-install&#039;&#039;の &#039;&#039;ukify&#039;&#039; ツールによって) 2024 年 1 月 15 日以降、&#039;&#039;install&#039;&#039; には、{{pkg|systemd-ukify}} が必要です。以下を参照してください) &#039;&#039;mkinitcpio&#039;&#039; は、適切なイメージ ({{ic|1=layout=uki}} および {{ic|1=uki_generator=mkinitcpio}} の UKI イメージ) を生成するために &#039;&#039;kernel-install&#039;&#039; によって呼び出されます。それ以外の場合は、&#039;&#039;ukify&#039;&#039; のスタンドアロンの initramfs イメージ) を生成します。&lt;br /&gt;
&lt;br /&gt;
* kernel-install {{ic|layout}} を {{ic|uki}} に設定します。例えば: {{bc|1=# echo &amp;quot;layout=uki&amp;quot; &amp;gt;&amp;gt; /etc/kernel/install.conf}}&lt;br /&gt;
&lt;br /&gt;
* デフォルトでは、レイアウトが uki に設定されている場合、&#039;&#039;kernel-install&#039;&#039; は独自の &#039;&#039;ukify&#039;&#039; ツールを使用して (ここで {{pkg|systemd-ukify}} をインストールする必要があります。下記を参照) initramfs とカーネルイメージ  mkinitpcio を使用して、uki イメージを直接生成できます。mkinitcpio を使用して uki イメージを生成したい場合は、{{ic|uki_generator}} を {{ic|mkinitpcio}} に設定します。例: {{bc|1=# echo &amp;quot;uki_generator=mkinitcpio&amp;quot; &amp;gt;&amp;gt; /etc/kernel/install.conf}}&lt;br /&gt;
&lt;br /&gt;
:{{Note|2024 年 1 月 15 日以降、{{ic|uki_generator}} でない限り、{{pkg|mkinitcpio}} は [https://gitlab.archlinux.org/archlinux/mkinitcpio/mkinitcpio/-/commit/0df979c34970b19a3e56d9a16d79e32830228448 UKI をビルドしなくなりました]}} {{ic|mkinitcpio}} に直接設定されます。以前は、{{pkg|systemd-ukify}} が明示的にインストールされていない場合、暗黙的に設定されていました。}}&lt;br /&gt;
&lt;br /&gt;
* カーネルを直接インストールする Pacman フック:{{bc|&amp;lt;nowiki&amp;gt;# ln -s /dev/null /etc/pacman.d/hooks/60-mkinitcpio-remove.hook&lt;br /&gt;
# ln -s /dev/null /etc/pacman.d/hooks/90-mkinitcpio-install.hook&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
* &#039;&#039;kernel-install&#039;&#039; の Pacman フックを作成します。{{AUR|pacman-hook-kernel-install}} を使うことができます。&lt;br /&gt;
* 使用しているカーネルパッケージを削除して再インストールします。&lt;br /&gt;
&lt;br /&gt;
=== dracut ===&lt;br /&gt;
&lt;br /&gt;
[[dracut#カーネルコマンドラインオプション|コマンドラインパラメータ]] を、例えば {{ic|/etc/dracut.conf.d/cmdline.conf}} に配置します。&lt;br /&gt;
&lt;br /&gt;
イメージを生成する。&lt;br /&gt;
&lt;br /&gt;
 # dracut -f -q --uefi --uefi-splash-image /usr/share/systemd/bootctl/splash-arch.bmp&lt;br /&gt;
&lt;br /&gt;
こちらも参照 [[dracut#カーネルのアップグレード時に新しい initramfs を生成]]&lt;br /&gt;
&lt;br /&gt;
=== sbctl ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|sbctl}} パッケージを [[インストール]] して下さい。カーネルコマンド ラインを {{ic|/etc/kernel/cmdline}} に保存します。{{ic|--save}} パラメータを指定した {{ic|sbctl bundle}} コマンドを使用してバンドルを作成し、適切なタイミングで Pacman フックによって再生成します。&lt;br /&gt;
&lt;br /&gt;
 # sbctl bundle --save &#039;&#039;esp&#039;&#039;/archlinux.efi&lt;br /&gt;
&lt;br /&gt;
他のカーネルと initramfs イメージ用にさらに EFI バイナリを作成するには、パラメーター {{ic|--kernel-img}} と {{ic|--initramfs}} を指定して上記のコマンドを繰り返します。{{man|8|sbctl|EFI BINARY COMMANDS}} を参照してください。EFI バイナリは、{{ic|sbctl generate-bundles}} を使用していつでも再生成できます。&lt;br /&gt;
&lt;br /&gt;
=== ukify ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|systemd-ukify}} パッケージを [[インストール]] します。&#039;&#039;ukify&#039;&#039; は単独で initramfs を生成できないため、必要な場合は、[[dracut]]、[[mkinitcpio]]、または [[booster]] を使用して生成する必要があります。&lt;br /&gt;
&lt;br /&gt;
最小限の動作例は次のようになります。&lt;br /&gt;
&lt;br /&gt;
 # /usr/lib/systemd/ukify build --linux=&#039;&#039;/boot/vmlinuz-linux&#039;&#039; --initrd=&#039;&#039;/boot/intel-ucode.img&#039;&#039; \&lt;br /&gt;
 --initrd=&#039;&#039;/boot/initramfs-linux.img&#039;&#039; \&lt;br /&gt;
 --cmdline=&amp;quot;&#039;&#039;quiet rw&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note|[[マイクロコード#早期ロード|外部マイクロコード initramfs イメージ]] を使用する場合 ({{ic|/boot/amd-ucode.img}} または {{ic|/boot/intel-ucode.img}}) を使用する必要があります。常にメインの initramfs イメージの前に &#039;&#039;最初に&#039;&#039; 配置します (例: {{ic|/boot/initramfs-linux.img}})}}&lt;br /&gt;
&lt;br /&gt;
次に、結果のファイルを EFI システムパーティションにコピーします。&lt;br /&gt;
&lt;br /&gt;
 # cp &#039;&#039;filename&#039;&#039;.efi &#039;&#039;esp&#039;&#039;/EFI/Linux/&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* 出来上がった EFI 実行ファイルを EFI システムパーティションにコピーするのをスキップするには、{{ic|1=--output=&#039;&#039;esp&#039;&#039;/EFI/Linux/&#039;&#039;filename&#039;&#039;.efi}} コマンドラインオプションを &#039;&#039;ukify&#039;&#039; に使用します。&lt;br /&gt;
* {{ic|--cmdline}} オプションを指定する場合、{{ic|1=--cmdline=@&#039;&#039;/path/to/cmdline&#039;&#039;}} のように {{ic|/etc/kernel/cmdline}} ファイル名の前に {{ic|@}} シンボルを追加することで、カーネルパラメータを読み込むファイル名を指定できます。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
intel ucode および /efi マウント ESP を使用した通常のカーネルイメージの systemd サービスを使用した自動 UKI 構築の例:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ukify.conf|2=&lt;br /&gt;
[UKI]&lt;br /&gt;
Linux=/boot/vmlinuz-linux&lt;br /&gt;
Initrd=/boot/intel-ucode.img /boot/initramfs-linux.img&lt;br /&gt;
Cmdline=@/etc/kernel/cmdline&lt;br /&gt;
OSRelease=@/etc/os-release&lt;br /&gt;
Splash=/usr/share/systemd/bootctl/splash-arch.bmp&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|initramfs ジェネレーターが mkinitcpio などの CPU マイクロコードをデフォルトですでにバンドルしている場合は、{{ic|1=Initrd=/boot/initramfs-linux.img}} で initramfs イメージのみを指定します。}}&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/run_ukify.service|2=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Run systemd ukify&lt;br /&gt;
[Service]&lt;br /&gt;
Type=oneshot&lt;br /&gt;
ExecStart=/usr/lib/systemd/ukify build --config=/etc/ukify.conf --output &#039;&#039;esp&#039;&#039;/EFI/Linux/archlinux-linux.efi&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/run_ukify.path|2=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Run systemd ukify&lt;br /&gt;
[Path]&lt;br /&gt;
PathChanged=/boot/initramfs-linux.img&lt;br /&gt;
PathChanged=/boot/intel-ucode.img&lt;br /&gt;
Unit=run_ukify.service&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
次に、{{ic|run_ukify.path}} を [[有効化]] します。&lt;br /&gt;
&lt;br /&gt;
=== 手動で ===&lt;br /&gt;
&lt;br /&gt;
使用するカーネルコマンドラインをファイルに記述し、{{man|1|objcopy}} を使用してバンドルファイルを作成します。&lt;br /&gt;
&lt;br /&gt;
[[マイクロコード]] の場合は、まず次のようにマイクロコードファイルと initrd を連結します。&lt;br /&gt;
&lt;br /&gt;
 $ cat &#039;&#039;esp&#039;&#039;/&#039;&#039;cpu_manufacturer&#039;&#039;-ucode.img &#039;&#039;esp&#039;&#039;/initramfs-linux.img &amp;gt; /tmp/combined_initrd.img&lt;br /&gt;
&lt;br /&gt;
統合カーネルイメージを構築するときは、{{ic|/tmp/combined_initrd.img}} を initrd として渡します。このファイルは後で削除できます。&lt;br /&gt;
&lt;br /&gt;
{{Note|[[Unified Extensible Firmware Interface#UEFI ファームウェアのビット数|IA32 UEFI]] では、以下のコマンドの {{ic|/usr/lib/systemd/boot/efi/linuxx64.efi.stub}} を {{ic|/usr/lib/systemd/boot/efi/linuxia32.efi.stub}} に置き換えてください。}}&lt;br /&gt;
&lt;br /&gt;
{{bc|1=&lt;br /&gt;
$ align=&amp;quot;$(objdump -p /usr/lib/systemd/boot/efi/linuxx64.efi.stub {{!}} awk &#039;{ if ($1 == &amp;quot;SectionAlignment&amp;quot;){print $2} }&#039;)&amp;quot;&lt;br /&gt;
$ align=$((16#$align))&lt;br /&gt;
$ osrel_offs=&amp;quot;$(objdump -h &amp;quot;/usr/lib/systemd/boot/efi/linuxx64.efi.stub&amp;quot; {{!}} awk &#039;NF==7 {size=strtonum(&amp;quot;0x&amp;quot;$3); offset=strtonum(&amp;quot;0x&amp;quot;$4)} END {print size + offset}&#039;)&amp;quot;&lt;br /&gt;
$ osrel_offs=$((osrel_offs + &amp;quot;$align&amp;quot; - osrel_offs % &amp;quot;$align&amp;quot;))&lt;br /&gt;
$ cmdline_offs=$((osrel_offs + $(stat -Lc%s &amp;quot;/usr/lib/os-release&amp;quot;)))&lt;br /&gt;
$ cmdline_offs=$((cmdline_offs + &amp;quot;$align&amp;quot; - cmdline_offs % &amp;quot;$align&amp;quot;))&lt;br /&gt;
$ splash_offs=$((cmdline_offs + $(stat -Lc%s &amp;quot;/etc/kernel/cmdline&amp;quot;)))&lt;br /&gt;
$ splash_offs=$((splash_offs + &amp;quot;$align&amp;quot; - splash_offs % &amp;quot;$align&amp;quot;))&lt;br /&gt;
$ initrd_offs=$((splash_offs + $(stat -Lc%s &amp;quot;/usr/share/systemd/bootctl/splash-arch.bmp&amp;quot;)))&lt;br /&gt;
$ initrd_offs=$((initrd_offs + &amp;quot;$align&amp;quot; - initrd_offs % &amp;quot;$align&amp;quot;))&lt;br /&gt;
$ linux_offs=$((initrd_offs + $(stat -Lc%s &amp;quot;&#039;&#039;initrd-file&#039;&#039;&amp;quot;)))&lt;br /&gt;
$ linux_offs=$((linux_offs + &amp;quot;$align&amp;quot; - linux_offs % &amp;quot;$align&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
$ objcopy \&lt;br /&gt;
    --add-section .osrel=&amp;quot;/usr/lib/os-release&amp;quot; --change-section-vma .osrel=$(printf 0x%x $osrel_offs) \&lt;br /&gt;
    --add-section .cmdline=&amp;quot;/etc/kernel/cmdline&amp;quot; \&lt;br /&gt;
    --change-section-vma .cmdline=$(printf 0x%x $cmdline_offs) \&lt;br /&gt;
    --add-section .splash=&amp;quot;/usr/share/systemd/bootctl/splash-arch.bmp&amp;quot; \&lt;br /&gt;
    --change-section-vma .splash=$(printf 0x%x $splash_offs) \&lt;br /&gt;
    --add-section .initrd=&amp;quot;&#039;&#039;initrd-file&#039;&#039;&amp;quot; \&lt;br /&gt;
    --change-section-vma .initrd=$(printf 0x%x $initrd_offs) \&lt;br /&gt;
    --add-section .linux=&amp;quot;&#039;&#039;vmlinuz-file&#039;&#039;&amp;quot; \&lt;br /&gt;
    --change-section-vma .linux=$(printf 0x%x $linux_offs) \&lt;br /&gt;
    &amp;quot;/usr/lib/systemd/boot/efi/linuxx64.efi.stub&amp;quot; &amp;quot;&#039;&#039;linux&#039;&#039;.efi&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
注意すべき点がいくつかあります:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/systemd/systemd/commit/0fa2cac4f0cdefaf1addd7f1fe0fd8113db9360b#commitcomment-76747223] で推奨されているように、オフセットは動的に計算されるので、セクションが重なることはありません。&lt;br /&gt;
* セクションは、PE スタブの {{ic|SectionAlignment}} フィールドが示す値 (通常は 0x1000) にアラインメントされます。&lt;br /&gt;
* カーネルイメージは、[https://github.com/systemd/systemd/commit/0fa2cac4f0cdefaf1addd7f1fe0fd8113db9360b#commitcomment-84868898] で述べられているように、インプレース解凍で後続のセクションが上書きされるのを防ぐために、最後のセクションにある必要があります。&lt;br /&gt;
&lt;br /&gt;
イメージを作成したら、それを EFI システムパーティションにコピーします。&lt;br /&gt;
&lt;br /&gt;
 # cp &#039;&#039;linux&#039;&#039;.efi &#039;&#039;esp&#039;&#039;/EFI/Linux/&lt;br /&gt;
&lt;br /&gt;
== 起動方法 ==&lt;br /&gt;
&lt;br /&gt;
{{Note|[[セキュアブート]] がアクティブな場合、{{ic|.cmdline}} が埋め込まれた統合カーネルイメージは、(ブートエントリを使用するか対話的に) 渡されたすべてのコマンドラインオプションを無視します。セキュアブートがアクティブでない場合、コマンドライン経由で渡されたオプションは、埋め込まれた {{ic|.cmdline}} をオーバーライドします。}}&lt;br /&gt;
&lt;br /&gt;
=== systemd-boot ===&lt;br /&gt;
&lt;br /&gt;
[[systemd-boot#Unified kernel images|systemd-boot]] は {{ic|&#039;&#039;esp&#039;&#039;/EFI/Linux/}} 内でユニファイドカーネルイメージを検索しますので、それ以上の設定は必要ありません。{{man|7|sd-boot|FILES}} を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== rEFInd ===&lt;br /&gt;
&lt;br /&gt;
[[rEFInd]] は、EFI システム パーティション上のユニファイドカーネルイメージを自動検出し、それらをロードできます。{{ic|refind.conf}} で手動で指定することもできます。デフォルトでは次の場所にあります。&lt;br /&gt;
&lt;br /&gt;
{{hc|&#039;&#039;esp&#039;&#039;/EFI/refind/refind.conf|2=&lt;br /&gt;
menuentry Linux {&lt;br /&gt;
    loader &#039;&#039;esp&#039;&#039;/EFI/Linux/archlinux-linux.efi&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
イメージが ESP のルートにある場合、rEFInd は次のようにその名前のみを必要とします: {{ic|loader archlinux-linux.efi}} この方法で起動すると、{{ic|&#039;&#039;esp&#039;&#039;/EFI/refind_linux.conf}} からのカーネルパラメータは渡されません。&lt;br /&gt;
&lt;br /&gt;
=== GRUB ===&lt;br /&gt;
&lt;br /&gt;
rEFInd と同様に、[[GRUB]] は [[GRUB#ユニファイドカーネルイメージをチェインロード]] で説明されているように EFI UKI をチェーンロードできます。&lt;br /&gt;
&lt;br /&gt;
=== UEFI から直接起動 ===&lt;br /&gt;
&lt;br /&gt;
[[efibootmgr]] を使って &#039;&#039;.efi&#039;&#039; ファイルに UEFI ブートエントリを作成することができます。&lt;br /&gt;
&lt;br /&gt;
 # efibootmgr --create --disk /dev/sd&#039;&#039;X&#039;&#039; --part &#039;&#039;partition_number&#039;&#039; --label &amp;quot;Arch Linux&amp;quot; --loader &#039;\EFI\Linux\arch-linux.efi&#039; --unicode&lt;br /&gt;
&lt;br /&gt;
オプションの説明は {{man|8|efibootmgr}} をご覧ください。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://uapi-group.org/specifications/specs/unified_kernel_image/ Unified kernel image specification]&lt;br /&gt;
* [https://linderud.dev/blog/mkinitcpio-v31-and-uefi-stubs/ mkinitcpio v31 and UEFI stubs]&lt;/div&gt;</summary>
		<author><name>Hkiku482</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=LightDM&amp;diff=39556</id>
		<title>LightDM</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=LightDM&amp;diff=39556"/>
		<updated>2025-01-25T18:50:09Z</updated>

		<summary type="html">&lt;p&gt;Hkiku482: /* トラブルシューティング */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ディスプレイマネージャ]]&lt;br /&gt;
[[Category:カノニカル]]&lt;br /&gt;
[[de:Login-Manager#LightDM]]&lt;br /&gt;
[[en:LightDM]]&lt;br /&gt;
[[ru:LightDM]]&lt;br /&gt;
[[zh-hans:LightDM]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|ディスプレイマネージャ}}&lt;br /&gt;
{{Related|GDM}}&lt;br /&gt;
{{Related|LXDM}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[https://github.com/canonical/lightdm LightDM] はクロスデスクトップの[[ディスプレイマネージャ]]です。主な特徴は以下の通り:&lt;br /&gt;
&lt;br /&gt;
* クロスデスクトップ - 様々なデスクトップ技術をサポート。&lt;br /&gt;
* 様々なディスプレイサーバーに対応 (X、Mir、Wayland ...)。&lt;br /&gt;
* 軽量 - メモリの使用量が少なくて高速に動作。&lt;br /&gt;
* ゲストセッションをサポート。&lt;br /&gt;
* リモートログインをサポート (着信 - [[XDMCP]]、[[VNC]]、発信 - XDMCP、[[PAM]])。&lt;br /&gt;
* 充実したテストスイート。&lt;br /&gt;
* 軽量なコードベース。&lt;br /&gt;
&lt;br /&gt;
LightDM の設計に関する詳細は [https://www.freedesktop.org/wiki/Software/LightDM/Design ここ] から見れます。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{Pkg|lightdm}} パッケージを[[インストール]]してください。開発版は {{AUR|lightdm-git}} でインストールできます。&lt;br /&gt;
&lt;br /&gt;
=== Greeter ===&lt;br /&gt;
&lt;br /&gt;
Greeter も[[インストール]]する必要があるでしょう。Greeter はユーザーにログイン情報の入力を求める GUI であり、セッションの選択なども行います。Greeter 無しで LightDM を使うことも可能ですが、自動ログインが設定されている場合に限ります。Greeter を使用する場合は、{{pkg|xorg-server}} をインストールし、さらに以下の greeter パッケージのどれかをインストールする必要があります。&lt;br /&gt;
&lt;br /&gt;
GTK ベースの greeter:&lt;br /&gt;
&lt;br /&gt;
* {{App|LightDM GTK Greeter|LightDM のための GTK greeter。これは&#039;&#039;&#039;デフォルトの&#039;&#039;&#039; greeter です。他の greeter が設定されていない場合、LightDM はこの greeter を使おうとします。|https://github.com/Xubuntu/lightdm-gtk-greeter|{{Pkg|lightdm-gtk-greeter}}}}&lt;br /&gt;
* {{App|lightdm-pantheon-greeter|Elementary OS プロジェクトの greeter。|https://github.com/elementary/greeter|{{Pkg|lightdm-pantheon-greeter}}}}&lt;br /&gt;
* {{App|slick-greeter|{{Pkg|lightdm-gtk-greeter}} よりも見た目に重点を置いた GTK ベースの greeter。元は Unity greeter からフォークされたもので、Linux Mint ではデフォルトです。|https://github.com/linuxmint/slick-greeter|{{Pkg|lightdm-slick-greeter}}}}&lt;br /&gt;
* {{App|Web Greeter for LightDM|テーマに Webkit2 を使用する greeter。&#039;&#039;&#039;このプロジェクトの開発は2019年5月22日以降停止しています。&#039;&#039;&#039;|https://github.com/antergos/web-greeter|{{Pkg|lightdm-webkit2-greeter}}}}&lt;br /&gt;
* {{App|Mini-Greeter|最小の、カスタマイズ可能な、シングルユーザーの GTK3 greeter。|https://github.com/prikhi/lightdm-mini-greeter|{{AUR|lightdm-mini-greeter}}}}&lt;br /&gt;
* {{App|Nody Greeter|ウェブの技術で素晴らしいテーマを作成できる LightDM greeter。Electron.js と NodeGTK、そして Node.js で作成されています。|https://github.com/JezerM/nody-greeter|{{AUR|nody-greeter}}}}&lt;br /&gt;
&lt;br /&gt;
Qt ベースの greeter:&lt;br /&gt;
&lt;br /&gt;
* {{App|Web Greeter|テーマに PyQtWebEngine を使用している、モダンで美しい greeter。{{Pkg|lightdm-webkit2-greeter}} の後継です。|https://github.com/JezerM/web-greeter|{{AUR|web-greeter}}}}&lt;br /&gt;
* {{App|LightDM KDE Greeter|KDE による LightDM greeter。|https://invent.kde.org/plasma/lightdm-kde-greeter|{{AUR|lightdm-kde-greeter}}}}&lt;br /&gt;
&lt;br /&gt;
他の greeter:&lt;br /&gt;
&lt;br /&gt;
* {{App|lightdm-deepin-greeter|[[Deepin]] プロジェクトの greeter。|https://github.com/linuxdeepin/dde-session-shell|{{Pkg|deepin-session-shell}}}}&lt;br /&gt;
* {{App|LightDM Elephant Greeter|小さくシンプルな greeter。デフォルトでは {{Pkg|cage}} Wayland コンポジタ内で動作します。|https://github.com/max-moser/lightdm-elephant-greeter|{{AUR|lightdm-elephant-greeter-git}}}}&lt;br /&gt;
&lt;br /&gt;
{{Pkg|lightdm-webkit2-greeter}} 用のテーマ:&lt;br /&gt;
&lt;br /&gt;
* {{App|Litarvan&#039;s LightDM WebKit2 theme|モダンで機能が豊富なテーマ。|https://github.com/Litarvan/lightdm-webkit-theme-litarvan|{{Pkg|lightdm-webkit-theme-litarvan}}}}&lt;br /&gt;
* {{App|Aether|洗練された、扱いやすい Arch Linux テーマのログインスクリーン。|https://github.com/NoiSek/Aether|{{AUR|lightdm-webkit-theme-aether}}}}&lt;br /&gt;
&lt;br /&gt;
{{AUR|web-greeter}} と {{AUR|nody-greeter}} 用のテーマ:&lt;br /&gt;
&lt;br /&gt;
* {{App|Shikai|美しく、カスタマイズ可能なテーマ。|https://github.com/TheWisker/Shikai|{{AUR|shikai-theme}}}}&lt;br /&gt;
&lt;br /&gt;
LightDM の設定ファイルの {{ic|[Seat:*]}} セクションを変更することでデフォルトの greeter を設定することができます。例えば:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm.conf|2=&lt;br /&gt;
[Seat:*]&lt;br /&gt;
...&lt;br /&gt;
greeter-session=lightdm-&#039;&#039;yourgreeter&#039;&#039;-greeter&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|{{Pkg|lightdm-pantheon-greeter}} の設定ファイルは {{ic|io.elementary.greeter.conf}} です。{{ic|lightdm-pantheon-greeter.conf}} ではありません。}}&lt;br /&gt;
&lt;br /&gt;
どの greeter が利用できるか確認できる方法としては、{{ic|/usr/share/xgreeters}} ディレクトリ内のファイルをリストアップするというものがあります。それぞれの &#039;&#039;.desktop&#039;&#039; ファイルは1つの利用可能な greeter を表します。以下の例では、{{ic|lightdm-gtk-greeter}} greeter と {{ic|lightdm-webkit2-greeter}} greeter が利用可能です:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ ls -1 /usr/share/xgreeters/|&lt;br /&gt;
lightdm-gtk-greeter.desktop&lt;br /&gt;
lightdm-webkit2-greeter.desktop&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== LightDM を有効にする ==&lt;br /&gt;
&lt;br /&gt;
LightDM をブート時に起動するには {{ic|lightdm.service}} を[[有効化]]してください。[[ディスプレイマネージャ#ディスプレイマネージャをロードする]] も参照。&lt;br /&gt;
&lt;br /&gt;
== コマンドラインツール ==&lt;br /&gt;
&lt;br /&gt;
LightDM はコマンドラインツール {{ic|dm-tool}} を提供しています。これを使うことで現在のシートのロック、セッションの切り替えなどができます。&#039;最小主義の&#039;ウィンドウマネージャを使っている場合やテストに便利です。利用できるコマンドを表示するには、次を実行してください:&lt;br /&gt;
&lt;br /&gt;
 $ dm-tool --help&lt;br /&gt;
&lt;br /&gt;
=== ユーザーの切り替え ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|1=&#039;&#039;dm-tool&#039;&#039; は、({{ic|dm-tool lock}} や {{ic|dm-tool switch-to-greeter}} を実行することで) 簡単にバイパスすることができ、[[#light-locker を使って画面をロック|light-locker]] か他の [[アプリケーション一覧/セキュリティ#スクリーンロック|loginctl 互換のスクリーンロッカー]]が無いとセッションをロックしません。[[XScreenSaver#ロック画面からユーザーを切り替える]] を参照。}}&lt;br /&gt;
&lt;br /&gt;
LightDM の &#039;&#039;dm-tool&#039;&#039; コマンドを使って別々の tty に複数のユーザーをログインさせることができます。以下のコマンドは現在のセッションをロックするシグナルを送信して LightDM の greeter への切り替えを行って、新しいユーザーがログインできるようにします:&lt;br /&gt;
&lt;br /&gt;
 $ dm-tool switch-to-greeter&lt;br /&gt;
&lt;br /&gt;
== テスト ==&lt;br /&gt;
&lt;br /&gt;
まず、{{Pkg|xorg-server-xephyr}} を[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
そして、LightDM を X アプリケーションとして実行してください:&lt;br /&gt;
&lt;br /&gt;
 $ lightdm --test-mode --debug&lt;br /&gt;
&lt;br /&gt;
== 任意の設定と調整 ==&lt;br /&gt;
&lt;br /&gt;
LightDM は、設定ファイル {{ic|/etc/lightdm/lightdm.conf}} を編集することで設定することができます。&lt;br /&gt;
&lt;br /&gt;
また、一部の greeter には独自の設定ファイルが存在しています。例えば:&lt;br /&gt;
&lt;br /&gt;
{{Pkg|lightdm-gtk-greeter}}: {{ic|/etc/lightdm/lightdm-gtk-greeter.conf}} (あるいは、{{Pkg|lightdm-gtk-greeter-settings}} GUI を使用することもできます)。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|lightdm-webkit2-greeter}}: {{ic|/etc/lightdm/lightdm-webkit2-greeter.conf}}&lt;br /&gt;
&lt;br /&gt;
=== X セッションラッパー ===&lt;br /&gt;
&lt;br /&gt;
[[xinit]] から移行したユーザは、セッションがシェルから起動しないことに気づくでしょう。これは、シェルはセッションを起動する (そして、セッションはシェルの環境変数を継承する) のに対し、LightDM はセッションを起動するがシェルを source しないことが原因です。LightDM はラッパースクリプトを実行することでセッションを起動し、最後にグラフィカル環境を起動します。デフォルトでは、{{ic|/etc/lightdm/Xsession}} が実行されます。&lt;br /&gt;
&lt;br /&gt;
==== 環境変数 ====&lt;br /&gt;
&lt;br /&gt;
スクリプトは {{ic|/etc/profile}}、{{ic|~/.profile}}、{{ic|/etc/xprofile}}、そして {{ic|~/.xprofile}} をこの順番で読み込みます。これらのファイルを source しないシェルを使用している場合は、ファイルを読み込む {{ic|~/.xprofile}} を作成してもよいです。以下の例では、[[zsh]] がログインシェルです:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.xprofile|2=&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&amp;lt;nowiki&amp;gt;[ -f ~/.config/zsh/.zshenv ] &amp;amp;&amp;amp; . ~/.config/zsh/.zshenv&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
セッションにおいて重要であるシェル変数 (GTK や QT のテーマ、GNUPG の場所、設定のオーバーライドなど) を定義している場合は、こうすることでログインシェルから起動せずにグラフィカル環境が環境変数にアクセスすることができるようになります。&lt;br /&gt;
&lt;br /&gt;
==== キーマップ ====&lt;br /&gt;
&lt;br /&gt;
スクリプトは {{ic|/etc/X11/Xkbmap}} と {{ic|~/.Xkbmap}} で定義されている引数を使って [[Xkbmap]] を実行します。これらのファイルが存在しない場合、スクリプトは {{ic|/etc/X11/Xmodmap}} と {{ic|~/.Xmodmap}} で定義されている引数を使って [[xmodmap]] を実行します。xkbmap を使用する場合、上記のファイルは cat を使ってパースされます。例:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.Xmodmap|2=&lt;br /&gt;
-model pc105 -layout us,us,tr -variant ,dvorak,f -option grp:caps_toggle&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
それら以外の場合、セッションは X11 のシステムのデフォルトのキーマップを継承します。このキーマップは、xorg の設定ファイルを手動で編集するか、{{ic|localectl set-x11-keymap}} を使用することで定義することができます。[[Xorg/キーボード設定#キーボードレイアウトの設定]] を参照。&lt;br /&gt;
&lt;br /&gt;
==== lightdm-gtk-greeter で複数のキーボード配列 ====&lt;br /&gt;
&lt;br /&gt;
事前定義済みのキーボード配列の中から配列を切り替えられるようにするには、ドロップダウンメニューを有効化し、配列を設定してください。{{Pkg|lightdm-gtk-greeter-settings}} GUI を使用するか、設定ファイルを直接編集してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm-gtk-greeter.conf|2=&lt;br /&gt;
[greeter]&lt;br /&gt;
indicators = ~host;~spacer;~clock;~spacer;~layout;~language;~session;~a11y;~power&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
複数の配列を設定するには [[Xorg/キーボード設定#localectl を使う|localectl]] を使用してください。例えば、de とその &amp;quot;バリアント&amp;quot; である neo を設定し、後者をプライマリとするには:&lt;br /&gt;
&lt;br /&gt;
 # localectl --no-convert set-x11-keymap de,de pc105 neo,&lt;br /&gt;
&lt;br /&gt;
末尾のコンマは2つめの de の空白のバリアントを意味していることに注意してください。&lt;br /&gt;
&lt;br /&gt;
=== 背景画像・色を変更する ===&lt;br /&gt;
&lt;br /&gt;
背景には16進数のカラーコードか画像を設定することができます。一部の greeter は、ログイン画面による背景選択、ランダムな背景などのよりロバストな背景オプションを提供しています。&lt;br /&gt;
&lt;br /&gt;
==== GTK greeter ====&lt;br /&gt;
&lt;br /&gt;
{{Pkg|lightdm-gtk-greeter-settings}} GUI を使って設定することができます。&lt;br /&gt;
&lt;br /&gt;
Greeter 画面の壁紙をカスタマイズしたい場合は、{{ic|/etc/lightdm/lightdm-gtk-greeter.conf}} を編集して {{ic|[greeter]}} セクション内で {{ic|background}} 変数を定義する必要があります。例:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm-gtk-greeter.conf|2=&lt;br /&gt;
[greeter]&lt;br /&gt;
background=/usr/share/pixmaps/black_and_white_photography-wallpaper-1920x1080.jpg&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|LightDM ユーザーが画像ファイルにアクセスできるようにするために、{{ic|/usr/share/pixmaps}} に PNG や JPG ファイルを配置することが推奨されています。}}&lt;br /&gt;
&lt;br /&gt;
GTK3 テーマは {{ic|[greeter]}} セクション内の {{ic|theme-name}} 変数で指定することができます。アイコンとカーソルのテーマも同じように設定できます。例:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm-gtk-greeter.conf|2=&lt;br /&gt;
[greeter]&lt;br /&gt;
theme-name = Tela&lt;br /&gt;
icon-theme-name = Tela&lt;br /&gt;
cursor-theme-name = Tela&lt;br /&gt;
cursor-theme-size = 32&lt;br /&gt;
font-name = Cantarell 20&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Webkit2 greeter ====&lt;br /&gt;
&lt;br /&gt;
{{Pkg|lightdm-webkit2-greeter}} では、背景画像をログイン画面で直接選択することができます。また、[https://github.com/artur9010/lightdm-webkit-material Material テーマ]を使用する場合は、起動するたびにランダムな画像を表示するオプションも提供されています。デフォルトでは、画像は {{ic|/usr/share/backgrounds}} から読み込まれます。{{ic|lightdm-webkit2-greeter.conf}} を編集することで背景画像を直接変更することができます。例えば:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm-webkit2-greeter.conf|2=&lt;br /&gt;
[branding]&lt;br /&gt;
background_images = /usr/share/backgrounds&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|背景画像のディレクトリは LightDM ユーザによってアクセス可能でなければなりません。よって、画像は {{ic|/home}} 内に配置するべきではありません。}}&lt;br /&gt;
&lt;br /&gt;
==== Slick Greeter ====&lt;br /&gt;
&lt;br /&gt;
{{AUR|lightdm-settings}} GUI を使用してください。&lt;br /&gt;
&lt;br /&gt;
=== アバターを変更する ===&lt;br /&gt;
&lt;br /&gt;
まず、{{Pkg|accountsservice}} パッケージが[[インストール]]されていることを確認し、その後、以下のようにセットアップしてください。{{ic|&#039;&#039;username&#039;&#039;}} の部分はユーザーのログイン名に置き換えてください。&lt;br /&gt;
&lt;br /&gt;
* 96x96 の PNG 画像ファイルを使って {{ic|/var/lib/AccountsService/icons/&#039;&#039;username&#039;&#039;.png}} ファイルを作成してください。その他の画像フォーマットも利用可能です (例えば JPEG)。&lt;br /&gt;
* あるいは、デフォルトの設定がすでにユーザーのホームディレクトリのパスを使用している場合は、画像ファイルを {{ic|/home/&#039;&#039;username&#039;&#039;/.face}} として配置し、次の手順を飛ばしてください。&lt;br /&gt;
* アカウントの設定ファイル {{ic|/var/lib/AccountsService/users/&#039;&#039;username&#039;&#039;}} を編集あるいは作成し、以下の設定を追加してください:&lt;br /&gt;
&lt;br /&gt;
 [User]&lt;br /&gt;
 Icon=/var/lib/AccountsService/icons/&#039;&#039;username&#039;&#039;.png&lt;br /&gt;
&lt;br /&gt;
ここでのファイル名は、1番目の手順で作成したアイコンファイルでなければなりません。なので、必要に応じてファイル名の拡張子を変更してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|作成したファイルのパーミッションは全て 644 に設定してください。[[chmod]] を使って、パーミッションを設定してください。}}&lt;br /&gt;
&lt;br /&gt;
=== Arch の 64x64 アイコンを使う ===&lt;br /&gt;
&lt;br /&gt;
{{AUR|archlinux-artwork}} パッケージには素晴らしいサンプルが含まれており、{{ic|/usr/share/archlinux/icons}} にインストールされます。以下のように {{ic|/usr/share/icons/hicolor/64x64/devices}} にコピーすることが可能です:&lt;br /&gt;
&lt;br /&gt;
 # find /usr/share/archlinux/icons -name &amp;quot;*64*&amp;quot; -exec cp {} /usr/share/icons/hicolor/64x64/devices \;&lt;br /&gt;
&lt;br /&gt;
コピーした後は、{{AUR|archlinux-artwork}} パッケージは削除してかまいません。&lt;br /&gt;
&lt;br /&gt;
=== 自動ログインを有効にする ===&lt;br /&gt;
&lt;br /&gt;
LightDM の設定ファイルを編集して、以下の設定をアンコメントし、正しく設定してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm.conf|2=&lt;br /&gt;
[Seat:*]&lt;br /&gt;
autologin-user=&#039;&#039;username&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
パスワードを入力しないで自動的にログインできるようにするには、ユーザを {{ic|autologin}} グループに追加する必要があります:&lt;br /&gt;
&lt;br /&gt;
 # groupadd -r autologin&lt;br /&gt;
 # gpasswd -a &#039;&#039;username&#039;&#039; autologin&lt;br /&gt;
&lt;br /&gt;
LightDM は {{ic|~/.dmrc}} に指定されたセッションを使ってログインします。このファイルの設定をオーバーライドするには、{{ic|lightdm.conf}} で {{ic|autologin-session}} を指定してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm.conf|2=&lt;br /&gt;
[Seat:*]&lt;br /&gt;
autologin-user=&#039;&#039;username&#039;&#039;&lt;br /&gt;
autologin-session=&#039;&#039;session&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
有効なセッション名のリストは、X セッションは {{ic|/usr/share/xsessions/*.desktop}} を、Wayland セッションは {{ic|/usr/share/wayland-sessions/*.desktop}} を一覧表示すればわかります。&lt;br /&gt;
&lt;br /&gt;
{{Note|GNOME ユーザー (と gnome-keyring ユーザー) は、自動でロックが解除されるように、キーリングに空のパスワードを設定する必要があります。}}&lt;br /&gt;
&lt;br /&gt;
=== インタラクティブなパスワードレスログインを有効化する ===&lt;br /&gt;
&lt;br /&gt;
LightDM は [[PAM]] を経由します。なので、PAM の lightdm 設定ファイルを設定する必要があります:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/pam.d/lightdm|2=&lt;br /&gt;
#%PAM-1.0&lt;br /&gt;
&#039;&#039;&#039;auth        sufficient  pam_succeed_if.so user ingroup nopasswdlogin&#039;&#039;&#039;&lt;br /&gt;
auth        include     system-login&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
次に、パスワードを入力せずにインタラクティブにログインできるようにするために、あなたのユーザを {{ic|nopasswdlogin}} グループと {{ic|autologin}} グループに追加する必要があります:&lt;br /&gt;
&lt;br /&gt;
 # groupadd -r nopasswdlogin&lt;br /&gt;
 # groupadd -r autologin&lt;br /&gt;
 # gpasswd -a &#039;&#039;username&#039;&#039; nopasswdlogin&lt;br /&gt;
 # gpasswd -a &#039;&#039;username&#039;&#039; autologin&lt;br /&gt;
&lt;br /&gt;
{{Note|GNOME ユーザや gnome-keyring ユーザは、前のセクションにある自動ログインの有効化に関する指示に従う必要がある場合があります。}}&lt;br /&gt;
&lt;br /&gt;
自動ログインし、さらにパスワード無しで再ログインできるユーザアカウントを作成するには、両方のグループに含まれるユーザを作成してください。例えば:&lt;br /&gt;
&lt;br /&gt;
 # useradd -mG autologin,nopasswdlogin &#039;&#039;username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== ゲストセッションを有効化する ===&lt;br /&gt;
&lt;br /&gt;
{{Note|この機能を有効化すると、ゲストユーザはパスワード無しでシステムにアクセスできるようになります。}} &lt;br /&gt;
&lt;br /&gt;
(システムの設定を変えずに) LightDM でゲストセッションを有効化するには、少なくとも以下の2つが必要です:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;guest-account-script&#039;&#039;&#039;: {{ic|guest-account}} をデフォルトとし、以下の2つのコマンドを受け入れるスクリプト:&lt;br /&gt;
#* &#039;&#039;&#039;add&#039;&#039;&#039; (一時的なゲストシステムアカウントを作成し、作成されたアカウントのユーザ名を返します)&lt;br /&gt;
#* &#039;&#039;&#039;remove&#039;&#039;&#039; &#039;&#039;アカウント名&#039;&#039; (対応するアカウントを削除します)&lt;br /&gt;
# 作成されたゲストアカウントを追加する [[#自動ログインを有効にする|&#039;&#039;&#039;autologin&#039;&#039;&#039;]] グループ (参照: {{ic|/etc/pam.d/lightdm-autologin}})。&lt;br /&gt;
&lt;br /&gt;
LightDM でゲストセッションを有効化する AUR パッケージが2つあります:&lt;br /&gt;
&lt;br /&gt;
* {{aur|lightdm-guest}}: 上流の (ほぼ変更されていない) guest-session スクリプトと {{pkg|lightdm}} 自体を提供します。&lt;br /&gt;
* {{aur|lightdm-guest-account}}: スクリプトの最小バージョンのみを提供します。&lt;br /&gt;
&lt;br /&gt;
=== システムユーザーとサービスユーザーを隠す ===&lt;br /&gt;
&lt;br /&gt;
システムユーザーをログイン画面で表示されないようにするには、任意の依存パッケージ {{Pkg|accountsservice}} をインストールするか、ユーザーの名前を {{ic|/etc/lightdm/users.conf}} の {{ic|hidden-users}} に追加してください。前者の方法ではユーザーを追加・削除したときにリストを更新する必要はありません。&lt;br /&gt;
&lt;br /&gt;
=== SLiM からの移行 ===&lt;br /&gt;
&lt;br /&gt;
[[xinitrc]] の中身を [[xprofile]] に移動し、[[ウィンドウマネージャ]]や[[デスクトップ環境]]を起動するコマンドを削除してください。&lt;br /&gt;
&lt;br /&gt;
=== ~/.xinitrc を使ってログイン ===&lt;br /&gt;
&lt;br /&gt;
[[ディスプレイマネージャ#セッションとして ~/.xinitrc を実行]] を見てください。&lt;br /&gt;
&lt;br /&gt;
=== NumLock をデフォルトでオンにする ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|numlockx}} パッケージをインストールし、{{ic|/etc/lightdm/lightdm.conf}} を編集してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm.conf|2=&lt;br /&gt;
[Seat:*]&lt;br /&gt;
greeter-setup-script=/usr/bin/numlockx on&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== デフォルトセッション ===&lt;br /&gt;
&lt;br /&gt;
他の DM と同じように、Lightdm は最後に選択された xsession を {{ic|~/.dmrc}} に保存します。詳しくは [[ディスプレイマネージャ#セッション設定]] を見てください。&lt;br /&gt;
&lt;br /&gt;
=== ログインウィンドウの位置を変更 ===&lt;br /&gt;
&lt;br /&gt;
==== GTK greeter ====&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/lightdm/lightdm-gtk-greeter.conf}} を編集して {{ic|position}} 変数に値を入力する必要があります。{{ic|x}} 値と {{ic|y}} 値を入れることができ、絶対座標 (ピクセル) と相対座標 (パーセント) で指定できます。また、ウィンドウのアンカーの位置 ({{ic|start}}、{{ic|center}}、{{ic|end}}) を指定することもできます。値はカンマで区切ります。&lt;br /&gt;
&lt;br /&gt;
例:&lt;br /&gt;
&lt;br /&gt;
 position=200,start 50%,center&lt;br /&gt;
&lt;br /&gt;
=== VNC サーバー ===&lt;br /&gt;
&lt;br /&gt;
Lightdm を使って VNC 経由で接続することも可能です。サーバ側に {{pkg|tigervnc}} をインストールしてください。任意で、クライアント側の PC にも VNC クライアントとしてインストールしてください。&lt;br /&gt;
&lt;br /&gt;
サーバ側で root として認証パスワードをセットアップしてください:&lt;br /&gt;
&lt;br /&gt;
 # vncpasswd /etc/vncpasswd&lt;br /&gt;
&lt;br /&gt;
そして、以下のように LightDM の設定ファイルを編集してください。{{ic|listen-address}} の設定で localhost からの接続のみをリッスンするように VNC を設定していることに注意してください。これは、[[TigerVNC#クライアント側|SSH とポートフォワーディング]]経由での接続のみを許可するためです。SSH クライアントでは、トンネルの接続先として {{ic|localhost:5900}} のみを使うようにしてください。デュアルスタックのネットワーク接続では {{ic|127.0.0.1:5900}} や {{ic|::1:5900}} は信頼性がありません。セキュアでない接続も許可するようにしたい場合、この設定を無効化してください。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm.conf|2=&lt;br /&gt;
[VNCServer]&lt;br /&gt;
enabled=true&lt;br /&gt;
command=Xvnc -rfbauth /etc/vncpasswd&lt;br /&gt;
port=5900&lt;br /&gt;
listen-address=localhost&lt;br /&gt;
width=1024&lt;br /&gt;
height=768&lt;br /&gt;
depth=24&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
設定したら、[[TigerVNC#クライアント側]] に書かれているように SSH トンネルを開いてローカルホストに接続してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|VNC 接続を開いたときに画面に何も表示されない場合、別の LightDM greeter を試してみてください。}}&lt;br /&gt;
&lt;br /&gt;
=== light-locker を使って画面をロック ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|light-locker}} は LightDM を使用してユーザーを認証するシンプルなスクリーンロッカーです。インストールして起動したら以下のコマンドでセッションをロックできます:&lt;br /&gt;
&lt;br /&gt;
 $ light-locker-command -l&lt;br /&gt;
&lt;br /&gt;
上記コマンドを使うにはセッションの最初に {{ic|light-locker}} を起動する必要があります。デフォルトでは、これは [[XDG 自動起動]]を使用して有効化されます。その他のオプションは [[自動起動]] を見てください。&lt;br /&gt;
&lt;br /&gt;
=== マルチモニターのセットアップ ===&lt;br /&gt;
&lt;br /&gt;
マルチモニター環境では LightDM がモニターの解像度を適切に設定しないことがあります。以下の Xorg 設定はデュアルモニターの環境で機能します: 大きなプライマリスクリーンを左側に配置し、サブの小さい方のスクリーンをプライマリの右側に配置します。順番は逆にすることも変更することもできます。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/X11/xorg.conf.d/52-resolution-fix.conf|2=&lt;br /&gt;
Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
    Identifier &amp;quot;DP1&amp;quot;&lt;br /&gt;
    Option &amp;quot;PreferredMode&amp;quot; &amp;quot;3840x2160&amp;quot;&lt;br /&gt;
    Option &amp;quot;Primary&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
    Identifier &amp;quot;eDP1&amp;quot;&lt;br /&gt;
    Option &amp;quot;PreferredMode&amp;quot; &amp;quot;1920x1080&amp;quot;&lt;br /&gt;
    Option &amp;quot;RightOf&amp;quot; &amp;quot;DP1&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
これは、{{ic|/etc/lightdm/lightdm.conf}} の {{ic|display-setup-script}} の設定を不要にします。&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== 自動ログインが機能しない ===&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/lightdm/lightdm.conf}} 内の {{ic|1=autologin-user=}} に適切な値が設されていることを確認してください。末尾に空白があるとエラーが発生します。&lt;br /&gt;
&lt;br /&gt;
自動ログインが失敗した時に画面に何も表示されない、あるいはログイン画面に即座に戻される場合、{{ic|1=logind-check-graphical=true}} を設定する必要があるかもしれません。&lt;br /&gt;
&lt;br /&gt;
自動ログインの用途には {{AUR|lightdm-autologin-greeter-git}} をインストールすることもできます。&lt;br /&gt;
&lt;br /&gt;
=== 現在の設定を見る ===&lt;br /&gt;
&lt;br /&gt;
現在の設定を見るには、以下を実行してください:&lt;br /&gt;
&lt;br /&gt;
 $ lightdm --show-config&lt;br /&gt;
&lt;br /&gt;
現在の設定、及びそれらの設定が読み込まれた元の設定ファイルが表示されます。&lt;br /&gt;
&lt;br /&gt;
=== LightDM が起動せず、画面が点滅する ===&lt;br /&gt;
&lt;br /&gt;
起動時に画面が点滅し続け、LightDM が表示されない場合、LightDM の設定ファイルで greeter を正しく定義しているか確認してください。GTK greeter を適切に定義している場合は、{{ic|xsessions-directory}} (デフォルト: {{ic|/usr/share/xsessions}}) が存在していて少なくとも一つは .desktop ファイルが含まれていることを確認してください。&lt;br /&gt;
&lt;br /&gt;
最後に使用したセッションが利用できなくなった時も同じ問題が lightdm の起動時に発生することがあります (例えば gnome を使った後 gnome-session パッケージを削除した場合): 一番簡単な回避策は削除したパッケージを一時的に戻すことです。もうひとつの解決策は:&lt;br /&gt;
&lt;br /&gt;
 # dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.Accounts /org/freedesktop/Accounts/User1000 org.freedesktop.Accounts.User.SetXSession string:xfce&lt;br /&gt;
&lt;br /&gt;
この例は、セッション &amp;quot;xfce&amp;quot; をユーザー ID 1000 のユーザーのデフォルトとして設定します。&lt;br /&gt;
&lt;br /&gt;
=== 間違ったロケールが表示される ===&lt;br /&gt;
&lt;br /&gt;
LightDM でロケールが正しく表示されない場合はあなたが使用しているロケールを {{ic|/etc/environment}} に追加してください:&lt;br /&gt;
&lt;br /&gt;
 LANG=ja_JP.utf8&lt;br /&gt;
&lt;br /&gt;
LightDM や greeter でシステムロケール以外の言語を使いたい場合、[[ドロップインファイル]]で {{ic|1=Environment=}} オプションを使用することで可能です。&lt;br /&gt;
&lt;br /&gt;
=== GTK greeter でアイコンが表示されない ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|lightdm-gtk-greeter}} を greeter として使っていてプレースホルダ画像がアイコンとして表示される場合、正しいアイコンテーマとテーマを設定してください。次のファイルを確認してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm-gtk-greeter.conf|2=&lt;br /&gt;
[greeter]&lt;br /&gt;
theme-name=mate      # /usr/share/themes/ 以下のディレクトリの名前&lt;br /&gt;
icon-theme-name=mate # /usr/share/icons/ 以下の完全なアイコンセットディレクトリの名前&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== ログインしようとすると LightDM がフリーズする ===&lt;br /&gt;
&lt;br /&gt;
適当なユーザー名・パスワードを入力してログインしようとすると、LightDM がフリーズしデスクトップを起動できないことがあります。この問題を修正するには、{{Pkg|gdk-pixbuf2}} パッケージを再インストールしてください。[https://bbs.archlinux.org/viewtopic.php?id=179031 フォーラムへの投稿]を参照。&lt;br /&gt;
&lt;br /&gt;
=== LightDM が間違ったモニタに表示される ===&lt;br /&gt;
&lt;br /&gt;
マルチモニタを使っていると、LightDM が間違ったモニタに表示されることがあります (例: プライマリモニタが右側にある場合)。LightDM のログイン画面が特定のモニタで表示されるように指定するには、{{ic|/etc/lightdm/lightdm.conf}} を編集して &#039;&#039;display-setup-script&#039;&#039; パラメータを次のように変更してください: &lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm.conf|2=&lt;br /&gt;
display-setup-script=xrandr --output &#039;&#039;HDMI-1&#039;&#039; --primary&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;HDMI1&#039;&#039; は実際のモニタの ID に置き換えてください、&#039;&#039;&#039;xrandr&#039;&#039;&#039; コマンドの出力で確認できます。&lt;br /&gt;
&lt;br /&gt;
もしくは、GTK greeter を使用している場合、{{ic|/etc/lightdm/lightdm-gtk-greeter.conf}} を編集して以下のように &#039;&#039;active-monitor&#039;&#039; パラメータを追加することもできます:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm-gtk-greeter.conf|2=&lt;br /&gt;
[greeter]&lt;br /&gt;
active-monitor=0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
0 は適当なディスプレイの番号に置き換えてください。&lt;br /&gt;
&lt;br /&gt;
=== LightDM が表示されない、または TTY 出力のみがモニタに表示される ===&lt;br /&gt;
&lt;br /&gt;
システムの起動が速すぎて、グラフィックドライバーが読み込まれるよりも先に LightDM サービスが起動してしまうことがあります。このような場合、{{ic|lightdm.conf}} ファイルに以下の設定を追加してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm.conf|2=&lt;br /&gt;
[LightDM]&lt;br /&gt;
logind-check-graphical=true&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
上記の設定で LightDM はグラフィックデバイスの準備が完了するのを待ってから、greeter を生成する、またはセッションを自動起動します。&lt;br /&gt;
&lt;br /&gt;
しかし、&#039;&#039;&#039;新しいバージョンの LightDM では、これがデフォルトの設定になっています。&#039;&#039;&#039;その結果、一部のハードウェアでは、グラフィックドライバが適切に検出されず、LightDM が greeter を起動しない場合があります (ブートしてシステムが安定した後でも)。この場合、この設定を false に設定して、グラフィックドライバのチェックをせずに greeter を起動するように強制的してください。&lt;br /&gt;
&lt;br /&gt;
=== Intel Graphics で LightDM の FPS が低い ===&lt;br /&gt;
&lt;br /&gt;
[[Intel graphics#AccelMethod]] を参照。&lt;br /&gt;
&lt;br /&gt;
=== Pulseaudio が自動的に起動しない ===&lt;br /&gt;
&lt;br /&gt;
[[PulseAudio#実行]] を参照。&lt;br /&gt;
&lt;br /&gt;
=== ホームディレクトリが暗号化されていると LightDM の表示に時間がかかる ===&lt;br /&gt;
&lt;br /&gt;
一部の LightDM テーマは、ホームディレクトリ内のアバター画像ファイルにアクセスしようとします。ホームディレクトリが暗号化されている場合、LightDM はホームディレクトリにアクセスできず、フリーズします。以下のどちらかの方法により、これを防止できます:&lt;br /&gt;
&lt;br /&gt;
* [[#アバターを変更する]] で説明されているようにアバターを設定する&lt;br /&gt;
* {{Pkg|lightdm-gtk-greeter}} の場合のみ: {{Ic|/etc/lightdm/lightdm-gtk-greeter.conf}} で {{Ic|&amp;lt;nowiki&amp;gt;hide-user-image = true&amp;lt;/nowiki&amp;gt;}} を設定する&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;[  OK  ] Reached target Graphical Interface.&amp;quot; で起動がストップする ===&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/nsswitch.conf}} を変更している場合、ユーザとグループの探索に失敗することがあります。これは、{{ic|/etc/nslcd.conf}} で {{ic|nss_initgroups_ignoreusers ALLLOCAL}} を設定せずに {{ic|nsswitch.conf}} のグループに {{ic|ldap}} が含まれている場合に起こります。&lt;br /&gt;
&lt;br /&gt;
=== Greeter に重複した GNOME エントリがあると Wayland セッションが動作しない ===&lt;br /&gt;
&lt;br /&gt;
一部の greeter (例: {{Pkg|lightdm-webkit2-greeter}}) は、2つのセッションが同一の名前を持つことをサポートしていません [https://github.com/canonical/lightdm/issues/16]。重複したエントリがあるか確認するには:&lt;br /&gt;
&lt;br /&gt;
 $ ls -1 /usr/share/wayland-sessions /usr/share/xsessions&lt;br /&gt;
&lt;br /&gt;
{{ic|/usr/share/xsessions}} 内の重複したエントリの名称を変更してください。例えば:&lt;br /&gt;
&lt;br /&gt;
 # mv /usr/share/xsessions/gnome.desktop /usr/share/xsessions/gnome.desktop.disabled&lt;br /&gt;
&lt;br /&gt;
=== 初回ログイン時に必ずセクメンテーション違反が発生する ===&lt;br /&gt;
&lt;br /&gt;
[[ネットワーク設定#ホスト名の設定]] にあるように、ホスト名を設定してください。{{Bug|47694}} も参照してください。&lt;br /&gt;
&lt;br /&gt;
=== ログインの無限ループ ===&lt;br /&gt;
&lt;br /&gt;
正しいユーザ名とパスワードを入力しても画面が真っ暗になり、何度やってもログイン画面に戻るというループに陥った場合、{{ic|rm ~/.Xauthority}} を実行する (つまり、無限ループが発生しているユーザの問題のある {{ic|.Xauthority}} を削除する) と解決することがあります。&lt;br /&gt;
&lt;br /&gt;
もう一つの理由は、あなたが &amp;quot;lightdm.conf&amp;quot; を一から作り直そうとして、以下の行を入れ忘れたのかもしれません:&lt;br /&gt;
&lt;br /&gt;
 session-wrapper=/etc/lightdm/Xsession&lt;br /&gt;
&lt;br /&gt;
この行がないと、LightDM は、Arch Linux には存在しない &amp;quot;lightdm-session&amp;quot; をセッションラッパーとして使おうとしてしまいます。&lt;br /&gt;
&lt;br /&gt;
lightdm.conf ファイルで session-wrapper を設定したが、lightdm のログではデフォルトの session-wrapper が使われていると出力される場合、スタートアップ中に lightdm.conf がアクセスできる状態にあることを確認してください。そのような例としては、lightdm.conf をホームディレクトリ内のファイルへのシンボリックリンクにしたが、LightDM サービスが開始する前はホームディレクトリがマウントされていないような環境があります。そのようなケースでは、LightDM はデフォルトの session-wrapper にフォールバックします。&lt;br /&gt;
&lt;br /&gt;
=== Wayland セッションで入力デバイスが動かない ===&lt;br /&gt;
&lt;br /&gt;
Wayland セッションを開始すると、入力デバイスが動かなくなり、物理的に抜き差ししても治らないことがあります。[https://github.com/canonical/lightdm/issues/63 LightDM issue 63] を参照してください。&lt;br /&gt;
&lt;br /&gt;
回避策は、{{ic|/etc/lightdm/Xsession}} に {{ic|sleep 1}} を追加して Wayland コンポジタの開始を遅延させることです。[https://gitlab.archlinux.org/archlinux/packaging/packages/lightdm/-/merge_requests/4 archlinux/packaging/packages/lightdm!4] は、Arch パッケージに先の回避策を適用した例です。&lt;br /&gt;
&lt;br /&gt;
=== lightdm-webkit2-greeter がログインプロセスでエラーを出力する ===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;an error was detected in the current theme that could interfere with the system login process&amp;quot; のようなメッセージが Greeterの起動時に出力される場合は次のコマンドで詳細なログを確認することができます。&lt;br /&gt;
&lt;br /&gt;
 lightdm-webkit2-greeter&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.ubuntu.com/LightDM Ubuntu Wiki の記事]&lt;br /&gt;
* [[Gentoo:LightDM/ja]]&lt;br /&gt;
* [https://github.com/CanonicalLtd/lightdm GitHub の LightDM]&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus|LightDM|2024-11-29|820925}}&lt;/div&gt;</summary>
		<author><name>Hkiku482</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=LightDM&amp;diff=39555</id>
		<title>LightDM</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=LightDM&amp;diff=39555"/>
		<updated>2025-01-25T18:48:55Z</updated>

		<summary type="html">&lt;p&gt;Hkiku482: /* lightdm-webkit2-greeter がログインプロセスでエラーを出力する */ 節を追加&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ディスプレイマネージャ]]&lt;br /&gt;
[[Category:カノニカル]]&lt;br /&gt;
[[de:Login-Manager#LightDM]]&lt;br /&gt;
[[en:LightDM]]&lt;br /&gt;
[[ru:LightDM]]&lt;br /&gt;
[[zh-hans:LightDM]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|ディスプレイマネージャ}}&lt;br /&gt;
{{Related|GDM}}&lt;br /&gt;
{{Related|LXDM}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[https://github.com/canonical/lightdm LightDM] はクロスデスクトップの[[ディスプレイマネージャ]]です。主な特徴は以下の通り:&lt;br /&gt;
&lt;br /&gt;
* クロスデスクトップ - 様々なデスクトップ技術をサポート。&lt;br /&gt;
* 様々なディスプレイサーバーに対応 (X、Mir、Wayland ...)。&lt;br /&gt;
* 軽量 - メモリの使用量が少なくて高速に動作。&lt;br /&gt;
* ゲストセッションをサポート。&lt;br /&gt;
* リモートログインをサポート (着信 - [[XDMCP]]、[[VNC]]、発信 - XDMCP、[[PAM]])。&lt;br /&gt;
* 充実したテストスイート。&lt;br /&gt;
* 軽量なコードベース。&lt;br /&gt;
&lt;br /&gt;
LightDM の設計に関する詳細は [https://www.freedesktop.org/wiki/Software/LightDM/Design ここ] から見れます。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{Pkg|lightdm}} パッケージを[[インストール]]してください。開発版は {{AUR|lightdm-git}} でインストールできます。&lt;br /&gt;
&lt;br /&gt;
=== Greeter ===&lt;br /&gt;
&lt;br /&gt;
Greeter も[[インストール]]する必要があるでしょう。Greeter はユーザーにログイン情報の入力を求める GUI であり、セッションの選択なども行います。Greeter 無しで LightDM を使うことも可能ですが、自動ログインが設定されている場合に限ります。Greeter を使用する場合は、{{pkg|xorg-server}} をインストールし、さらに以下の greeter パッケージのどれかをインストールする必要があります。&lt;br /&gt;
&lt;br /&gt;
GTK ベースの greeter:&lt;br /&gt;
&lt;br /&gt;
* {{App|LightDM GTK Greeter|LightDM のための GTK greeter。これは&#039;&#039;&#039;デフォルトの&#039;&#039;&#039; greeter です。他の greeter が設定されていない場合、LightDM はこの greeter を使おうとします。|https://github.com/Xubuntu/lightdm-gtk-greeter|{{Pkg|lightdm-gtk-greeter}}}}&lt;br /&gt;
* {{App|lightdm-pantheon-greeter|Elementary OS プロジェクトの greeter。|https://github.com/elementary/greeter|{{Pkg|lightdm-pantheon-greeter}}}}&lt;br /&gt;
* {{App|slick-greeter|{{Pkg|lightdm-gtk-greeter}} よりも見た目に重点を置いた GTK ベースの greeter。元は Unity greeter からフォークされたもので、Linux Mint ではデフォルトです。|https://github.com/linuxmint/slick-greeter|{{Pkg|lightdm-slick-greeter}}}}&lt;br /&gt;
* {{App|Web Greeter for LightDM|テーマに Webkit2 を使用する greeter。&#039;&#039;&#039;このプロジェクトの開発は2019年5月22日以降停止しています。&#039;&#039;&#039;|https://github.com/antergos/web-greeter|{{Pkg|lightdm-webkit2-greeter}}}}&lt;br /&gt;
* {{App|Mini-Greeter|最小の、カスタマイズ可能な、シングルユーザーの GTK3 greeter。|https://github.com/prikhi/lightdm-mini-greeter|{{AUR|lightdm-mini-greeter}}}}&lt;br /&gt;
* {{App|Nody Greeter|ウェブの技術で素晴らしいテーマを作成できる LightDM greeter。Electron.js と NodeGTK、そして Node.js で作成されています。|https://github.com/JezerM/nody-greeter|{{AUR|nody-greeter}}}}&lt;br /&gt;
&lt;br /&gt;
Qt ベースの greeter:&lt;br /&gt;
&lt;br /&gt;
* {{App|Web Greeter|テーマに PyQtWebEngine を使用している、モダンで美しい greeter。{{Pkg|lightdm-webkit2-greeter}} の後継です。|https://github.com/JezerM/web-greeter|{{AUR|web-greeter}}}}&lt;br /&gt;
* {{App|LightDM KDE Greeter|KDE による LightDM greeter。|https://invent.kde.org/plasma/lightdm-kde-greeter|{{AUR|lightdm-kde-greeter}}}}&lt;br /&gt;
&lt;br /&gt;
他の greeter:&lt;br /&gt;
&lt;br /&gt;
* {{App|lightdm-deepin-greeter|[[Deepin]] プロジェクトの greeter。|https://github.com/linuxdeepin/dde-session-shell|{{Pkg|deepin-session-shell}}}}&lt;br /&gt;
* {{App|LightDM Elephant Greeter|小さくシンプルな greeter。デフォルトでは {{Pkg|cage}} Wayland コンポジタ内で動作します。|https://github.com/max-moser/lightdm-elephant-greeter|{{AUR|lightdm-elephant-greeter-git}}}}&lt;br /&gt;
&lt;br /&gt;
{{Pkg|lightdm-webkit2-greeter}} 用のテーマ:&lt;br /&gt;
&lt;br /&gt;
* {{App|Litarvan&#039;s LightDM WebKit2 theme|モダンで機能が豊富なテーマ。|https://github.com/Litarvan/lightdm-webkit-theme-litarvan|{{Pkg|lightdm-webkit-theme-litarvan}}}}&lt;br /&gt;
* {{App|Aether|洗練された、扱いやすい Arch Linux テーマのログインスクリーン。|https://github.com/NoiSek/Aether|{{AUR|lightdm-webkit-theme-aether}}}}&lt;br /&gt;
&lt;br /&gt;
{{AUR|web-greeter}} と {{AUR|nody-greeter}} 用のテーマ:&lt;br /&gt;
&lt;br /&gt;
* {{App|Shikai|美しく、カスタマイズ可能なテーマ。|https://github.com/TheWisker/Shikai|{{AUR|shikai-theme}}}}&lt;br /&gt;
&lt;br /&gt;
LightDM の設定ファイルの {{ic|[Seat:*]}} セクションを変更することでデフォルトの greeter を設定することができます。例えば:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm.conf|2=&lt;br /&gt;
[Seat:*]&lt;br /&gt;
...&lt;br /&gt;
greeter-session=lightdm-&#039;&#039;yourgreeter&#039;&#039;-greeter&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|{{Pkg|lightdm-pantheon-greeter}} の設定ファイルは {{ic|io.elementary.greeter.conf}} です。{{ic|lightdm-pantheon-greeter.conf}} ではありません。}}&lt;br /&gt;
&lt;br /&gt;
どの greeter が利用できるか確認できる方法としては、{{ic|/usr/share/xgreeters}} ディレクトリ内のファイルをリストアップするというものがあります。それぞれの &#039;&#039;.desktop&#039;&#039; ファイルは1つの利用可能な greeter を表します。以下の例では、{{ic|lightdm-gtk-greeter}} greeter と {{ic|lightdm-webkit2-greeter}} greeter が利用可能です:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ ls -1 /usr/share/xgreeters/|&lt;br /&gt;
lightdm-gtk-greeter.desktop&lt;br /&gt;
lightdm-webkit2-greeter.desktop&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== LightDM を有効にする ==&lt;br /&gt;
&lt;br /&gt;
LightDM をブート時に起動するには {{ic|lightdm.service}} を[[有効化]]してください。[[ディスプレイマネージャ#ディスプレイマネージャをロードする]] も参照。&lt;br /&gt;
&lt;br /&gt;
== コマンドラインツール ==&lt;br /&gt;
&lt;br /&gt;
LightDM はコマンドラインツール {{ic|dm-tool}} を提供しています。これを使うことで現在のシートのロック、セッションの切り替えなどができます。&#039;最小主義の&#039;ウィンドウマネージャを使っている場合やテストに便利です。利用できるコマンドを表示するには、次を実行してください:&lt;br /&gt;
&lt;br /&gt;
 $ dm-tool --help&lt;br /&gt;
&lt;br /&gt;
=== ユーザーの切り替え ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|1=&#039;&#039;dm-tool&#039;&#039; は、({{ic|dm-tool lock}} や {{ic|dm-tool switch-to-greeter}} を実行することで) 簡単にバイパスすることができ、[[#light-locker を使って画面をロック|light-locker]] か他の [[アプリケーション一覧/セキュリティ#スクリーンロック|loginctl 互換のスクリーンロッカー]]が無いとセッションをロックしません。[[XScreenSaver#ロック画面からユーザーを切り替える]] を参照。}}&lt;br /&gt;
&lt;br /&gt;
LightDM の &#039;&#039;dm-tool&#039;&#039; コマンドを使って別々の tty に複数のユーザーをログインさせることができます。以下のコマンドは現在のセッションをロックするシグナルを送信して LightDM の greeter への切り替えを行って、新しいユーザーがログインできるようにします:&lt;br /&gt;
&lt;br /&gt;
 $ dm-tool switch-to-greeter&lt;br /&gt;
&lt;br /&gt;
== テスト ==&lt;br /&gt;
&lt;br /&gt;
まず、{{Pkg|xorg-server-xephyr}} を[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
そして、LightDM を X アプリケーションとして実行してください:&lt;br /&gt;
&lt;br /&gt;
 $ lightdm --test-mode --debug&lt;br /&gt;
&lt;br /&gt;
== 任意の設定と調整 ==&lt;br /&gt;
&lt;br /&gt;
LightDM は、設定ファイル {{ic|/etc/lightdm/lightdm.conf}} を編集することで設定することができます。&lt;br /&gt;
&lt;br /&gt;
また、一部の greeter には独自の設定ファイルが存在しています。例えば:&lt;br /&gt;
&lt;br /&gt;
{{Pkg|lightdm-gtk-greeter}}: {{ic|/etc/lightdm/lightdm-gtk-greeter.conf}} (あるいは、{{Pkg|lightdm-gtk-greeter-settings}} GUI を使用することもできます)。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|lightdm-webkit2-greeter}}: {{ic|/etc/lightdm/lightdm-webkit2-greeter.conf}}&lt;br /&gt;
&lt;br /&gt;
=== X セッションラッパー ===&lt;br /&gt;
&lt;br /&gt;
[[xinit]] から移行したユーザは、セッションがシェルから起動しないことに気づくでしょう。これは、シェルはセッションを起動する (そして、セッションはシェルの環境変数を継承する) のに対し、LightDM はセッションを起動するがシェルを source しないことが原因です。LightDM はラッパースクリプトを実行することでセッションを起動し、最後にグラフィカル環境を起動します。デフォルトでは、{{ic|/etc/lightdm/Xsession}} が実行されます。&lt;br /&gt;
&lt;br /&gt;
==== 環境変数 ====&lt;br /&gt;
&lt;br /&gt;
スクリプトは {{ic|/etc/profile}}、{{ic|~/.profile}}、{{ic|/etc/xprofile}}、そして {{ic|~/.xprofile}} をこの順番で読み込みます。これらのファイルを source しないシェルを使用している場合は、ファイルを読み込む {{ic|~/.xprofile}} を作成してもよいです。以下の例では、[[zsh]] がログインシェルです:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.xprofile|2=&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&amp;lt;nowiki&amp;gt;[ -f ~/.config/zsh/.zshenv ] &amp;amp;&amp;amp; . ~/.config/zsh/.zshenv&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
セッションにおいて重要であるシェル変数 (GTK や QT のテーマ、GNUPG の場所、設定のオーバーライドなど) を定義している場合は、こうすることでログインシェルから起動せずにグラフィカル環境が環境変数にアクセスすることができるようになります。&lt;br /&gt;
&lt;br /&gt;
==== キーマップ ====&lt;br /&gt;
&lt;br /&gt;
スクリプトは {{ic|/etc/X11/Xkbmap}} と {{ic|~/.Xkbmap}} で定義されている引数を使って [[Xkbmap]] を実行します。これらのファイルが存在しない場合、スクリプトは {{ic|/etc/X11/Xmodmap}} と {{ic|~/.Xmodmap}} で定義されている引数を使って [[xmodmap]] を実行します。xkbmap を使用する場合、上記のファイルは cat を使ってパースされます。例:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.Xmodmap|2=&lt;br /&gt;
-model pc105 -layout us,us,tr -variant ,dvorak,f -option grp:caps_toggle&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
それら以外の場合、セッションは X11 のシステムのデフォルトのキーマップを継承します。このキーマップは、xorg の設定ファイルを手動で編集するか、{{ic|localectl set-x11-keymap}} を使用することで定義することができます。[[Xorg/キーボード設定#キーボードレイアウトの設定]] を参照。&lt;br /&gt;
&lt;br /&gt;
==== lightdm-gtk-greeter で複数のキーボード配列 ====&lt;br /&gt;
&lt;br /&gt;
事前定義済みのキーボード配列の中から配列を切り替えられるようにするには、ドロップダウンメニューを有効化し、配列を設定してください。{{Pkg|lightdm-gtk-greeter-settings}} GUI を使用するか、設定ファイルを直接編集してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm-gtk-greeter.conf|2=&lt;br /&gt;
[greeter]&lt;br /&gt;
indicators = ~host;~spacer;~clock;~spacer;~layout;~language;~session;~a11y;~power&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
複数の配列を設定するには [[Xorg/キーボード設定#localectl を使う|localectl]] を使用してください。例えば、de とその &amp;quot;バリアント&amp;quot; である neo を設定し、後者をプライマリとするには:&lt;br /&gt;
&lt;br /&gt;
 # localectl --no-convert set-x11-keymap de,de pc105 neo,&lt;br /&gt;
&lt;br /&gt;
末尾のコンマは2つめの de の空白のバリアントを意味していることに注意してください。&lt;br /&gt;
&lt;br /&gt;
=== 背景画像・色を変更する ===&lt;br /&gt;
&lt;br /&gt;
背景には16進数のカラーコードか画像を設定することができます。一部の greeter は、ログイン画面による背景選択、ランダムな背景などのよりロバストな背景オプションを提供しています。&lt;br /&gt;
&lt;br /&gt;
==== GTK greeter ====&lt;br /&gt;
&lt;br /&gt;
{{Pkg|lightdm-gtk-greeter-settings}} GUI を使って設定することができます。&lt;br /&gt;
&lt;br /&gt;
Greeter 画面の壁紙をカスタマイズしたい場合は、{{ic|/etc/lightdm/lightdm-gtk-greeter.conf}} を編集して {{ic|[greeter]}} セクション内で {{ic|background}} 変数を定義する必要があります。例:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm-gtk-greeter.conf|2=&lt;br /&gt;
[greeter]&lt;br /&gt;
background=/usr/share/pixmaps/black_and_white_photography-wallpaper-1920x1080.jpg&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|LightDM ユーザーが画像ファイルにアクセスできるようにするために、{{ic|/usr/share/pixmaps}} に PNG や JPG ファイルを配置することが推奨されています。}}&lt;br /&gt;
&lt;br /&gt;
GTK3 テーマは {{ic|[greeter]}} セクション内の {{ic|theme-name}} 変数で指定することができます。アイコンとカーソルのテーマも同じように設定できます。例:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm-gtk-greeter.conf|2=&lt;br /&gt;
[greeter]&lt;br /&gt;
theme-name = Tela&lt;br /&gt;
icon-theme-name = Tela&lt;br /&gt;
cursor-theme-name = Tela&lt;br /&gt;
cursor-theme-size = 32&lt;br /&gt;
font-name = Cantarell 20&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Webkit2 greeter ====&lt;br /&gt;
&lt;br /&gt;
{{Pkg|lightdm-webkit2-greeter}} では、背景画像をログイン画面で直接選択することができます。また、[https://github.com/artur9010/lightdm-webkit-material Material テーマ]を使用する場合は、起動するたびにランダムな画像を表示するオプションも提供されています。デフォルトでは、画像は {{ic|/usr/share/backgrounds}} から読み込まれます。{{ic|lightdm-webkit2-greeter.conf}} を編集することで背景画像を直接変更することができます。例えば:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm-webkit2-greeter.conf|2=&lt;br /&gt;
[branding]&lt;br /&gt;
background_images = /usr/share/backgrounds&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|背景画像のディレクトリは LightDM ユーザによってアクセス可能でなければなりません。よって、画像は {{ic|/home}} 内に配置するべきではありません。}}&lt;br /&gt;
&lt;br /&gt;
==== Slick Greeter ====&lt;br /&gt;
&lt;br /&gt;
{{AUR|lightdm-settings}} GUI を使用してください。&lt;br /&gt;
&lt;br /&gt;
=== アバターを変更する ===&lt;br /&gt;
&lt;br /&gt;
まず、{{Pkg|accountsservice}} パッケージが[[インストール]]されていることを確認し、その後、以下のようにセットアップしてください。{{ic|&#039;&#039;username&#039;&#039;}} の部分はユーザーのログイン名に置き換えてください。&lt;br /&gt;
&lt;br /&gt;
* 96x96 の PNG 画像ファイルを使って {{ic|/var/lib/AccountsService/icons/&#039;&#039;username&#039;&#039;.png}} ファイルを作成してください。その他の画像フォーマットも利用可能です (例えば JPEG)。&lt;br /&gt;
* あるいは、デフォルトの設定がすでにユーザーのホームディレクトリのパスを使用している場合は、画像ファイルを {{ic|/home/&#039;&#039;username&#039;&#039;/.face}} として配置し、次の手順を飛ばしてください。&lt;br /&gt;
* アカウントの設定ファイル {{ic|/var/lib/AccountsService/users/&#039;&#039;username&#039;&#039;}} を編集あるいは作成し、以下の設定を追加してください:&lt;br /&gt;
&lt;br /&gt;
 [User]&lt;br /&gt;
 Icon=/var/lib/AccountsService/icons/&#039;&#039;username&#039;&#039;.png&lt;br /&gt;
&lt;br /&gt;
ここでのファイル名は、1番目の手順で作成したアイコンファイルでなければなりません。なので、必要に応じてファイル名の拡張子を変更してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|作成したファイルのパーミッションは全て 644 に設定してください。[[chmod]] を使って、パーミッションを設定してください。}}&lt;br /&gt;
&lt;br /&gt;
=== Arch の 64x64 アイコンを使う ===&lt;br /&gt;
&lt;br /&gt;
{{AUR|archlinux-artwork}} パッケージには素晴らしいサンプルが含まれており、{{ic|/usr/share/archlinux/icons}} にインストールされます。以下のように {{ic|/usr/share/icons/hicolor/64x64/devices}} にコピーすることが可能です:&lt;br /&gt;
&lt;br /&gt;
 # find /usr/share/archlinux/icons -name &amp;quot;*64*&amp;quot; -exec cp {} /usr/share/icons/hicolor/64x64/devices \;&lt;br /&gt;
&lt;br /&gt;
コピーした後は、{{AUR|archlinux-artwork}} パッケージは削除してかまいません。&lt;br /&gt;
&lt;br /&gt;
=== 自動ログインを有効にする ===&lt;br /&gt;
&lt;br /&gt;
LightDM の設定ファイルを編集して、以下の設定をアンコメントし、正しく設定してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm.conf|2=&lt;br /&gt;
[Seat:*]&lt;br /&gt;
autologin-user=&#039;&#039;username&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
パスワードを入力しないで自動的にログインできるようにするには、ユーザを {{ic|autologin}} グループに追加する必要があります:&lt;br /&gt;
&lt;br /&gt;
 # groupadd -r autologin&lt;br /&gt;
 # gpasswd -a &#039;&#039;username&#039;&#039; autologin&lt;br /&gt;
&lt;br /&gt;
LightDM は {{ic|~/.dmrc}} に指定されたセッションを使ってログインします。このファイルの設定をオーバーライドするには、{{ic|lightdm.conf}} で {{ic|autologin-session}} を指定してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm.conf|2=&lt;br /&gt;
[Seat:*]&lt;br /&gt;
autologin-user=&#039;&#039;username&#039;&#039;&lt;br /&gt;
autologin-session=&#039;&#039;session&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
有効なセッション名のリストは、X セッションは {{ic|/usr/share/xsessions/*.desktop}} を、Wayland セッションは {{ic|/usr/share/wayland-sessions/*.desktop}} を一覧表示すればわかります。&lt;br /&gt;
&lt;br /&gt;
{{Note|GNOME ユーザー (と gnome-keyring ユーザー) は、自動でロックが解除されるように、キーリングに空のパスワードを設定する必要があります。}}&lt;br /&gt;
&lt;br /&gt;
=== インタラクティブなパスワードレスログインを有効化する ===&lt;br /&gt;
&lt;br /&gt;
LightDM は [[PAM]] を経由します。なので、PAM の lightdm 設定ファイルを設定する必要があります:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/pam.d/lightdm|2=&lt;br /&gt;
#%PAM-1.0&lt;br /&gt;
&#039;&#039;&#039;auth        sufficient  pam_succeed_if.so user ingroup nopasswdlogin&#039;&#039;&#039;&lt;br /&gt;
auth        include     system-login&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
次に、パスワードを入力せずにインタラクティブにログインできるようにするために、あなたのユーザを {{ic|nopasswdlogin}} グループと {{ic|autologin}} グループに追加する必要があります:&lt;br /&gt;
&lt;br /&gt;
 # groupadd -r nopasswdlogin&lt;br /&gt;
 # groupadd -r autologin&lt;br /&gt;
 # gpasswd -a &#039;&#039;username&#039;&#039; nopasswdlogin&lt;br /&gt;
 # gpasswd -a &#039;&#039;username&#039;&#039; autologin&lt;br /&gt;
&lt;br /&gt;
{{Note|GNOME ユーザや gnome-keyring ユーザは、前のセクションにある自動ログインの有効化に関する指示に従う必要がある場合があります。}}&lt;br /&gt;
&lt;br /&gt;
自動ログインし、さらにパスワード無しで再ログインできるユーザアカウントを作成するには、両方のグループに含まれるユーザを作成してください。例えば:&lt;br /&gt;
&lt;br /&gt;
 # useradd -mG autologin,nopasswdlogin &#039;&#039;username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== ゲストセッションを有効化する ===&lt;br /&gt;
&lt;br /&gt;
{{Note|この機能を有効化すると、ゲストユーザはパスワード無しでシステムにアクセスできるようになります。}} &lt;br /&gt;
&lt;br /&gt;
(システムの設定を変えずに) LightDM でゲストセッションを有効化するには、少なくとも以下の2つが必要です:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;guest-account-script&#039;&#039;&#039;: {{ic|guest-account}} をデフォルトとし、以下の2つのコマンドを受け入れるスクリプト:&lt;br /&gt;
#* &#039;&#039;&#039;add&#039;&#039;&#039; (一時的なゲストシステムアカウントを作成し、作成されたアカウントのユーザ名を返します)&lt;br /&gt;
#* &#039;&#039;&#039;remove&#039;&#039;&#039; &#039;&#039;アカウント名&#039;&#039; (対応するアカウントを削除します)&lt;br /&gt;
# 作成されたゲストアカウントを追加する [[#自動ログインを有効にする|&#039;&#039;&#039;autologin&#039;&#039;&#039;]] グループ (参照: {{ic|/etc/pam.d/lightdm-autologin}})。&lt;br /&gt;
&lt;br /&gt;
LightDM でゲストセッションを有効化する AUR パッケージが2つあります:&lt;br /&gt;
&lt;br /&gt;
* {{aur|lightdm-guest}}: 上流の (ほぼ変更されていない) guest-session スクリプトと {{pkg|lightdm}} 自体を提供します。&lt;br /&gt;
* {{aur|lightdm-guest-account}}: スクリプトの最小バージョンのみを提供します。&lt;br /&gt;
&lt;br /&gt;
=== システムユーザーとサービスユーザーを隠す ===&lt;br /&gt;
&lt;br /&gt;
システムユーザーをログイン画面で表示されないようにするには、任意の依存パッケージ {{Pkg|accountsservice}} をインストールするか、ユーザーの名前を {{ic|/etc/lightdm/users.conf}} の {{ic|hidden-users}} に追加してください。前者の方法ではユーザーを追加・削除したときにリストを更新する必要はありません。&lt;br /&gt;
&lt;br /&gt;
=== SLiM からの移行 ===&lt;br /&gt;
&lt;br /&gt;
[[xinitrc]] の中身を [[xprofile]] に移動し、[[ウィンドウマネージャ]]や[[デスクトップ環境]]を起動するコマンドを削除してください。&lt;br /&gt;
&lt;br /&gt;
=== ~/.xinitrc を使ってログイン ===&lt;br /&gt;
&lt;br /&gt;
[[ディスプレイマネージャ#セッションとして ~/.xinitrc を実行]] を見てください。&lt;br /&gt;
&lt;br /&gt;
=== NumLock をデフォルトでオンにする ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|numlockx}} パッケージをインストールし、{{ic|/etc/lightdm/lightdm.conf}} を編集してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm.conf|2=&lt;br /&gt;
[Seat:*]&lt;br /&gt;
greeter-setup-script=/usr/bin/numlockx on&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== デフォルトセッション ===&lt;br /&gt;
&lt;br /&gt;
他の DM と同じように、Lightdm は最後に選択された xsession を {{ic|~/.dmrc}} に保存します。詳しくは [[ディスプレイマネージャ#セッション設定]] を見てください。&lt;br /&gt;
&lt;br /&gt;
=== ログインウィンドウの位置を変更 ===&lt;br /&gt;
&lt;br /&gt;
==== GTK greeter ====&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/lightdm/lightdm-gtk-greeter.conf}} を編集して {{ic|position}} 変数に値を入力する必要があります。{{ic|x}} 値と {{ic|y}} 値を入れることができ、絶対座標 (ピクセル) と相対座標 (パーセント) で指定できます。また、ウィンドウのアンカーの位置 ({{ic|start}}、{{ic|center}}、{{ic|end}}) を指定することもできます。値はカンマで区切ります。&lt;br /&gt;
&lt;br /&gt;
例:&lt;br /&gt;
&lt;br /&gt;
 position=200,start 50%,center&lt;br /&gt;
&lt;br /&gt;
=== VNC サーバー ===&lt;br /&gt;
&lt;br /&gt;
Lightdm を使って VNC 経由で接続することも可能です。サーバ側に {{pkg|tigervnc}} をインストールしてください。任意で、クライアント側の PC にも VNC クライアントとしてインストールしてください。&lt;br /&gt;
&lt;br /&gt;
サーバ側で root として認証パスワードをセットアップしてください:&lt;br /&gt;
&lt;br /&gt;
 # vncpasswd /etc/vncpasswd&lt;br /&gt;
&lt;br /&gt;
そして、以下のように LightDM の設定ファイルを編集してください。{{ic|listen-address}} の設定で localhost からの接続のみをリッスンするように VNC を設定していることに注意してください。これは、[[TigerVNC#クライアント側|SSH とポートフォワーディング]]経由での接続のみを許可するためです。SSH クライアントでは、トンネルの接続先として {{ic|localhost:5900}} のみを使うようにしてください。デュアルスタックのネットワーク接続では {{ic|127.0.0.1:5900}} や {{ic|::1:5900}} は信頼性がありません。セキュアでない接続も許可するようにしたい場合、この設定を無効化してください。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm.conf|2=&lt;br /&gt;
[VNCServer]&lt;br /&gt;
enabled=true&lt;br /&gt;
command=Xvnc -rfbauth /etc/vncpasswd&lt;br /&gt;
port=5900&lt;br /&gt;
listen-address=localhost&lt;br /&gt;
width=1024&lt;br /&gt;
height=768&lt;br /&gt;
depth=24&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
設定したら、[[TigerVNC#クライアント側]] に書かれているように SSH トンネルを開いてローカルホストに接続してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|VNC 接続を開いたときに画面に何も表示されない場合、別の LightDM greeter を試してみてください。}}&lt;br /&gt;
&lt;br /&gt;
=== light-locker を使って画面をロック ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|light-locker}} は LightDM を使用してユーザーを認証するシンプルなスクリーンロッカーです。インストールして起動したら以下のコマンドでセッションをロックできます:&lt;br /&gt;
&lt;br /&gt;
 $ light-locker-command -l&lt;br /&gt;
&lt;br /&gt;
上記コマンドを使うにはセッションの最初に {{ic|light-locker}} を起動する必要があります。デフォルトでは、これは [[XDG 自動起動]]を使用して有効化されます。その他のオプションは [[自動起動]] を見てください。&lt;br /&gt;
&lt;br /&gt;
=== マルチモニターのセットアップ ===&lt;br /&gt;
&lt;br /&gt;
マルチモニター環境では LightDM がモニターの解像度を適切に設定しないことがあります。以下の Xorg 設定はデュアルモニターの環境で機能します: 大きなプライマリスクリーンを左側に配置し、サブの小さい方のスクリーンをプライマリの右側に配置します。順番は逆にすることも変更することもできます。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/X11/xorg.conf.d/52-resolution-fix.conf|2=&lt;br /&gt;
Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
    Identifier &amp;quot;DP1&amp;quot;&lt;br /&gt;
    Option &amp;quot;PreferredMode&amp;quot; &amp;quot;3840x2160&amp;quot;&lt;br /&gt;
    Option &amp;quot;Primary&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
    Identifier &amp;quot;eDP1&amp;quot;&lt;br /&gt;
    Option &amp;quot;PreferredMode&amp;quot; &amp;quot;1920x1080&amp;quot;&lt;br /&gt;
    Option &amp;quot;RightOf&amp;quot; &amp;quot;DP1&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
これは、{{ic|/etc/lightdm/lightdm.conf}} の {{ic|display-setup-script}} の設定を不要にします。&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== 自動ログインが機能しない ===&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/lightdm/lightdm.conf}} 内の {{ic|1=autologin-user=}} に適切な値が設されていることを確認してください。末尾に空白があるとエラーが発生します。&lt;br /&gt;
&lt;br /&gt;
自動ログインが失敗した時に画面に何も表示されない、あるいはログイン画面に即座に戻される場合、{{ic|1=logind-check-graphical=true}} を設定する必要があるかもしれません。&lt;br /&gt;
&lt;br /&gt;
自動ログインの用途には {{AUR|lightdm-autologin-greeter-git}} をインストールすることもできます。&lt;br /&gt;
&lt;br /&gt;
=== 現在の設定を見る ===&lt;br /&gt;
&lt;br /&gt;
現在の設定を見るには、以下を実行してください:&lt;br /&gt;
&lt;br /&gt;
 $ lightdm --show-config&lt;br /&gt;
&lt;br /&gt;
現在の設定、及びそれらの設定が読み込まれた元の設定ファイルが表示されます。&lt;br /&gt;
&lt;br /&gt;
=== LightDM が起動せず、画面が点滅する ===&lt;br /&gt;
&lt;br /&gt;
起動時に画面が点滅し続け、LightDM が表示されない場合、LightDM の設定ファイルで greeter を正しく定義しているか確認してください。GTK greeter を適切に定義している場合は、{{ic|xsessions-directory}} (デフォルト: {{ic|/usr/share/xsessions}}) が存在していて少なくとも一つは .desktop ファイルが含まれていることを確認してください。&lt;br /&gt;
&lt;br /&gt;
最後に使用したセッションが利用できなくなった時も同じ問題が lightdm の起動時に発生することがあります (例えば gnome を使った後 gnome-session パッケージを削除した場合): 一番簡単な回避策は削除したパッケージを一時的に戻すことです。もうひとつの解決策は:&lt;br /&gt;
&lt;br /&gt;
 # dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.Accounts /org/freedesktop/Accounts/User1000 org.freedesktop.Accounts.User.SetXSession string:xfce&lt;br /&gt;
&lt;br /&gt;
この例は、セッション &amp;quot;xfce&amp;quot; をユーザー ID 1000 のユーザーのデフォルトとして設定します。&lt;br /&gt;
&lt;br /&gt;
=== 間違ったロケールが表示される ===&lt;br /&gt;
&lt;br /&gt;
LightDM でロケールが正しく表示されない場合はあなたが使用しているロケールを {{ic|/etc/environment}} に追加してください:&lt;br /&gt;
&lt;br /&gt;
 LANG=ja_JP.utf8&lt;br /&gt;
&lt;br /&gt;
LightDM や greeter でシステムロケール以外の言語を使いたい場合、[[ドロップインファイル]]で {{ic|1=Environment=}} オプションを使用することで可能です。&lt;br /&gt;
&lt;br /&gt;
=== GTK greeter でアイコンが表示されない ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|lightdm-gtk-greeter}} を greeter として使っていてプレースホルダ画像がアイコンとして表示される場合、正しいアイコンテーマとテーマを設定してください。次のファイルを確認してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm-gtk-greeter.conf|2=&lt;br /&gt;
[greeter]&lt;br /&gt;
theme-name=mate      # /usr/share/themes/ 以下のディレクトリの名前&lt;br /&gt;
icon-theme-name=mate # /usr/share/icons/ 以下の完全なアイコンセットディレクトリの名前&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== ログインしようとすると LightDM がフリーズする ===&lt;br /&gt;
&lt;br /&gt;
適当なユーザー名・パスワードを入力してログインしようとすると、LightDM がフリーズしデスクトップを起動できないことがあります。この問題を修正するには、{{Pkg|gdk-pixbuf2}} パッケージを再インストールしてください。[https://bbs.archlinux.org/viewtopic.php?id=179031 フォーラムへの投稿]を参照。&lt;br /&gt;
&lt;br /&gt;
=== LightDM が間違ったモニタに表示される ===&lt;br /&gt;
&lt;br /&gt;
マルチモニタを使っていると、LightDM が間違ったモニタに表示されることがあります (例: プライマリモニタが右側にある場合)。LightDM のログイン画面が特定のモニタで表示されるように指定するには、{{ic|/etc/lightdm/lightdm.conf}} を編集して &#039;&#039;display-setup-script&#039;&#039; パラメータを次のように変更してください: &lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm.conf|2=&lt;br /&gt;
display-setup-script=xrandr --output &#039;&#039;HDMI-1&#039;&#039; --primary&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;HDMI1&#039;&#039; は実際のモニタの ID に置き換えてください、&#039;&#039;&#039;xrandr&#039;&#039;&#039; コマンドの出力で確認できます。&lt;br /&gt;
&lt;br /&gt;
もしくは、GTK greeter を使用している場合、{{ic|/etc/lightdm/lightdm-gtk-greeter.conf}} を編集して以下のように &#039;&#039;active-monitor&#039;&#039; パラメータを追加することもできます:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm-gtk-greeter.conf|2=&lt;br /&gt;
[greeter]&lt;br /&gt;
active-monitor=0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
0 は適当なディスプレイの番号に置き換えてください。&lt;br /&gt;
&lt;br /&gt;
=== LightDM が表示されない、または TTY 出力のみがモニタに表示される ===&lt;br /&gt;
&lt;br /&gt;
システムの起動が速すぎて、グラフィックドライバーが読み込まれるよりも先に LightDM サービスが起動してしまうことがあります。このような場合、{{ic|lightdm.conf}} ファイルに以下の設定を追加してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/lightdm/lightdm.conf|2=&lt;br /&gt;
[LightDM]&lt;br /&gt;
logind-check-graphical=true&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
上記の設定で LightDM はグラフィックデバイスの準備が完了するのを待ってから、greeter を生成する、またはセッションを自動起動します。&lt;br /&gt;
&lt;br /&gt;
しかし、&#039;&#039;&#039;新しいバージョンの LightDM では、これがデフォルトの設定になっています。&#039;&#039;&#039;その結果、一部のハードウェアでは、グラフィックドライバが適切に検出されず、LightDM が greeter を起動しない場合があります (ブートしてシステムが安定した後でも)。この場合、この設定を false に設定して、グラフィックドライバのチェックをせずに greeter を起動するように強制的してください。&lt;br /&gt;
&lt;br /&gt;
=== Intel Graphics で LightDM の FPS が低い ===&lt;br /&gt;
&lt;br /&gt;
[[Intel graphics#AccelMethod]] を参照。&lt;br /&gt;
&lt;br /&gt;
=== Pulseaudio が自動的に起動しない ===&lt;br /&gt;
&lt;br /&gt;
[[PulseAudio#実行]] を参照。&lt;br /&gt;
&lt;br /&gt;
=== ホームディレクトリが暗号化されていると LightDM の表示に時間がかかる ===&lt;br /&gt;
&lt;br /&gt;
一部の LightDM テーマは、ホームディレクトリ内のアバター画像ファイルにアクセスしようとします。ホームディレクトリが暗号化されている場合、LightDM はホームディレクトリにアクセスできず、フリーズします。以下のどちらかの方法により、これを防止できます:&lt;br /&gt;
&lt;br /&gt;
* [[#アバターを変更する]] で説明されているようにアバターを設定する&lt;br /&gt;
* {{Pkg|lightdm-gtk-greeter}} の場合のみ: {{Ic|/etc/lightdm/lightdm-gtk-greeter.conf}} で {{Ic|&amp;lt;nowiki&amp;gt;hide-user-image = true&amp;lt;/nowiki&amp;gt;}} を設定する&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;[  OK  ] Reached target Graphical Interface.&amp;quot; で起動がストップする ===&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/nsswitch.conf}} を変更している場合、ユーザとグループの探索に失敗することがあります。これは、{{ic|/etc/nslcd.conf}} で {{ic|nss_initgroups_ignoreusers ALLLOCAL}} を設定せずに {{ic|nsswitch.conf}} のグループに {{ic|ldap}} が含まれている場合に起こります。&lt;br /&gt;
&lt;br /&gt;
=== Greeter に重複した GNOME エントリがあると Wayland セッションが動作しない ===&lt;br /&gt;
&lt;br /&gt;
一部の greeter (例: {{Pkg|lightdm-webkit2-greeter}}) は、2つのセッションが同一の名前を持つことをサポートしていません [https://github.com/canonical/lightdm/issues/16]。重複したエントリがあるか確認するには:&lt;br /&gt;
&lt;br /&gt;
 $ ls -1 /usr/share/wayland-sessions /usr/share/xsessions&lt;br /&gt;
&lt;br /&gt;
{{ic|/usr/share/xsessions}} 内の重複したエントリの名称を変更してください。例えば:&lt;br /&gt;
&lt;br /&gt;
 # mv /usr/share/xsessions/gnome.desktop /usr/share/xsessions/gnome.desktop.disabled&lt;br /&gt;
&lt;br /&gt;
=== 初回ログイン時に必ずセクメンテーション違反が発生する ===&lt;br /&gt;
&lt;br /&gt;
[[ネットワーク設定#ホスト名の設定]] にあるように、ホスト名を設定してください。{{Bug|47694}} も参照してください。&lt;br /&gt;
&lt;br /&gt;
=== ログインの無限ループ ===&lt;br /&gt;
&lt;br /&gt;
正しいユーザ名とパスワードを入力しても画面が真っ暗になり、何度やってもログイン画面に戻るというループに陥った場合、{{ic|rm ~/.Xauthority}} を実行する (つまり、無限ループが発生しているユーザの問題のある {{ic|.Xauthority}} を削除する) と解決することがあります。&lt;br /&gt;
&lt;br /&gt;
もう一つの理由は、あなたが &amp;quot;lightdm.conf&amp;quot; を一から作り直そうとして、以下の行を入れ忘れたのかもしれません:&lt;br /&gt;
&lt;br /&gt;
 session-wrapper=/etc/lightdm/Xsession&lt;br /&gt;
&lt;br /&gt;
この行がないと、LightDM は、Arch Linux には存在しない &amp;quot;lightdm-session&amp;quot; をセッションラッパーとして使おうとしてしまいます。&lt;br /&gt;
&lt;br /&gt;
lightdm.conf ファイルで session-wrapper を設定したが、lightdm のログではデフォルトの session-wrapper が使われていると出力される場合、スタートアップ中に lightdm.conf がアクセスできる状態にあることを確認してください。そのような例としては、lightdm.conf をホームディレクトリ内のファイルへのシンボリックリンクにしたが、LightDM サービスが開始する前はホームディレクトリがマウントされていないような環境があります。そのようなケースでは、LightDM はデフォルトの session-wrapper にフォールバックします。&lt;br /&gt;
&lt;br /&gt;
=== Wayland セッションで入力デバイスが動かない ===&lt;br /&gt;
&lt;br /&gt;
Wayland セッションを開始すると、入力デバイスが動かなくなり、物理的に抜き差ししても治らないことがあります。[https://github.com/canonical/lightdm/issues/63 LightDM issue 63] を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== lightdm-webkit2-greeter がログインプロセスでエラーを出力する ===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;an error was detected in the current theme that could interfere with the system login process&amp;quot; のようなメッセージが Greeterの起動時に出力される場合は次のコマンドで詳細なログを確認することができます。&lt;br /&gt;
&lt;br /&gt;
 lightdm-webkit2-greeter&lt;br /&gt;
&lt;br /&gt;
回避策は、{{ic|/etc/lightdm/Xsession}} に {{ic|sleep 1}} を追加して Wayland コンポジタの開始を遅延させることです。[https://gitlab.archlinux.org/archlinux/packaging/packages/lightdm/-/merge_requests/4 archlinux/packaging/packages/lightdm!4] は、Arch パッケージに先の回避策を適用した例です。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.ubuntu.com/LightDM Ubuntu Wiki の記事]&lt;br /&gt;
* [[Gentoo:LightDM/ja]]&lt;br /&gt;
* [https://github.com/CanonicalLtd/lightdm GitHub の LightDM]&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus|LightDM|2024-11-29|820925}}&lt;/div&gt;</summary>
		<author><name>Hkiku482</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Dm-crypt/%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E5%85%A8%E4%BD%93%E3%81%AE%E6%9A%97%E5%8F%B7%E5%8C%96&amp;diff=39518</id>
		<title>Dm-crypt/システム全体の暗号化</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Dm-crypt/%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E5%85%A8%E4%BD%93%E3%81%AE%E6%9A%97%E5%8F%B7%E5%8C%96&amp;diff=39518"/>
		<updated>2025-01-18T11:10:50Z</updated>

		<summary type="html">&lt;p&gt;Hkiku482: /* EFI システムパーティションの準備 */ 誤字修正&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;br /&gt;
[[Category:保存データ暗号化]]&lt;br /&gt;
[[Category:ファイルシステム]]&lt;br /&gt;
[[Category:Arch の入手とインストール]]&lt;br /&gt;
[[de:Systemverschlüsselung mit dm-crypt]]&lt;br /&gt;
[[en:Dm-crypt/Encrypting an entire system]]&lt;br /&gt;
[[es:Dm-crypt/Encrypting an entire system]]&lt;br /&gt;
以下は &#039;&#039;dm-crypt&#039;&#039; を使って完全なシステム暗号化を行う一般的なシナリオの例です。通常の[[インストールガイド|インストール手順]]に加える必要がある変更を全て説明しています。必要なツールは全て [https://www.archlinux.jp/download/ インストールイメージ] に入っています。&lt;br /&gt;
&lt;br /&gt;
== 概要 ==&lt;br /&gt;
&lt;br /&gt;
root ファイルシステムの暗号化については機能やパフォーマンスの点で &#039;&#039;dm-crypt&#039;&#039; が優れています。システムの root ファイルシステムが dm-crypt デバイス上にあれば、システム上のほとんど全てのファイルが暗号化されます。root 以外のファイルシステムを選択的に暗号化するのと異なり、root ファイルシステムの暗号化は様々な情報を隠匿できます。インストールされているプログラム、ユーザーアカウントのユーザー名、[[mlocate]] や {{ic|/var/log/}} など媒介してデータ漏洩の恐れがあるファイルなど。さらに、root ファイルシステムを暗号化することでシステムの改竄が非常に難しくなります。[[ブートローダー]]やカーネルを除く全てが暗号化されるためです。&lt;br /&gt;
&lt;br /&gt;
以上の利点をのぞく、それぞれのシナリオのメリットやデメリットなどの違いをまとめて、全てのシナリオを以下の表で説明します:&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;
| [[#LUKS を使用するシンプルなパーティションレイアウト]]&lt;br /&gt;
LUKS で root を完全に暗号化するベーシックなセットアップ&lt;br /&gt;
|&lt;br /&gt;
* パーティショニングと設定がシンプル&lt;br /&gt;
|&lt;br /&gt;
* 柔軟性がない、暗号化するディスク領域をあらかじめ指定する必要がある&lt;br /&gt;
|----------------------------------------------------------&lt;br /&gt;
| [[#LUKS を使用するパーティションに TPM2とセキュアブートを使用する]]&lt;br /&gt;
LUKS で root を完全に暗号化するベーシックなセットアップ&lt;br /&gt;
|&lt;br /&gt;
LUKS を使用するシンプルなパーティションレイアウトと加えて&lt;br /&gt;
* [[Wikipedia:Evil maid attack|Evil maid attacks]]から保護することができます。&lt;br /&gt;
* セキュアブートが無効になっていたり変更された場合に、TPM2によってロック解除を防止することができます。&lt;br /&gt;
|&lt;br /&gt;
* LUKS を使用するシンプルなパーティションレイアウト と同じ&lt;br /&gt;
|----------------------------------------------------------&lt;br /&gt;
| [[#LVM on LUKS]]&lt;br /&gt;
LUKS 暗号化パーティションの中で LVM を使うことでパーティショニングの柔軟性を確保&lt;br /&gt;
|&lt;br /&gt;
* LVM　を使ったことがあるのであれば簡単にパーティショニングできます&lt;br /&gt;
* 一つのキーで全てのボリュームのロックを解除できます (ディスクからの復帰を設定するのが簡単)&lt;br /&gt;
* ロックされていればボリュームのレイアウトが外から分かりません&lt;br /&gt;
* [[Dm-crypt/スワップの暗号化#suspend-to-disk_を使用する|ハイバネート]]を利用したいときの一番簡単な方法&lt;br /&gt;
|&lt;br /&gt;
* LVM によってマッピングレイヤーとフックが追加されます&lt;br /&gt;
* ボリュームごとに別のキーを設定する場合は不便です&lt;br /&gt;
|----------------------------------------------------------&lt;br /&gt;
| [[#LUKS on LVM]]&lt;br /&gt;
LVM をセットアップした後に dm-crypt を使用&lt;br /&gt;
|&lt;br /&gt;
* LVM を使うことで複数のディスクにまたがる暗号化ボリュームを作成できます&lt;br /&gt;
* 非暗号化・暗号化ボリュームグループを簡単に混ぜられます&lt;br /&gt;
|&lt;br /&gt;
* 複雑です。ボリュームを変更するときは暗号化マッパーも変更する必要があります&lt;br /&gt;
* ボリュームごとに個別のキーが必要になります&lt;br /&gt;
* ロックされていても LVM レイアウトは外から分かってしまいます&lt;br /&gt;
|----------------------------------------------------------&lt;br /&gt;
| [[#ソフトウェア RAID と LUKS]]&lt;br /&gt;
RAID を設定した後に dm-crypt を使います。&lt;br /&gt;
|&lt;br /&gt;
* LUKS on LVM と同じ。&lt;br /&gt;
|&lt;br /&gt;
* LUKS on LVM と同じ。&lt;br /&gt;
|----------------------------------------------------------&lt;br /&gt;
| [[#Plain dm-crypt]]&lt;br /&gt;
dm-crypt の plain モードを使用、LUKS ヘッダーや LUKS の複数のキーのオプションは使わない&amp;lt;br&amp;gt;このシナリオでは {{ic|/boot}} とキーストレージに USB デバイスを使いますが、これは他のデバイスでも利用可能です&lt;br /&gt;
|&lt;br /&gt;
* LUKS ヘッダに損害が発生した場合の耐障害性があります&lt;br /&gt;
* [[Wikipedia:Deniable encryption|否認可能暗号]]が使える&lt;br /&gt;
* SSD の[[Dm-crypt/特記事項#ソリッドステートドライブ (SSD) の Discard/TRIM のサポート|問題]]を解決できます&lt;br /&gt;
|&lt;br /&gt;
* 全ての暗号化パラメータに注意する必要があります&lt;br /&gt;
* 暗号鍵はひとつだけで変更する方法はありません&lt;br /&gt;
|----------------------------------------------------------&lt;br /&gt;
| [[#boot パーティションの暗号化 (GRUB)]]&lt;br /&gt;
GRUB ブートローダーを使って boot パーティションを暗号化する方法を説明します。&amp;lt;br&amp;gt;このシナリオでは ESP パーティションを使いますが、他のシナリオでも ESP を使うことができます。&lt;br /&gt;
|&lt;br /&gt;
* ベースにするシナリオと同じメリット (このページの例では LVM on LUKS)&lt;br /&gt;
* ブートローダーや ESP パーティションまで暗号化されます&lt;br /&gt;
|&lt;br /&gt;
* ベースにするシナリオと同じデメリット (このページの例では LVM on LUKS)&lt;br /&gt;
* 設定が複雑です&lt;br /&gt;
* 他のブートローダーのサポートがありません&lt;br /&gt;
|----------------------------------------------------------&lt;br /&gt;
| [[#Btrfs サブボリュームとスワップ]]&lt;br /&gt;
UEFI 環境で [[Btrfs]] のシステムパーティションと {{ic|/boot}} ディレクトリを暗号化して、スワップパーティションを追加する方法。&lt;br /&gt;
|&lt;br /&gt;
* [[#boot パーティションの暗号化 (GRUB)]] と同じメリット&lt;br /&gt;
* Btrfs の機能を活用できます&lt;br /&gt;
|&lt;br /&gt;
* [[#boot パーティションの暗号化 (GRUB)]] と同じデメリット&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
上記全てのシナリオが外部からの脅威に対して十分な保護を約束しますが、共通の欠点も存在します。暗号化キーを持っているユーザーなら誰でもデバイスの全てを復号化して、他のユーザーのデータにもアクセスすることが可能という点です。これが問題だという場合は、ブロックデバイスの暗号化とスタックファイルシステムの暗号化と組み合わせて使用することで、両者の利点を取り入れることができます。[[保存データ暗号化]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
他にも、スワップパーティションの暗号化を設定するべきかどうか考慮する必要があります。[[Dm-crypt/スワップの暗号化]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
シナリオで使用されているパーティショニングの外観について [[Dm-crypt/ドライブの準備#パーティショニング]] も参照してください。&lt;br /&gt;
&lt;br /&gt;
{{Warning|どのシナリオでも、暗号化ボリュームで [[fsck]] などのファイルシステム修復ソフトウェアを直接使ってはいけません。ファイルを復号化する鍵を破壊してしまいます。復号化した後に使うようにしてください。}}&lt;br /&gt;
&lt;br /&gt;
== LUKS を使用するシンプルなパーティションレイアウト ==&lt;br /&gt;
&lt;br /&gt;
この例ではシンプルなパーティションレイアウトによる &#039;&#039;dmcrypt&#039;&#039;+ LUKS のフルシステム暗号化を説明します:&lt;br /&gt;
&lt;br /&gt;
 +--------------------+--------------------------+--------------------------+&lt;br /&gt;
 |Boot partition      |LUKS encrypted system     |Optional free space       |&lt;br /&gt;
 |                    |partition                 |for additional partitions |&lt;br /&gt;
 |/dev/sdaY           |/dev/sdaX                 |or swap to be setup later |&lt;br /&gt;
 +--------------------+--------------------------+--------------------------+&lt;br /&gt;
&lt;br /&gt;
最初のステップは Arch Linux のインストールイメージを起動した後すぐに実行します。&lt;br /&gt;
&lt;br /&gt;
=== ディスクの準備 ===&lt;br /&gt;
パーティションを作成する前に、[[Dm-crypt/ドライブの準備]] で説明されているように、ディスクを完全に消去する必要性・方法を学んでください。&lt;br /&gt;
&lt;br /&gt;
それから必要なパーティションを作成します。最低でも {{ic|/}} が必要です (例: {{ic|/dev/sdaX}}) と {{ic|/boot}} ({{ic|/dev/sdaY}})。[[パーティショニング]]を参照。&lt;br /&gt;
&lt;br /&gt;
=== boot 以外のパーティションの準備 ===&lt;br /&gt;
&lt;br /&gt;
以下のコマンドは暗号化された root パーティションを作成・マウントします。[[Dm-crypt/root 以外のファイルシステムの暗号化#パーティション]] に詳しく説明されている手順に該当します (ページタイトルと相違して、[[#mkinitcpio の設定|mkinitcpio]] と[[#ブートローダーの設定|ブートローダー]]が正しく設定されていれば、root パーティションにも適用できます)。デフォルトになってない特定の暗号化オプションを使いたいときは (例: 暗号アルゴリズムや鍵長など)、最初のコマンドを実行する前に[[Dm-crypt/デバイスの暗号化#LUKS_モードの暗号化オプション|暗号化オプション]]を読んでください:&lt;br /&gt;
&lt;br /&gt;
 # cryptsetup -y -v luksFormat /dev/sdaX&lt;br /&gt;
 # cryptsetup open /dev/sdaX cryptroot&lt;br /&gt;
 # mkfs.ext4 /dev/mapper/cryptroot&lt;br /&gt;
 # mount /dev/mapper/cryptroot /mnt&lt;br /&gt;
&lt;br /&gt;
マッピングが問題ないかチェック:&lt;br /&gt;
 # umount /mnt&lt;br /&gt;
 # cryptsetup close cryptroot&lt;br /&gt;
 # cryptsetup open /dev/sdaX cryptroot&lt;br /&gt;
 # mount /dev/mapper/cryptroot /mnt&lt;br /&gt;
&lt;br /&gt;
パーティションを分割した場合 (例: {{ic|/home}})、以上のコマンドを全てのパーティションに繰り返し実行してください。ただし {{ic|/boot}} は別です。起動時に追加のパーティションを扱う方法は [[Dm-crypt/root 以外のファイルシステムの暗号化#ロック解除とマウントの自動化]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
それぞれのブロックデバイスには個々のパスフレーズが必要になります。起動時に、別々のパスフレーズを入力しないといけないので、不便とも言えます。{{ic|crypttab}} を使うことでシステムパーティションにキーファイルを保存して使用することで別のパーティションを解錠することができます。方法は [[Dm-crypt/デバイスの暗号化#LUKS を使ってキーファイルでパーティションをフォーマット]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== boot パーティションの準備 ===&lt;br /&gt;
セットアップする必要があるのは暗号化されない {{ic|/boot}} パーティションで、暗号化する root に必要となります。例えば、標準的な [[EFI|MBR/BIOS]] の {{ic|/boot}} パーティションの場合、以下を実行します:&lt;br /&gt;
 # mkfs.ext4 /dev/sdaY&lt;br /&gt;
 # mkdir /mnt/boot&lt;br /&gt;
 # mount /dev/sdaY /mnt/boot&lt;br /&gt;
&lt;br /&gt;
=== デバイスのマウント ===&lt;br /&gt;
[[インストールガイド#パーティションのマウント]]では実際のパーティションではなく、マップされたデバイスをマウントしてください。もちろん、{{ic|/boot}} は暗号化されていないので、直接マウントします。&lt;br /&gt;
&lt;br /&gt;
=== mkinitcpio の設定 ===&lt;br /&gt;
{{ic|keyboard}}, {{ic|keymap}}, {{ic|encrypt}} フックを [[mkinitcpio|mkinitcpio.conf]] 内の {{ic|filesystems}} の前に追加します:&lt;br /&gt;
{{hc|/etc/mkinitcpio.conf|2=HOOKS=(... &#039;&#039;&#039;keyboard&#039;&#039;&#039; &#039;&#039;&#039;keymap&#039;&#039;&#039; block &#039;&#039;&#039;encrypt&#039;&#039;&#039; ... filesystems ...)}}&lt;br /&gt;
&lt;br /&gt;
他に必要なフックについては [[dm-crypt/システム設定#mkinitcpio]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
設定後はイメージを再生成してください:&lt;br /&gt;
&lt;br /&gt;
 # mkinitcpio -p linux&lt;br /&gt;
&lt;br /&gt;
=== ブートローダーの設定 ===&lt;br /&gt;
暗号化された root パーティションを起動するには、ブートローダーに以下のカーネルパラメータを設定する必要があります ({{ic|&#039;&#039;&amp;lt;device-UUID&amp;gt;&#039;&#039;}} は {{ic|/dev/sdaX}} の UUID に置き換えてください。詳しくは[[永続的なブロックデバイスの命名]]を参照):&lt;br /&gt;
&lt;br /&gt;
 cryptdevice=UUID=&#039;&#039;&amp;lt;device-UUID&amp;gt;&#039;&#039;:cryptroot root=/dev/mapper/cryptroot&lt;br /&gt;
&lt;br /&gt;
他に必要なパラメータについては [[Dm-crypt/システム設定#ブートローダー]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
== LUKS を使用するパーティションに TPM2とセキュアブートを使用する ==&lt;br /&gt;
&lt;br /&gt;
この例は[[#LUKS を使用するシンプルなパーティションレイアウト]]と似ていますが、[[セキュアブート]]と[[Trusted Platform Module]] (TPM)を統合してブート時のセキュリティを強化します。&lt;br /&gt;
&lt;br /&gt;
この構成では[[EFI_システムパーティション]]が暗号化されずに残り、[[ユニファイドカーネルイメージ]]と[[systemd-boot]]が格納されます。これらは両方ともセキュアブートで使用するため暗号化されています。セキュアブートが無効になっていたり、キーデータベースが改ざんされている場合は、ロック解除に使用するキーをリリースしません。これは、WindowsのBitLockerやmacOSのFileVaultに似ています。TPMロック解除に問題(署名されていないブートローダやカーネルの更新、ファームウェアの更新等)が発生した場合、データにアクセスするための回復キーも作成されます。オプションで、起動時にTPM PINが必要になるように設定して完全に自動でロック解除されるのを防ぐこともできます。&lt;br /&gt;
&lt;br /&gt;
実行する前に[[Trusted Platform Module#LUKS による保存データの暗号化]]の説明と警告をよく読んでください。&lt;br /&gt;
&lt;br /&gt;
この例では[[systemd#GPTパーティションの自動マウント]]に従ってパーティションが作成されるため、fstabファイルやcrypttabファイルは必要ありません。&lt;br /&gt;
&lt;br /&gt;
{{Text art|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
+-----------------------+---------------------------------+&lt;br /&gt;
| EFI system partition  | LUKS encrypted root partition   |&lt;br /&gt;
|                       |                                 |&lt;br /&gt;
|                       |                                 |&lt;br /&gt;
| /boot                 | /                               |&lt;br /&gt;
|                       |                                 |&lt;br /&gt;
|                       | /dev/mapper/root                |&lt;br /&gt;
|                       |---------------------------------|&lt;br /&gt;
| /dev/sda1             | /dev/sda2                       |&lt;br /&gt;
+-----------------------+---------------------------------+&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;
パーティションを作成する前に[[dm-crypt/ドライブの準備]]で説明されているように、ディスクを安全に消去する重要性について理解しておく必要があります。&lt;br /&gt;
&lt;br /&gt;
[[パーティショニング#GUID_Partition_Table]] (GPT)で[[EFI システムパーティション]](この例では{{ic|/dev/sda1}})を適切なサイズで作成したあとに、その他の必要なパーティションを作成していきます。&lt;br /&gt;
&lt;br /&gt;
[[EFI システムパーティション]]は{{ic|/boot}}へマウントします。&lt;br /&gt;
&lt;br /&gt;
ドライブの残りのスペースに暗号化されたあとで{{ic|/dev/sda2}}にマウントされるルートパーティションを作成します。パーティションタイプのGUIDは{{ic|4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709}} ([[gdisk]]の場合は{{ic|8304}}、[[fdisk]]の場合は&amp;quot;Linux root (x86-64)&amp;quot;)に設定します。&lt;br /&gt;
&lt;br /&gt;
=== ルートパーティションの準備 ===&lt;br /&gt;
&lt;br /&gt;
次のコマンドでは暗号化されたルートパーティションの作成とマウントを行います。この手順は[[dm-crypt#LUKS モードの暗号化オプション]]の説明と対応しています。&lt;br /&gt;
&lt;br /&gt;
特定のデフォルトではない暗号化オプション(キーの長さやアルゴリズム)を使用する場合または、TPMベースの復号を使用しない場合は、最初のコマンドを実行する前に[[dm-crypt#LUKS モードの暗号化オプション]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
LUKSボリュームを作成(空のパスワードを使用してあとから変更することができます)し、{{ic|root}} という名前でオープンします。&lt;br /&gt;
&lt;br /&gt;
 # cryptsetup luksFormat /dev/sda2&lt;br /&gt;
 # cryptsetup open /dev/sda2 root&lt;br /&gt;
&lt;br /&gt;
次に、ファイルシステムを作成します:&lt;br /&gt;
&lt;br /&gt;
 # mkfs.ext4 /dev/mapper/root&lt;br /&gt;
&lt;br /&gt;
{{ic|/mnt}}へマウントします:&lt;br /&gt;
&lt;br /&gt;
 # mount /dev/mapper/root /mnt&lt;br /&gt;
&lt;br /&gt;
=== EFI システムパーティションの準備 ===&lt;br /&gt;
&lt;br /&gt;
新しく作成したEFIシステムパーティションを[[EFI システムパーティション#パーティションのフォーマット]]に従ってフォーマットし、{{ic|/mnt/boot}}へマウントします。&lt;br /&gt;
&lt;br /&gt;
 # mount --mkdir /dev/sda1 /mnt/boot&lt;br /&gt;
&lt;br /&gt;
[[インストールガイド#initramfs]]までセットアップを続行します。[[インストールガイド#Fstab]]はスキップすることができます。&lt;br /&gt;
&lt;br /&gt;
=== mkinitcpioを設定する ===&lt;br /&gt;
&lt;br /&gt;
[[mkinitcpio.conf]]の設定の{{ic|1=HOOKS=}}行を次のように設定します。順番が重要です:&lt;br /&gt;
&lt;br /&gt;
 HOOKS=(base &#039;&#039;&#039;systemd&#039;&#039;&#039; autodetect microcode modconf kms &#039;&#039;&#039;keyboard&#039;&#039;&#039; &#039;&#039;&#039;sd-vconsole&#039;&#039;&#039; block &#039;&#039;&#039;sd-encrypt&#039;&#039;&#039; filesystems fsck)&lt;br /&gt;
&lt;br /&gt;
次に[[ユニファイドカーネルイメージ#mkinitcpio]]を参照して、[[ユニファイドカーネルイメージ]]mkinitcpioを設定します。&lt;br /&gt;
&lt;br /&gt;
この時点では&#039;&#039;&#039;まだ&#039;&#039;&#039;initramfsを再生成&#039;&#039;&#039;しない&#039;&#039;&#039;でください。{{ic|/boot/EFI/Linux}}ディレクトリは、先にブートローダインストーラによって作成される必要があります。&lt;br /&gt;
&lt;br /&gt;
=== ブートローダのインストール ===&lt;br /&gt;
&lt;br /&gt;
ブートローダを使用せずにシステムを直接起動するように設定することができます。[[ユニファイドカーネルイメージ#UEFI から直接起動]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
ブートローダが必要な場合は[[systemd-boot]]のインストールを続行します。&lt;br /&gt;
&lt;br /&gt;
 # bootctl install&lt;br /&gt;
&lt;br /&gt;
mkinitcpioによって生成された[[ユニファイドカーネルイメージ]]は自動的に認識されるため{{ic|/boot/loader/entries}}にエントリは必要ありません。&lt;br /&gt;
&lt;br /&gt;
詳細な設定については[[systemd-boot#EFI ブートマネージャの更新]]と[[systemd-boot#ローダー設定]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== インストール完了 ===&lt;br /&gt;
&lt;br /&gt;
[[initramfs#イメージ作成とアクティベーション|initramfsを再生成]]し、イメージの作成が成功したことを確認します。&lt;br /&gt;
&lt;br /&gt;
[[インストールガイド#Root パスワード|パスワードの設定]]を忘れずに行ったあと再起動してください。&lt;br /&gt;
&lt;br /&gt;
=== セキュアブート ===&lt;br /&gt;
&lt;br /&gt;
[[セキュアブート]] を有効にするためにブートローダとEFIバイナリに署名ができるようになりました。手軽な手段については[[Unified_Extensible_Firmware_Interface/セキュアブート#sbctl でより簡単に行う]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== Enrolling the TPM ===&lt;br /&gt;
&lt;br /&gt;
ブートローダへ署名し、セキュアブートを有効化したあとにTPMを登録してLUKSボリュームのロックを解除できるようにします。次のコマンドは{{ic|luksFormat}}で作成されたからのパスフレーズを削除し、TPM [[Trusted Platform Module#PCR レジスタへのアクセス|PCR 7]] (デフォルトでは{{ic| Secure Boot State}}とファームウェア証明書)にバインドされたキーを作成し、問題が発生した場合に使用する回復キーを作成します。ブートチェーンが改ざんされない限り、TPMは自動的にキーをリリースします。[[systemd-cryptenroll#Trusted Platform Module]]および{{man|1|systemd-cryptenroll}}を参照してください。&lt;br /&gt;
&lt;br /&gt;
 # systemd-cryptenroll /dev/sda2 --recovery-key&lt;br /&gt;
 # systemd-cryptenroll /dev/sda2 --wipe-slot=empty --tpm2-device=auto&lt;br /&gt;
&lt;br /&gt;
{{Tip| {{ic|1=--tpm2-with-pin=yes}} を指定してブート時に追加のPINの入力を強制することができます。}}&lt;br /&gt;
{{Warning|&lt;br /&gt;
* PCR 7へバインドするときは[[セキュアブート]]がSetup ModeからUser Modeになっていることを確認してください。そうでないと、許可されていないブートデバイスが暗号化されたボリュームのロックを解除する可能性があります。&lt;br /&gt;
* ファームウェア証明書が変更されるとPCR 7の状態が変わる可能性があり、ユーザがロックアウトされるリスクがあります。これは、[[fwupd]][https://raw.githubusercontent.com/systemd/systemd/ed272a9ff59a26beedaab508dd3c9d631de67165/TODO] によって暗黙的に実行されるか、セキュアブートキーをローテーションすることによって明示的に実行されます。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== LVM on LUKS ==&lt;br /&gt;
&lt;br /&gt;
LVM の上に暗号化パーティションをセットアップするのではなく、暗号化パーティションの上に [[LVM]] をセットアップするほうが簡単です。技術的にはひとつの大きな暗号化ブロックデバイスの中に LVM をセットアップすることになります。LVM はブロックデバイスを解錠して、ボリュームをスキャンしてマウントされるまでは透過的ではなくなります。&lt;br /&gt;
&lt;br /&gt;
ディスクレイアウトの例:&lt;br /&gt;
 +-----------------------------------------------------------------------+ +----------------+&lt;br /&gt;
 | Logical volume1       | Logical volume2       | Logical volume3       | |                |&lt;br /&gt;
 |/dev/mapper/MyVol-swap |/dev/mapper/MyVol-root |/dev/mapper/MyVol-home | | Boot partition |&lt;br /&gt;
 |_ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _| | (may be on     |&lt;br /&gt;
 |                                                                       | | other device)  |&lt;br /&gt;
 |                        LUKS encrypted partition                       | |                |&lt;br /&gt;
 |                          /dev/sdaX                                    | | /dev/sdbY      |&lt;br /&gt;
 +-----------------------------------------------------------------------+ +----------------+&lt;br /&gt;
&lt;br /&gt;
{{Warning|この方法では論理ボリュームを複数のディスクに跨がらせることはできません。後で変更することも不可能です。[[#複数のパーティションの encrypt フックを修正]]を見てください。}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|Two variants of this setup: &lt;br /&gt;
* [[Dm-crypt/特記事項#リモート LUKS ヘッダーを使ってシステムを暗号化]]ではこのセットアップと USB デバイスのリモート LUKS ヘッダーを使って二段階認証を実現します。&lt;br /&gt;
* Instructions at [http://www.pavelkogan.com/2014/05/23/luks-full-disk-encryption/ Pavel Kogan&#039;s blog] show how to encrypt the {{ic|/boot}} partition while keeping it on the main LUKS partition when using GRUB.}} &lt;br /&gt;
&lt;br /&gt;
=== ディスクの準備 ===&lt;br /&gt;
&lt;br /&gt;
パーティションを作成する前に、[[Dm-crypt/ドライブの準備]] で説明されているように、ディスクを完全に消去する必要性・方法を学んでください。&lt;br /&gt;
&lt;br /&gt;
[[GPT]] で [[GRUB]] ブートローダーを使う時は、[[GRUB#BIOS システム]] で説明されているように BIOS Boot Partition を作成してください。&lt;br /&gt;
&lt;br /&gt;
{{ic|/boot}} にマウントするパーティションをタイプ {{ic|8300}} で容量 100 MB 以上にして作成します。&lt;br /&gt;
&lt;br /&gt;
タイプ {{ic|8E00}} のパーティションを作成してください。後で暗号化コンテナを入れます。&lt;br /&gt;
&lt;br /&gt;
&amp;quot;system&amp;quot; パーティションに LUKS 暗号化コンテナを作成してください。選んだパスワードを二回入力します。&lt;br /&gt;
&lt;br /&gt;
 # cryptsetup luksFormat /dev/&#039;&#039;sdaX&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
cryptsetup のオプションについては [[Dm-crypt/デバイスの暗号化#LUKS モードの暗号化オプション|LUKS 暗号化のオプション]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
コンテナを開いてください:&lt;br /&gt;
&lt;br /&gt;
 # cryptsetup open /dev/&#039;&#039;sdaX&#039;&#039; cryptolvm&lt;br /&gt;
&lt;br /&gt;
復号化されたコンテナが {{ic|/dev/mapper/cryptolvm}} から利用できるようになります。&lt;br /&gt;
&lt;br /&gt;
=== 論理ボリュームの準備 ===&lt;br /&gt;
開いた LUKS コンテナの上に物理ボリュームを作成:&lt;br /&gt;
&lt;br /&gt;
 # pvcreate /dev/mapper/cryptolvm&lt;br /&gt;
&lt;br /&gt;
{{ic|MyVol}} という名前のボリュームグループを作成して、先に作成した物理ボリュームを追加:&lt;br /&gt;
&lt;br /&gt;
 # vgcreate MyVol /dev/mapper/cryptolvm&lt;br /&gt;
&lt;br /&gt;
ボリュームグループに論理ボリュームを作成:&lt;br /&gt;
&lt;br /&gt;
 # lvcreate -L 8G MyVol -n swap&lt;br /&gt;
 # lvcreate -L 15G MyVol -n root&lt;br /&gt;
 # lvcreate -l 100%FREE MyVol -n home&lt;br /&gt;
&lt;br /&gt;
論理ボリュームのファイルシステムをフォーマット:&lt;br /&gt;
&lt;br /&gt;
 # mkfs.ext4 /dev/mapper/MyVol-root&lt;br /&gt;
 # mkfs.ext4 /dev/mapper/MyVol-home&lt;br /&gt;
 # mkswap /dev/mapper/MyVol-swap&lt;br /&gt;
&lt;br /&gt;
ファイルシステムをマウント:&lt;br /&gt;
&lt;br /&gt;
 # mount /dev/mapper/MyVol-root /mnt&lt;br /&gt;
 # mkdir /mnt/home&lt;br /&gt;
 # mount /dev/mapper/MyVol-home /mnt/home&lt;br /&gt;
 # swapon /dev/mapper/MyVol-swap&lt;br /&gt;
&lt;br /&gt;
=== boot パーティションの準備 ===&lt;br /&gt;
ブートローダーは {{ic|/boot}} ディレクトリから、カーネルや [[initramfs]]、あるいはブートローダーの設定ファイルをロードします。このディレクトリは暗号化されていない別のファイルシステム上に配置する必要があります。&lt;br /&gt;
&lt;br /&gt;
{{ic|/boot}} にするパーティションに Ext2 ファイルシステムを作成します。ブートローダーが読み込めるファイルシステムなら何でもかまいません。&lt;br /&gt;
&lt;br /&gt;
 # mkfs.ext2 /dev/&#039;&#039;sdbY&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{ic|/mnt/boot}} ディレクトリを作成:&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/boot&lt;br /&gt;
&lt;br /&gt;
パーティションを {{ic|/mnt/boot}} にマウント:&lt;br /&gt;
&lt;br /&gt;
 # mount /dev/&#039;&#039;sdbY&#039;&#039; /mnt/boot&lt;br /&gt;
&lt;br /&gt;
インストールの手順を mkinitcpio の設定まで進めてください。&lt;br /&gt;
&lt;br /&gt;
=== mkinitcpio の設定 ===&lt;br /&gt;
{{ic|keyboard}}, {{ic|encrypt}}, {{ic|lvm2}} フックを [[mkinitcpio|mkinitcpio.conf]] 内の {{ic|filesystems}} の前に追加します:&lt;br /&gt;
{{hc|/etc/mkinitcpio.conf|2=HOOKS=(... &#039;&#039;&#039;keyboard&#039;&#039;&#039; &#039;&#039;&#039;keymap&#039;&#039;&#039; block &#039;&#039;&#039;encrypt&#039;&#039;&#039; &#039;&#039;&#039;lvm2&#039;&#039;&#039; ... filesystems ...)}}&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|lvm2}} の最新実装ではフックの順番は特に意味を持ちません。}}&lt;br /&gt;
&lt;br /&gt;
他に必要なフックについては [[dm-crypt/システム設定#mkinitcpio]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
設定後はイメージを再生成してください:&lt;br /&gt;
&lt;br /&gt;
 # mkinitcpio -p linux&lt;br /&gt;
&lt;br /&gt;
=== ブートローダーの設定 ===&lt;br /&gt;
起動時に暗号化された root パーティションの暗号化が解除されるように、以下のカーネルパラメータをブートローダーで設定します ({{ic|&#039;&#039;&amp;lt;device-UUID&amp;gt;&#039;&#039;}} は {{ic|/dev/sdaX}} の UUID に置き換えてください。詳しくは[[永続的なブロックデバイスの命名]]を参照):&lt;br /&gt;
&lt;br /&gt;
 cryptdevice=UUID=&#039;&#039;device-UUID&#039;&#039;:cryptolvm root=/dev/mapper/MyVol-root&lt;br /&gt;
&lt;br /&gt;
詳しくは [[Dm-crypt/システム設定#ブートローダー]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
== LUKS on LVM ==&lt;br /&gt;
&lt;br /&gt;
[[LVM]] 上で暗号化を利用するには、まず LVM ボリュームをセットアップして、それから暗号化パーティションのベースとして使うことになります。この方法では、暗号化パーティションと非暗号化パーティションのミックスが可能です。&lt;br /&gt;
&lt;br /&gt;
{{Tip|[[#LVM on LUKS]] とは違って、複数のディスクにまたがる論理ボリュームを通常通り使うことができます。}}&lt;br /&gt;
&lt;br /&gt;
以下の短い例では LUKS on LVM 構成を作成して、/home パーティションでキーファイルを使用して {{ic|/tmp}} と {{ic|/swap}} の一時的な暗号化ボリュームを混ぜ合わせます。機密データを含む一時データが再起動しても残ってしまう可能性がないため、セキュリティ的に優れています。論理ボリュームを複数のディスクにまたがるようにしたい場合、手順は [[Dm-crypt/特記事項#LVM を複数のディスクに拡張]]で説明しています。&lt;br /&gt;
&lt;br /&gt;
=== ディスクの準備 ===&lt;br /&gt;
&lt;br /&gt;
パーティションスキーム:&lt;br /&gt;
 +----------------+-----------------------------------------------------------------------+&lt;br /&gt;
 |                | LUKS encrypted volume | LUKS encrypted volume | LUKS encrypted volume |&lt;br /&gt;
 |                | /dev/mapper/swap      | /dev/mapper/root      | /dev/mapper/home      |&lt;br /&gt;
 |                |_ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _|&lt;br /&gt;
 |                | Logical volume1       | Logical volume2       | Logical volume3       |&lt;br /&gt;
 |                |/dev/mapper/MyVol-swap |/dev/mapper/MyVol-root |/dev/mapper/MyVol-home |&lt;br /&gt;
 |                |_ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _|&lt;br /&gt;
 | Boot partition |                                                                       |&lt;br /&gt;
 |   /dev/sda1    |                               /dev/sda2                               |&lt;br /&gt;
 +----------------+-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
[[Dm-crypt/ドライブの準備#dm-crypt で空のディスクまたはパーティションを消去]]を見て {{ic|/dev/sda2}} をランダム化してください。&lt;br /&gt;
&lt;br /&gt;
=== 論理ボリュームの準備 ===&lt;br /&gt;
&lt;br /&gt;
 # pvcreate /dev/sda2&lt;br /&gt;
 # vgcreate MyVol /dev/sda2&lt;br /&gt;
 # lvcreate -L 10G -n lvroot MyVol&lt;br /&gt;
 # lvcreate -L 500M -n swap MyVol&lt;br /&gt;
 # lvcreate -L 500M -n tmp MyVol&lt;br /&gt;
 # lvcreate -l 100%FREE -n home MyVol&lt;br /&gt;
&lt;br /&gt;
 # cryptsetup luksFormat -c aes-xts-plain64 -s 512 /dev/mapper/MyVol-lvroot&lt;br /&gt;
 # cryptsetup open /dev/mapper/MyVol-lvroot root&lt;br /&gt;
 # mkfs.ext4 /dev/mapper/root&lt;br /&gt;
 # mount /dev/mapper/root /mnt&lt;br /&gt;
&lt;br /&gt;
この例では {{ic|/home}} は[[#論理ボリューム /home の暗号化|後で]]暗号化します。Arch-ISO から暗号化したルートにアクセスする必要がある場合、上記の {{ic|open}} アクションで [[LVM#論理ボリュームが表示されない|LVM を表示]]した後にアクセスできます。&lt;br /&gt;
&lt;br /&gt;
=== boot パーティションの準備 ===&lt;br /&gt;
 # dd if=/dev/zero of=/dev/sda1 bs=1M status=progress&lt;br /&gt;
 # mkfs.ext4 /dev/sda1&lt;br /&gt;
 # mkdir /mnt/boot&lt;br /&gt;
 # mount /dev/sda1 /mnt/boot&lt;br /&gt;
&lt;br /&gt;
暗号化した LVM のパーティションを設定したら、インストールを行ってください: [[インストールガイド#パーティションのマウント|Arch Install Scripts]]。&lt;br /&gt;
&lt;br /&gt;
=== mkinitcpio の設定 ===&lt;br /&gt;
&lt;br /&gt;
{{ic|encrypt}} と {{ic|lvm2}} フックを [[mkinitcpio|mkinitcpio.conf]] 内の {{ic|filesystems}} の前に追加します:&lt;br /&gt;
{{hc|/etc/mkinitcpio.conf|2=HOOKS=(... &#039;&#039;&#039;keyboard&#039;&#039;&#039; &#039;&#039;&#039;keymap&#039;&#039;&#039; block &#039;&#039;&#039;lvm2&#039;&#039;&#039; &#039;&#039;&#039;encrypt&#039;&#039;&#039; ... filesystems ...)}}&lt;br /&gt;
&lt;br /&gt;
他に必要なフックについては [[dm-crypt/システム設定#mkinitcpio]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
設定ファイルを変更した後は次のコマンドを root 権限で実行してください:&lt;br /&gt;
&lt;br /&gt;
 # mkinitcpio -p linux&lt;br /&gt;
&lt;br /&gt;
=== ブートローダーの設定 ===&lt;br /&gt;
&lt;br /&gt;
上の例の場合、ブートローダーの設定で root デバイスのカーネルオプションを以下のように変更します:&lt;br /&gt;
 cryptdevice=/dev/mapper/MyVol-lvroot:root root=/dev/mapper/root&lt;br /&gt;
詳しくは [[Dm-crypt/システム設定#ブートローダー]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== fstab と crypttab の設定 ===&lt;br /&gt;
{{hc|/etc/fstab|&lt;br /&gt;
 /dev/mapper/root        /       ext4            defaults        0       1&lt;br /&gt;
 /dev/sda1               /boot   ext4            defaults        0       2&lt;br /&gt;
 /dev/mapper/tmp         /tmp    tmpfs           defaults        0       0&lt;br /&gt;
 /dev/mapper/swap        none    swap            sw              0       0}}&lt;br /&gt;
以下の [[Dm-crypt/システム設定#crypttab|crypttab]] オプションは再起動するたびに一時ファイルシステムを暗号化します:&lt;br /&gt;
{{hc|/etc/crypttab|&lt;br /&gt;
swap	/dev/mapper/MyVol-swap	/dev/urandom	swap,cipher&amp;lt;nowiki&amp;gt;=aes-xts-plain64,size=&amp;lt;/nowiki&amp;gt;256&lt;br /&gt;
tmp	/dev/mapper/MyVol-tmp	/dev/urandom	tmp,cipher&amp;lt;nowiki&amp;gt;=aes-xts-plain64,size=&amp;lt;/nowiki&amp;gt;256&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== 論理ボリューム /home の暗号化 ===&lt;br /&gt;
Since this scenario uses LVM as the primary and dm-crypt as secondary mapper, each encrypted logical volume requires its own encryption. Yet, unlike the temporary filesystems configured with volatile encryption above, the logical volume for {{ic|/home}} should be persistent, of course. The following assumes you have rebooted into the installed system, otherwise you have to adjust paths.&lt;br /&gt;
To safe on entering a second passphrase at boot for it, a [[Dm-crypt/デバイスの暗号化#キーファイル|keyfile]] is created: &lt;br /&gt;
 # mkdir -m 700 /etc/luks-keys&lt;br /&gt;
 # dd if=/dev/random of=/etc/luks-keys/home bs=1 count=256 status=progress&lt;br /&gt;
&lt;br /&gt;
論理ボリュームは以下のように暗号化します:&lt;br /&gt;
 # cryptsetup luksFormat -v -s 512 /dev/mapper/MyVol-home /etc/luks-keys/home&lt;br /&gt;
 # cryptsetup -d /etc/luks-keys/home open /dev/mapper/MyVol-home home&lt;br /&gt;
 # mkfs.ext4 /dev/mapper/home&lt;br /&gt;
 # mount /dev/mapper/home /home&lt;br /&gt;
暗号化されたマウントは [[Dm-crypt/システム設定#crypttab|crypttab]] で設定します:&lt;br /&gt;
{{hc|/etc/crypttab|&lt;br /&gt;
home /dev/mapper/MyVol-home  /etc/luks-keys/home}}&lt;br /&gt;
{{hc|/etc/fstab|&lt;br /&gt;
/dev/mapper/home        /home  ext4        defaults        0      2}}&lt;br /&gt;
これでセットアップは完了です。&lt;br /&gt;
&lt;br /&gt;
If you want to expand the logical volume for {{ic|/home}} (or any other volume) at a later point, it is important to note that the LUKS encrypted part has to be resized as well. For a procedure see [[Dm-crypt/特記事項#LVM を複数のディスクに拡張]].&lt;br /&gt;
&lt;br /&gt;
== ソフトウェア RAID と LUKS ==&lt;br /&gt;
&lt;br /&gt;
以下の例では同じ容量の SSD を2台とストレージ用の HDD を搭載したワークステーション向けノートパソコンの設定を元にしています。最終的には LUKS ベースの ({{ic|/boot}} を含む) 完全ディスク暗号化を実現し、SSD は [[RAID|RAID0]] アレイにして、起動時に [[GRUB]] にパスフレーズを指定した後にキーファイルで暗号化を解除します。SSD の [[TRIM]] のサポートは有効にしますが、[[Dm-crypt/特記事項#ソリッドステートドライブ (SSD) の Discard/TRIM のサポート]]も読むと良いでしょう。&lt;br /&gt;
&lt;br /&gt;
非常にシンプルなパーティションスキームを使用し、RAID ストレージは全て {{ic|/}} にマウントして ({{ic|/boot}} パーティションは分割しません)、HDD は {{ic|/mnt/data}} にマウントします。システムは BIOS モードで起動し [[パーティショニング|GPT]] でパーティショニングします。&lt;br /&gt;
&lt;br /&gt;
定期的に[[バックアップ]]を取ることが非常に重要です。SSD のどちらかが故障すると、RAID アレイに保存されていたデータは復元できなくなります。耐障害性が大事なのであれば [[RAID#通常の RAID レベル|RAID レベル]]を慎重に選択してください。&lt;br /&gt;
&lt;br /&gt;
The encryption is not deniable in this setup.&lt;br /&gt;
&lt;br /&gt;
For the sake of the instructions below, the following block devices are used:&lt;br /&gt;
 /dev/sda = first SSD&lt;br /&gt;
 /dev/sdb = second SSD&lt;br /&gt;
 /dev/sdc = HDD&lt;br /&gt;
Be sure to substitue them with the appropriate device designations for your setup, as they may be different.&lt;br /&gt;
&lt;br /&gt;
=== ディスクの準備 ===&lt;br /&gt;
&lt;br /&gt;
パーティションを作成する前に、[[Dm-crypt/ドライブの準備]]に書かれているようにディスクの完全消去について考慮してください。&lt;br /&gt;
&lt;br /&gt;
[[GRUB]] ブートローダーを [[GPT]] で使用する場合、[[GRUB#BIOS システム]]に書かれているように BIOS Boot Partition を作成する必要があります。例として {{ic|/dev/sda1}} に &amp;quot;BIOS boot&amp;quot; の 1M パーティションを作成して、残りの空き容量は全て &amp;quot;Linux RAID&amp;quot; として {{ic|/dev/sda2}} にパーティションします。&lt;br /&gt;
&lt;br /&gt;
{{ic|/dev/sda}} にパーティションを作成したら以下のコマンドを使って {{ic|/dev/sdb}} に複製:&lt;br /&gt;
 # sfdisk -d /dev/sda &amp;gt; sda.dump&lt;br /&gt;
 # sfdisk /dev/sdb &amp;lt; sda.dump&lt;br /&gt;
&lt;br /&gt;
The HDD is prepared with a single Linux partition covering the whole drive at {{ic|/dev/sdc1}}.&lt;br /&gt;
&lt;br /&gt;
=== RAID アレイの構築 ===&lt;br /&gt;
&lt;br /&gt;
Create the RAID array for the SSDs. This example utilizes RAID0, you may wish to substitute a different level based on your preferences or requirements. &lt;br /&gt;
 # mdadm --create --verbose --level=0 --metadata=1.2 --raid-devices=2 /dev/md0 /dev/sda2 /dev/sdb2&lt;br /&gt;
&lt;br /&gt;
=== ブロックデバイスの準備 ===&lt;br /&gt;
&lt;br /&gt;
[[Dm-crypt/ドライブの準備]]に書かれているように {{ic|/dev/zero}} を使ってデバイスを消去してからランダムなキーでデバイスを暗号化してください。もしくは {{ic|dd}} で {{ic|/dev/random}} や {{ic|/dev/urandom}} を使うこともできます:&lt;br /&gt;
 # cryptsetup open --type plain /dev/md0 container --key-file /dev/random&lt;br /&gt;
 # dd if=/dev/zero of=/dev/mapper/container bs=1M status=progress&lt;br /&gt;
 # cryptsetup close container&lt;br /&gt;
&lt;br /&gt;
And repeat above for the HDD ({{ic|/dev/sdc1}} in this example).&lt;br /&gt;
&lt;br /&gt;
Set up encryption for {{ic|/dev/md0}}:&lt;br /&gt;
 # cryptsetup -y -v luksFormat -c aes-xts-plain64 -s 512 /dev/md0&lt;br /&gt;
 # cryptsetup open /dev/md0 cryptroot&lt;br /&gt;
 # mkfs.ext4 /dev/mapper/cryptroot&lt;br /&gt;
 # mount /dev/mapper/cryptroot /mnt&lt;br /&gt;
&lt;br /&gt;
And repeat for the HDD:&lt;br /&gt;
 # cryptsetup -y -v luksFormat -c aes-xts-plain64 -s 512 /dev/sdc1&lt;br /&gt;
 # cryptsetup open /dev/sdc1 cryptdata&lt;br /&gt;
 # mkfs.ext4 /dev/mapper/cryptdata&lt;br /&gt;
 # mkdir -p /mnt/mnt/data&lt;br /&gt;
 # mount /dev/mapper/cryptdata /mnt/mnt/data&lt;br /&gt;
&lt;br /&gt;
=== ブートローダーの設定 ===&lt;br /&gt;
&lt;br /&gt;
Configure [[GRUB]] for the encrypted system by editing {{ic|/etc/default/grub}} with the following. Note that the {{ic|:allow-discards}} option enables TRIM support on the SSDs, if you do not wish to use it you should omit this.&lt;br /&gt;
 GRUB_CMDLINE_LINUX=&amp;quot;cryptdevice=/dev/md0:cryptroot:allow-discards root=/dev/mapper/cryptroot&amp;quot;&lt;br /&gt;
 GRUB_ENABLE_CRYPTODISK=y&lt;br /&gt;
&lt;br /&gt;
詳しくは [[Dm-crypt/システム設定#ブートローダー]]や [[GRUB#暗号化された /boot]]を見てください。&lt;br /&gt;
&lt;br /&gt;
Complete the GRUB install to both SSDs (in reality, installing only to {{ic|/dev/sda}} will work).&lt;br /&gt;
 # grub-install --target=i386-pc /dev/sda&lt;br /&gt;
 # grub-install --target=i386-pc /dev/sdb&lt;br /&gt;
 # grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
=== キーファイルの作成 ===&lt;br /&gt;
&lt;br /&gt;
システムの起動時にパスフレーズを二回入力する手間を省く設定です。[[dm-crypt/デバイスの暗号化#キーファイル|キーファイル]]を作成して initramfs イメージに追加することで encrypt フックでルートデバイスを解除できるようにします。詳しくは [[dm-crypt/デバイスの暗号化#キーファイルを initramfs に埋め込む]] を参照。&lt;br /&gt;
&lt;br /&gt;
* [[dm-crypt/デバイスの暗号化#キーファイル|キーファイル]]を作成して {{ic|/dev/md0}} にキーを追加。&lt;br /&gt;
* HDD ({{ic|/dev/sdc1}}) のキーファイルを作成することで起動時に解錠が可能です。上記で作成したパスフレーズは残すことで後で必要になったときに復旧が簡単です。{{ic|/etc/crypttab}} を編集して起動時に HDD を復号化してください。詳しくは [[dm-crypt/デバイスの暗号化#起動時にロックを解除]]を参照。&lt;br /&gt;
&lt;br /&gt;
=== システムの設定 ===&lt;br /&gt;
&lt;br /&gt;
[[fstab|/etc/fstab]] を編集して cryptroot と cryptdata ブロックデバイスをマウントしてください。TRIM のサポートを有効にしなかった場合、{{ic|discard}} マウントオプションは削除してください:&lt;br /&gt;
&lt;br /&gt;
 /dev/mapper/cryptroot  /           ext4    rw,noatime,discard  0   1 &lt;br /&gt;
 /dev/mapper/cryptdata  /mnt/data   ext4    defaults            0   2  &lt;br /&gt;
&lt;br /&gt;
RAID の設定を保存:&lt;br /&gt;
&lt;br /&gt;
 # mdadm --detail --scan &amp;gt; /etc/mdadm.conf &lt;br /&gt;
&lt;br /&gt;
[[mkinitcpio.conf]] を編集してキーファイルを適切なフックを追加してください:&lt;br /&gt;
&lt;br /&gt;
 FILES=(/crypto_keyfile.bin)&lt;br /&gt;
 HOOKS=( ... &#039;&#039;&#039;keyboard&#039;&#039;&#039; &#039;&#039;&#039;keymap&#039;&#039;&#039; block &#039;&#039;&#039;mdadm_udev&#039;&#039;&#039; &#039;&#039;&#039;encrypt&#039;&#039;&#039; filesystems ... )&lt;br /&gt;
&lt;br /&gt;
詳しくは [[dm-crypt/システム設定#mkinitcpio]] を参照。&lt;br /&gt;
&lt;br /&gt;
== Plain dm-crypt ==&lt;br /&gt;
&lt;br /&gt;
Contrary to LUKS, dm-crypt &#039;&#039;plain&#039;&#039; mode does not require a header on the encrypted device: this scenario exploits this feature to set up a system on an unpartitioned, encrypted disk that will be indistinguishable from a disk filled with random data, which could allow [[Wikipedia:Deniable encryption|deniable encryption]]. See also [[wikipedia:Disk encryption#Full disk encryption]].&lt;br /&gt;
&lt;br /&gt;
Note that if full-disk encryption is not required, the methods using LUKS described in the sections above are better options for both system encryption and encrypted partitions. LUKS features like key management with multiple passphrases/key-files or re-encrypting a device in-place are unavailable with &#039;&#039;plain&#039;&#039; mode.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Plain&#039;&#039; dm-crypt encryption can be more resilient to damage than LUKS encrypted disks, because it does not rely on an encryption master-key which can be a single-point of failure if damaged. However, using &#039;&#039;plain&#039;&#039; mode also requires more manual configuration of encryption options to achieve the same cryptographic strength. See also [[ディスク暗号化#暗号メタデータ]]. Using &#039;&#039;plain&#039;&#039; mode could also be considered if concerned with the problems explained in [[Dm-crypt/特記事項#ソリッドステートドライブ (SSD) の Discard/TRIM のサポート]].&lt;br /&gt;
&lt;br /&gt;
{{Tip|If headerless encryption is your goal but you are unsure about the lack of key-derivation with &#039;&#039;plain&#039;&#039; mode, then two alternatives are:&lt;br /&gt;
* dm-crypt LUKS mode by using the &#039;&#039;cryptsetup&#039;&#039; {{ic|--header}} option. It cannot be used with the standard &#039;&#039;encrypt&#039;&#039; hook, but the hook [[Dm-crypt/特記事項#リモート LUKS ヘッダーを使ってシステムを暗号化|may be modified]].&lt;br /&gt;
* [[tcplay]] which offers headerless encryption but with the PBKDF2 function.}}&lt;br /&gt;
&lt;br /&gt;
このシナリオでは2つの USB スティックを使います:&lt;br /&gt;
* one for the boot device, which also allows storing the options required to open/unlock the plain encrypted device in the boot loader configuration, since typing them on each boot would be error prone;&lt;br /&gt;
* another for the encryption key file, assuming it stored as raw bits so that to the eyes of an unaware attacker who might get the usbkey the encryption key will appear as random data instead of being visible as a normal file. See also [[Wikipedia:Security through obscurity]], follow [[Dm-crypt/デバイスの暗号化#キーファイル]] to prepare the keyfile.&lt;br /&gt;
&lt;br /&gt;
 |--------------------+------------------+--------------------+ +---------------+ +---------------+&lt;br /&gt;
 |Volume 1:           |Volume 2:         |Volume 3:           | |Boot device    | |Encryption key |&lt;br /&gt;
 |                    |                  |                    | |               | |file storage   |&lt;br /&gt;
 |root                |swap              |home                | |/boot          | |(unpartitioned |&lt;br /&gt;
 |                    |                  |                    | |               | |in example)    |&lt;br /&gt;
 |/dev/store/root     |/dev/store/swap   |/dev/store/home     | |/dev/sdY1      | |/dev/sdZ       |&lt;br /&gt;
 |--------------------+------------------+--------------------| |---------------| |---------------|&lt;br /&gt;
 |disk drive /dev/sdaX encrypted using plain mode and LVM     | |USB stick 1    | |USB stick 2    |&lt;br /&gt;
 +------------------------------------------------------------+ +---------------+ +---------------+&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* It is also possible to use a single usb key by copying the keyfile to the initram directly. An example keyfile {{ic|/etc/keyfile}} gets copied to the initram image by setting {{ic|1=FILES=(/etc/keyfile)}} in {{ic|/etc/mkinitcpio.conf}}. The way to instruct the {{ic|encrypt}} hook to read the keyfile in the initram image is using {{ic|rootfs:}} prefix before the filename, e.g. {{ic|cryptkey&amp;amp;#61;rootfs:/etc/keyfile}}.&lt;br /&gt;
* [[ディスク暗号化#強固なパスフレーズの選択|エントロピー]]が十分なパスフレーズを使用するという選択肢も存在します。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== ディスクの準備 ===&lt;br /&gt;
&lt;br /&gt;
It is vital that the mapped device is filled with data. In particular this applies to the scenario usecase we apply here. &lt;br /&gt;
&lt;br /&gt;
[[Dm-crypt/ドライブの準備]] や [[Dm-crypt/ドライブの準備#dm-crypt 固有の方法]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== boot 以外のパーティションの準備 ===&lt;br /&gt;
&lt;br /&gt;
詳しくは [[Dm-crypt/デバイスの暗号化#plain モードの暗号化オプション]] を参照。&lt;br /&gt;
&lt;br /&gt;
Using the device {{ic|/dev/sd&#039;&#039;X&#039;&#039;}}, with the twofish-xts cipher with a 512 bit key size and using a keyfile we have the following options for this scenario:&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;# cryptsetup --hash=sha512 --cipher=twofish-xts-plain64 --offset=0 --key-file=&amp;lt;/nowiki&amp;gt;/dev/sd&#039;&#039;Z&#039;&#039; &amp;lt;nowiki&amp;gt;--key-size=512 open --type=plain /dev/sdX enc&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
Unlike encrypting with LUKS, the above command must be executed &#039;&#039;in full&#039;&#039; whenever the mapping needs to be re-established, so it is important to remember the cipher, hash and key file details. &lt;br /&gt;
&lt;br /&gt;
We can now check a mapping entry has been made for {{ic|/dev/mapper/enc}}:&lt;br /&gt;
 # fdisk -l&lt;br /&gt;
&lt;br /&gt;
Next, we setup [[LVM]] logical volumes on the mapped device, see [[LVM#Arch Linux を LVM にインストールする]] for further details: &lt;br /&gt;
 # pvcreate /dev/mapper/enc&lt;br /&gt;
 # vgcreate store /dev/mapper/enc&lt;br /&gt;
 # lvcreate -L 20G store -n root&lt;br /&gt;
 # lvcreate -L 10G store -n swap&lt;br /&gt;
 # lvcreate -l +100%FREE store -n home&lt;br /&gt;
論理ボリュームをフォーマットしてマウントします。詳しくは[[ファイルシステム#デバイスのフォーマット]]を見て下さい &lt;br /&gt;
 # mkfs.ext4 /dev/store/root&lt;br /&gt;
 # mkfs.ext4 /dev/store/home&lt;br /&gt;
 # mount /dev/store/root /mnt&lt;br /&gt;
 # mkdir /mnt/home&lt;br /&gt;
 # mount /dev/store/home /mnt/home&lt;br /&gt;
 # mkswap /dev/store/swap&lt;br /&gt;
 # swapon /dev/store/swap&lt;br /&gt;
&lt;br /&gt;
=== boot パーティションの準備 ===&lt;br /&gt;
必要であれば、USB スティックの vfat パーティションに {{ic|/boot}} パーティションをインストールできます。ただし、手動のパーティションが必要な場合、小さな 200MB のパーティションで十分です。お好きな [[パーティショニング#パーティショニングツール|パーティションツール]]を使ってパーティションを作成してください。&lt;br /&gt;
&lt;br /&gt;
vfat でフォーマットされていない場合、{{ic|/boot}} パーティションのフラッシュメモリを保護するため非ジャーナリングファイルシステムを選択します:&lt;br /&gt;
 # mkfs.ext2 /dev/sd&#039;&#039;Y&#039;&#039;1&lt;br /&gt;
 # mkdir /mnt/boot&lt;br /&gt;
 # mount /dev/sd&#039;&#039;Y&#039;&#039;1 /mnt/boot&lt;br /&gt;
&lt;br /&gt;
=== mkinitcpio の設定 ===&lt;br /&gt;
&lt;br /&gt;
{{ic|keyboard}}, {{ic|encrypt}}, {{ic|lvm2}} フックを [[mkinitcpio|mkinitcpio.conf]] 内の {{ic|filesystems}} の前に追加します:&lt;br /&gt;
{{hc|etc/mkinitcpio.conf|2=HOOKS=(... &#039;&#039;&#039;keyboard&#039;&#039;&#039; &#039;&#039;&#039;keymap&#039;&#039;&#039; block &#039;&#039;&#039;encrypt&#039;&#039;&#039; &#039;&#039;&#039;lvm2&#039;&#039;&#039; ... filesystems ...)}}&lt;br /&gt;
&lt;br /&gt;
他に必要なフックについては [[dm-crypt/システム設定#mkinitcpio]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
設定後はイメージを再生成してください:&lt;br /&gt;
&lt;br /&gt;
 # mkinitcpio -p linux&lt;br /&gt;
&lt;br /&gt;
=== ブートローダーの設定 ===&lt;br /&gt;
&lt;br /&gt;
暗号化した root パーティションを起動するには、以下のカーネルパラメータをブートローダーで設定する必要があります:&lt;br /&gt;
&lt;br /&gt;
 cryptdevice=/dev/sd&#039;&#039;X&#039;&#039;:enc cryptkey=/dev/sd&#039;&#039;Z&#039;&#039;:0:512 crypto=sha512:twofish-xts-plain64:512:0:&lt;br /&gt;
&lt;br /&gt;
{{Note|encrypt の代わりに sd-encrypt を使用する場合、cryptdevice の代わりに {{ic|&#039;&#039;luks.uuid&#039;&#039;}} を使ってください。詳しくは &#039;&#039;systemd-cryptsetup-generator(8)&#039;&#039; を参照。}}&lt;br /&gt;
&lt;br /&gt;
他に必要なパラメータについては [[Dm-crypt/システム設定#ブートローダー]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
{{Tip|GRUB を使用する場合、次のコマンドを使うことで {{ic|/boot}} パーティションと同じ USB にインストールすることができます:&lt;br /&gt;
 # grub-install --recheck /dev/sd&#039;&#039;Y&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===インストール後===&lt;br /&gt;
&lt;br /&gt;
起動後に USB スティックは取り除けます。{{ic|/boot}} パーティションは通常は必要ないため、{{ic|noauto}} オプションを {{ic|/etc/fstab}} に追加できます:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/fstab|&lt;br /&gt;
# /dev/sd&#039;&#039;Yn&#039;&#039;&lt;br /&gt;
/dev/sd&#039;&#039;Yn&#039;&#039; /boot ext2 &#039;&#039;&#039;noauto&#039;&#039;&#039;,rw,noatime 0 2}}&lt;br /&gt;
&lt;br /&gt;
ただしカーネルやブートローダーのアップグレードが必要なときは、{{ic|/boot}} パーティションがマウントされていなければなりません。{{ic|fstab}} に既にエントリが存在すれば、次のコマンドでマウントできます:&lt;br /&gt;
&lt;br /&gt;
 # mount /boot&lt;br /&gt;
&lt;br /&gt;
== boot パーティションの暗号化 (GRUB) ==&lt;br /&gt;
&lt;br /&gt;
このセットアップでは [[#LVM on LUKS]] セクションと同じパーティションレイアウト・設定でシステムのルートパーティションを設定しますが、違いが2つあります:&lt;br /&gt;
&lt;br /&gt;
# セットアップは [[UEFI]] 環境で行います。&lt;br /&gt;
# [[GRUB]] ブートローダーの特殊機能を使用してブートパーティション {{ic|/boot}} も暗号化します。[[GRUB#暗号化された /boot]]を見てください。&lt;br /&gt;
&lt;br /&gt;
ディスクレイアウトは以下のようになります:&lt;br /&gt;
&lt;br /&gt;
 +---------------+----------------+----------------+----------------+----------------+&lt;br /&gt;
 |ESP partition: |Boot partition: |Volume 1:       |Volume 2:       |Volume 3:       |&lt;br /&gt;
 |               |                |                |                |                |&lt;br /&gt;
 |/boot/efi      |/boot           |root            |swap            |home            |&lt;br /&gt;
 |               |                |                |                |                |&lt;br /&gt;
 |               |                |/dev/store/root |/dev/store/swap |/dev/store/home |&lt;br /&gt;
 |/dev/sdaX      |/dev/sdaY       +----------------+----------------+----------------+&lt;br /&gt;
 |&#039;&#039;&#039;un&#039;&#039;&#039;encrypted    |LUKS encrypted  |/dev/sdaZ encrypted using LVM on LUKS             |&lt;br /&gt;
 +---------------+----------------+--------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
{{Tip|All scenarios are intended as examples. It is, of course, possible to apply both of the two above distinct installation steps with the other scenarios as well. See also the variants linked in [[#LVM on LUKS]].}}&lt;br /&gt;
{{Note|{{AUR|cryptboot}} パッケージの {{ic|cryptboot}} スクリプトを使うことで暗号化された boot の管理 (マウント・アンマウント・パッケージのアップグレード) を簡単にできます。また、[[セキュアブート#自分で署名した鍵を使う|UEFI Secure Boot]] を使用して [https://www.schneier.com/blog/archives/2009/10/evil_maid_attac.html 悪意あるメイド] 攻撃から身を守ることができます。詳しくは [https://github.com/xmikos/cryptboot cryptboot のプロジェクトページ] を参照。}}&lt;br /&gt;
&lt;br /&gt;
=== ディスクの準備 ===&lt;br /&gt;
&lt;br /&gt;
パーティションを作成する前に、[[Dm-crypt/ドライブの準備]]に書かれているように、ディスクを完全に消去するようにしてください。&lt;br /&gt;
&lt;br /&gt;
[[Unified_Extensible_Firmware_Interface#EFI_System_Partition|EFI System Partition (ESP)]] を適当な容量で作成してください。後で {{ic|/boot/efi}} にマウントします。&lt;br /&gt;
&lt;br /&gt;
{{ic|/boot}} にマウントするパーティションをタイプ {{ic|8300}} の容量 100 MB 以上で作成します。&lt;br /&gt;
&lt;br /&gt;
{{Tip|BIOS/[[GPT]] で [[GRUB]] ブートローダーを使用する場合は、[[GRUB#BIOS システム]]に書かれているように ESP の代わりに BIOS Boot Partition を作成してください。}}&lt;br /&gt;
&lt;br /&gt;
タイプ {{ic|8E00}} のパーティションを作成してください。後で暗号化コンテナを入れます。&lt;br /&gt;
&lt;br /&gt;
&amp;quot;system&amp;quot; パーティションに LUKS 暗号化コンテナを作成してください。&lt;br /&gt;
&lt;br /&gt;
 # cryptsetup luksFormat /dev/&#039;&#039;sdaZ&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
上記のコマンドの cryptsetup で使えるオプションについては [[Dm-crypt/デバイスの暗号化#LUKS モードの暗号化オプション|LUKS 暗号化オプション]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
パーティションレイアウトは以下のようになります:&lt;br /&gt;
{{hc|# gdisk /dev/sda |&lt;br /&gt;
Number  Start (sector)    End (sector)  Size       Code  Name&lt;br /&gt;
   1            2048         1050623   512.0 MiB   EF00  EFI System&lt;br /&gt;
   2         1050624         1460223   200.0 MiB   8300  Linux filesystem&lt;br /&gt;
   3         1460224        41943006   19.3 GiB    8E00  Linux LVM&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
コンテナを開く:&lt;br /&gt;
&lt;br /&gt;
 # cryptsetup open --type luks /dev/&#039;&#039;sdaZ&#039;&#039; lvm&lt;br /&gt;
&lt;br /&gt;
復号化されたコンテナは {{ic|/dev/mapper/lvm}} から利用できます。&lt;br /&gt;
&lt;br /&gt;
=== 論理ボリュームの準備 ===&lt;br /&gt;
&lt;br /&gt;
The LVM logical volumes of this example follow the exact layout as the previous scenario. Therefore, please follow [[#論理ボリュームの準備|Preparing the logical volumes]] above or adjust as required.&lt;br /&gt;
&lt;br /&gt;
=== boot パーティションの準備 ===&lt;br /&gt;
&lt;br /&gt;
ブートローダーは {{ic|/boot}} ディレクトリからカーネルや [[initramfs]]、あるいはブートローダーの設定ファイルをロードします。&lt;br /&gt;
&lt;br /&gt;
まず、ファイルを配置・インストールするための LUKS コンテナを作成:&lt;br /&gt;
 &lt;br /&gt;
 # cryptsetup luksFormat /dev/sda&#039;&#039;Y&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
次に、コンテナをオープン:&lt;br /&gt;
 # cryptsetup open /dev/sda&#039;&#039;Y&#039;&#039; cryptboot &lt;br /&gt;
&lt;br /&gt;
{{ic|/boot}} にするパーティションにファイルシステムを作成。ブートローダーから読み込めるならどんなファイルシステムでもかまいません:&lt;br /&gt;
&lt;br /&gt;
 # mkfs.ext2 /dev/mapper/&#039;&#039;cryptboot&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{ic|/mnt/boot}} ディレクトリを作成:&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/boot&lt;br /&gt;
&lt;br /&gt;
パーティションを {{ic|/mnt/boot}} にマウント:&lt;br /&gt;
&lt;br /&gt;
 # mount /dev/mapper/&#039;&#039;cryptboot&#039;&#039; /mnt/boot&lt;br /&gt;
&lt;br /&gt;
{{ic|grub-install}} から利用できるように [[Unified_Extensible_Firmware_Interface#EFI_System_Partition|ESP]] のマウントポイントを {{ic|/boot/efi}} に作成してマウント:&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/boot/efi&lt;br /&gt;
 # mount /dev/&#039;&#039;sdaX&#039;&#039; /mnt/boot/efi&lt;br /&gt;
&lt;br /&gt;
この時点で、{{ic|/mnt}} の中に以下のパーティションと論理ボリュームが作成されているはずです:&lt;br /&gt;
{{hc|$ lsblk|&lt;br /&gt;
NAME              	  MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT&lt;br /&gt;
sda                       8:0      0   200G  0 disk  &lt;br /&gt;
├─sda1                    8:1      0   512M  0 part  /boot/efi&lt;br /&gt;
├─sda2                    8:2      0   200M  0 part  &lt;br /&gt;
│ └─boot		  254:0    0   198M  0 crypt /boot&lt;br /&gt;
└─sda3                    8:3      0   100G  0 part  &lt;br /&gt;
  └─lvm                   254:1    0   100G  0 crypt &lt;br /&gt;
    ├─MyStorage-swapvol   254:2    0     8G  0 lvm   [SWAP]&lt;br /&gt;
    ├─MyStorage-rootvol   254:3    0    15G  0 lvm   /&lt;br /&gt;
    └─MyStorage-homevol   254:4    0    77G  0 lvm   /home&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
インストールの手順を mkinitcpio の設定まで進めてください。&lt;br /&gt;
&lt;br /&gt;
=== mkinitcpio の設定 ===&lt;br /&gt;
&lt;br /&gt;
[[mkinitcpio|mkinitcpio.conf]] に {{ic|keyboard}}, {{ic|encrypt}}, {{ic|lvm2}} フックを追加:&lt;br /&gt;
{{hc|/etc/mkinitcpio.conf|2=HOOKS=(... &#039;&#039;&#039;keyboard&#039;&#039;&#039; &#039;&#039;&#039;keymap&#039;&#039;&#039; block &#039;&#039;&#039;encrypt&#039;&#039;&#039; &#039;&#039;&#039;lvm2&#039;&#039;&#039; ... filesystems ...)}}&lt;br /&gt;
&lt;br /&gt;
詳細や必要な他のフックについては [[dm-crypt/システム設定#mkinitcpio]] を参照。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
設定後はイメージを再生成してください:&lt;br /&gt;
&lt;br /&gt;
 # mkinitcpio -p linux&lt;br /&gt;
&lt;br /&gt;
=== ブートローダーの設定 ===&lt;br /&gt;
&lt;br /&gt;
起動時に LUKS で暗号化された {{ic|/boot}} パーティションを認識して暗号化された root パーティションの暗号化が解除されるように GRUB を設定:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/default/grub|2=&lt;br /&gt;
GRUB_CMDLINE_LINUX=&amp;quot;... cryptdevice=UUID=&#039;&#039;&amp;lt;device-UUID&amp;gt;&#039;&#039;:lvm ...&amp;quot;&lt;br /&gt;
GRUB_ENABLE_CRYPTODISK=y&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
詳しくは [[Dm-crypt/システム設定#ブートローダー]]や [[GRUB#暗号化された /boot]]を参照。{{ic|&#039;&#039;&amp;lt;device-UUID&amp;gt;&#039;&#039;}} は {{ic|/dev/sdaZ}} (ルートファイルシステムが存在する LVM が含まれているパーティション) の UUID に置き換えてください。詳しくは[[永続的なブロックデバイスの命名]]を参照。&lt;br /&gt;
&lt;br /&gt;
GRUB の[[GRUB#メイン設定ファイルの生成|設定ファイル]]を作成して、マウントされている ESP に [[GRUB#インストール|GRUB をインストール]]:&lt;br /&gt;
&lt;br /&gt;
 # grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
 # grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub --recheck&lt;br /&gt;
&lt;br /&gt;
設定に問題がなければ、次の起動時に GRUB は {{ic|/boot}} パーティションのロックを解除するためのパスフレーズを要求するはずです。&lt;br /&gt;
&lt;br /&gt;
=== fstab と crypttab の設定 ===&lt;br /&gt;
&lt;br /&gt;
This section deals with extra configuration to let the system &#039;&#039;&#039;mount&#039;&#039;&#039; the encrypted {{ic|/boot}}. &lt;br /&gt;
&lt;br /&gt;
While GRUB asks for a passphrase to unlock the encrypted {{ic|/boot}} after above instructions, the partition unlock is not passed on to the initramfs. Hence, {{ic|/boot}} will not be available after the system has re-/booted, because the {{ic|encrypt}} hook only unlocks the system&#039;s root. &lt;br /&gt;
&lt;br /&gt;
インストール時に &#039;&#039;genfstab&#039;&#039; スクリプトを使用した場合、{{ic|/boot}} と {{ic|/boot/efi}} マウントポイントのエントリが含まれた {{ic|/etc/fstab}} が作成されています。しかしながらシステムはブートパーティションに生成されたデバイスマッパーを見つけることができません。デバイスマッパーを使えるようにするために、以下を [[Dm-crypt/システム設定#crypttab|crypttab]] に追加してください。例: &lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/crypttab|&lt;br /&gt;
cryptboot  /dev/sdaY      none        luks}}&lt;br /&gt;
&lt;br /&gt;
上記を設定するとパスフレーズが二回要求されるようになります (GRUB と systemd ユニットでそれぞれ一回ずつ入力しなくてはなりません)。{{ic|/boot}} のロックを解除するエントリを重複させたくない場合、[[Dm-crypt/デバイスの暗号化#キーファイル]]の指示に従ってください: &lt;br /&gt;
&lt;br /&gt;
# [[Dm-crypt/デバイスの暗号化#ファイルシステムにキーファイルを保存|ランダムなテキストのキーファイル]]を作成&lt;br /&gt;
# キーファイルを ({{ic|/dev/sdaY}}) [[Dm-crypt/デバイスの暗号化#キーファイルを使用するように LUKS を設定|ブートパーティションの LUKS ヘッダ]]に追加&lt;br /&gt;
# {{ic|/etc/fstab}} のエントリを確認して[[Dm-crypt/デバイスの暗号化#起動時にロックを解除|起動時に自動的にロックが解除]]されるように {{ic|/etc/crypttab}} 行を追加&lt;br /&gt;
&lt;br /&gt;
何らかの理由でキーファイルを使って boot パーティションのロックを解除できなかった場合、systemd はフォールバックして解除するためのパスフレーズを要求します。パスフレーズが正しければ、起動に進みます。&lt;br /&gt;
&lt;br /&gt;
{{Tip|Optional post-installation steps: &lt;br /&gt;
* It may be worth considering to add the GRUB bootloader to the ignore list of {{ic|/etc/pacman.conf}} in order to take particular control of when the bootloader (which includes its own encryption modules) is updated. &lt;br /&gt;
* If you want to encrypt the {{ic|/boot}} partition to protect against offline tampering threats, the [[Dm-crypt/特記事項#mkinitcpio-chkcryptoboot|mkinitcpio-chkcryptoboot]] hook has been contributed to help.}}&lt;br /&gt;
&lt;br /&gt;
== Btrfs サブボリュームとスワップ ==&lt;br /&gt;
&lt;br /&gt;
以下の例では [[Btrfs]] のサブボリュームを使って LUKS によるフルシステム暗号化を作成します。&lt;br /&gt;
&lt;br /&gt;
UEFI を使っている場合、[[EFI システムパーティション]] (ESP) が必要です。{{ic|/boot}} は {{ic|/}} の中に保存して暗号化することができますが、ESP を暗号化することは不可能です。ここでは例として、ESP は {{ic|/dev/sda&#039;&#039;Y&#039;&#039;}} で {{ic|/boot/efi}} にマウントするとします。{{ic|/boot}} はシステムパーティション ({{ic|/dev/sda&#039;&#039;X&#039;&#039;}}) に保存します。&lt;br /&gt;
&lt;br /&gt;
{{ic|/boot}} を暗号化された {{ic|/}} の中に配置するため、ブートローダーは [[GRUB]] を使用する必要があります。GRUB だけが {{ic|/boot}} を復号化するのに必要なモジュールをロードできるからです (例: {{ic|crypto.mod}}, {{ic|cryptodisk.mod}}, {{ic|luks.mod}}) [http://www.pavelkogan.com/2014/05/23/luks-full-disk-encryption/]。&lt;br /&gt;
&lt;br /&gt;
さらに任意で暗号化した[[スワップ]]パーティションも作成します。&lt;br /&gt;
&lt;br /&gt;
{{Warning|スワップパーティションのかわりとして[[スワップファイル]]を使うことはできません。データを消失する可能性があります。[[Btrfs#スワップファイル]]を見てください。}}&lt;br /&gt;
&lt;br /&gt;
 +--------------------------+--------------------------+--------------------------+&lt;br /&gt;
 |ESP                       |System partition          |Swap partition            |&lt;br /&gt;
 |&#039;&#039;&#039;un&#039;&#039;&#039;encrypted               |LUKS-encrypted            |plain-encrypted           |&lt;br /&gt;
 |                          |                          |                          |&lt;br /&gt;
 |/boot/efi                 |/                         |                          |&lt;br /&gt;
 |/dev/sda&#039;&#039;Y&#039;&#039;                 |/dev/sda&#039;&#039;X&#039;&#039;                 |/dev/sda&#039;&#039;Z&#039;&#039;                 |&lt;br /&gt;
 |--------------------------+--------------------------+--------------------------+&lt;br /&gt;
&lt;br /&gt;
=== ディスクの準備 ===&lt;br /&gt;
&lt;br /&gt;
{{Note|LUKS を使用する場合に[[Btrfs#パーティショニング|パーティションしない Btrfs ディスク]]を使用することは不可能です。作成するパーティションがひとつだけの場合でも伝統的なパーティショニングが必須です。}}&lt;br /&gt;
&lt;br /&gt;
パーティションを作成する前に、[[dm-crypt/ドライブの準備]]に書かれているようにディスクを完全消去するようにしてください。[[UEFI]] を使っている場合、適当なサイズの [[EFI システムパーティション]]を作成してください。後で {{ic|/boot/efi}} にマウントします。スワップパーティションを暗号化する場合、パーティションを作成してもスワップとして設定してはいけません。plain &#039;&#039;dm-crypt&#039;&#039; でパーティションを使用するためです。&lt;br /&gt;
&lt;br /&gt;
必要なパーティションを作成してください。最低でも {{ic|/}} のパーティションが必要です (例: {{ic|/dev/sda&#039;&#039;X&#039;&#039;}})。[[パーティショニング]]の記事を見てください。&lt;br /&gt;
&lt;br /&gt;
=== システムパーティションの準備 ===&lt;br /&gt;
&lt;br /&gt;
==== LUKS コンテナの作成 ====&lt;br /&gt;
&lt;br /&gt;
[[dm-crypt/デバイスの暗号化#LUKS モードでデバイスを暗号化]]に従って {{ic|/dev/sda&#039;&#039;X&#039;&#039;}} を LUKS で設定してください。設定する前に [[Dm-crypt/デバイスの暗号化#LUKS モードの暗号化オプション]]を見てください。&lt;br /&gt;
&lt;br /&gt;
==== LUKS コンテナの解錠 ====&lt;br /&gt;
&lt;br /&gt;
[[dm-crypt/デバイスの暗号化#デバイスマッパーで LUKS パーティションのロックを解除・マップ]]に従って LUKS コンテナを解錠してマッピングしてください。&lt;br /&gt;
&lt;br /&gt;
==== マッピングされたデバイスのフォーマット ====&lt;br /&gt;
&lt;br /&gt;
[[Btrfs#新しいファイルシステムを作成する]]に書かれているようにデバイスをフォーマットしてください。{{ic|&#039;&#039;/dev/partition&#039;&#039;}} はマップしたデバイスの名前 ({{ic|cryptroot}}) に置き換えてください。{{ic|/dev/sda&#039;&#039;X&#039;&#039;}} を使ってはいけません。&lt;br /&gt;
&lt;br /&gt;
==== マッピングされたデバイスのマウント ====&lt;br /&gt;
&lt;br /&gt;
最後に、フォーマットされたマップ済みデバイス ({{ic|/dev/mapper/cryptroot}}) を {{ic|/mnt}} に[[マウント]]してください。&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|1=compress=lzo}} マウントオプションを使うと良いでしょう。詳しくは [[Btrfs#圧縮]]を見てください。}}&lt;br /&gt;
&lt;br /&gt;
=== btrfs サブボリュームの作成 ===&lt;br /&gt;
&lt;br /&gt;
==== レイアウト ====&lt;br /&gt;
&lt;br /&gt;
[[Btrfs#サブボリューム|サブボリューム]]をパーティションのように使いますが、他の (ネストした) サブボリュームも作成します。以下は作成するサブボリュームの例を示しています:&lt;br /&gt;
&lt;br /&gt;
 subvolid=5 (/dev/sda&#039;&#039;X&#039;&#039;)&lt;br /&gt;
    |&lt;br /&gt;
    ├── @ (mounted as /)&lt;br /&gt;
    |       |&lt;br /&gt;
    |       ├── /bin (directory)&lt;br /&gt;
    |       |&lt;br /&gt;
    |       ├── /home (mounted @home subvolume)&lt;br /&gt;
    |       |&lt;br /&gt;
    |       ├── /usr (directory)&lt;br /&gt;
    |       |&lt;br /&gt;
    |       ├── /.snapshots (mounted @snapshots subvolume)&lt;br /&gt;
    |       |&lt;br /&gt;
    |       ├── /var/cache/pacman/pkg (nested subvolume)&lt;br /&gt;
    |       |&lt;br /&gt;
    |       ├── ... (other directories and nested subvolumes)&lt;br /&gt;
    |&lt;br /&gt;
    ├── @snapshots (mounted as /.snapshots)&lt;br /&gt;
    |&lt;br /&gt;
    ├── @home (mounted as /home)&lt;br /&gt;
    |&lt;br /&gt;
    └── @... (additional subvolumes you wish to use as mount points)&lt;br /&gt;
&lt;br /&gt;
このセクションでは [[Snapper]] を使うときに便利な [[Snapper#推奨ファイルシステムレイアウト]]に従います。[https://btrfs.wiki.kernel.org/index.php/SysadminGuide#Layout Btrfs Wiki SysadminGuide#Layout] も読んでください。&lt;br /&gt;
&lt;br /&gt;
==== トップレベルサブボリュームの作成 ====&lt;br /&gt;
&lt;br /&gt;
マウントポイントとして使用するサブボリュームの名前には {{ic|@}} を前に付けます。{{ic|/}} にマウントするサブボリュームは {{ic|@}} とします。&lt;br /&gt;
&lt;br /&gt;
[[Btrfs#サブボリュームを作成する]]に従って {{ic|/mnt/@}}, {{ic|/mnt/@snapshots}}, {{ic|/mnt/@home}} にサブボリュームを作成します。&lt;br /&gt;
&lt;br /&gt;
他にマウントポイントとして使用したいサブボリュームも作成してください。&lt;br /&gt;
&lt;br /&gt;
==== トップレベルサブボリュームのマウント ====&lt;br /&gt;
&lt;br /&gt;
{{ic|/mnt}} のシステムパーティションをアンマウントしてください。&lt;br /&gt;
&lt;br /&gt;
{{ic|/}} として使用する、新しく作成した {{ic|@}} サブボリュームを {{ic|1=subvol=}} マウントオプションを使って {{ic|/mnt}} にマウントします。マップしたデバイスの名前が {{ic|cryptroot}} なら、コマンドは以下のようになります:&lt;br /&gt;
&lt;br /&gt;
 # mount -o compress=lzo,subvol=@ /dev/mapper/cryptroot /mnt&lt;br /&gt;
&lt;br /&gt;
詳しくは [[Btrfs#サブボリュームをマウントする]]を見てください。&lt;br /&gt;
&lt;br /&gt;
他のサブボリュームを適切なマウントポイントにマウントしてください: {{ic|@home}} は {{ic|/mnt/home}} に、{{ic|@snapshots}} は {{ic|/mnt/.snapshots}} にマウントします。&lt;br /&gt;
&lt;br /&gt;
==== ネストされたサブボリュームの作成 ====&lt;br /&gt;
&lt;br /&gt;
{{ic|/}} のスナップショットが作成されるときに、スナップショットを作りたくないサブボリュームを作成してください。例えば、{{ic|/var/cache/pacman/pkg}} のスナップショットなどは不要でしょう。サブボリュームは {{ic|@}} サブボリュームの下にネストしますが、{{ic|@}} と同じレベルに作成することもできます。&lt;br /&gt;
&lt;br /&gt;
{{ic|@}} サブボリュームは {{ic|/mnt}} にマウントするため、{{ic|/mnt/var/cache/pacman/pkg}} に[[Btrfs#サブボリュームを作成する|サブボリュームを作成]]する必要があります。先に親のディレクトリを作成してください。&lt;br /&gt;
&lt;br /&gt;
他にも {{ic|/var/abs}}, {{ic|/var/tmp}}, {{ic|/srv}} などのディレクトリのサブボリュームを作成してください。&lt;br /&gt;
&lt;br /&gt;
==== ESP のマウント ====&lt;br /&gt;
&lt;br /&gt;
EFI システムパーティションを準備済みなら、マウントポイントを作成してマウントしてください。&lt;br /&gt;
&lt;br /&gt;
{{Note|Btrfs のスナップショットは {{ic|/boot/efi}} を除外します (btrfs ファイルシステムではないため)。}}&lt;br /&gt;
&lt;br /&gt;
[[インストールガイド#ベースシステムのインストール|pacstrap]] でインストールを行うときに、{{Pkg|btrfs-progs}} もインストールする必要があります。&lt;br /&gt;
&lt;br /&gt;
=== mkinitcpio の設定 ===&lt;br /&gt;
&lt;br /&gt;
==== キーファイルの作成 ====&lt;br /&gt;
&lt;br /&gt;
GRUB で LUKS パーティションを解錠するために、initramfs にキーファイルを埋め込みます。[[Dm-crypt/デバイスの暗号化#キーファイルを initramfs に埋め込む]]に従って &#039;&#039;luksAddKey&#039;&#039; を実行する段階でキーを {{ic|/dev/sda&#039;&#039;X&#039;&#039;}} に追加してください。&lt;br /&gt;
&lt;br /&gt;
==== mkinitcpio.conf の編集 ====&lt;br /&gt;
&lt;br /&gt;
上記のようにキーファイルを作成して埋め込んだら、[[mkinitcpio|mkinitcpio.conf]] に {{ic|encrypt}} フックを追加してください。詳しくは [[Dm-crypt/システム設定#mkinitcpio]] を参照。設定後は initramfs を再生成する必要があります。&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|1=BINARIES=(/usr/bin/btrfs)}} を {{ic|mkinitcpio.conf}} に追加すると良いでしょう。詳しくは [[Btrfs#ファイルシステム破損のリカバリ]] を見てください。}}&lt;br /&gt;
&lt;br /&gt;
=== ブートローダーの設定 ===&lt;br /&gt;
&lt;br /&gt;
[[GRUB]] を {{ic|/dev/sda}} にインストールします。そして [[GRUB#暗号化された /boot]]に書かれているように {{ic|/etc/default/grub}} を編集します (ルートパーティションと boot パーティションの両方の手順に従ってください)。最後に、GRUB の設定ファイルを生成します。&lt;br /&gt;
&lt;br /&gt;
=== スワップの設定 ===&lt;br /&gt;
&lt;br /&gt;
スワップを暗号化するためにパーティションを作成していた場合、ここで設定してください。[[Dm-crypt/スワップの暗号化]]の手順に従ってください。&lt;br /&gt;
&lt;br /&gt;
設定を完了したら、[[インストールガイド#再起動|インストールガイド]]にしたがって通常通りにシステムの設定を続行してください。&lt;/div&gt;</summary>
		<author><name>Hkiku482</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Dm-crypt/%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E5%85%A8%E4%BD%93%E3%81%AE%E6%9A%97%E5%8F%B7%E5%8C%96&amp;diff=39515</id>
		<title>Dm-crypt/システム全体の暗号化</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Dm-crypt/%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E5%85%A8%E4%BD%93%E3%81%AE%E6%9A%97%E5%8F%B7%E5%8C%96&amp;diff=39515"/>
		<updated>2025-01-17T17:24:45Z</updated>

		<summary type="html">&lt;p&gt;Hkiku482: /* LUKS を使用するパーティションに TPM2とセキュアブートを使用する */ 訳出&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;br /&gt;
[[Category:保存データ暗号化]]&lt;br /&gt;
[[Category:ファイルシステム]]&lt;br /&gt;
[[Category:Arch の入手とインストール]]&lt;br /&gt;
[[de:Systemverschlüsselung mit dm-crypt]]&lt;br /&gt;
[[en:Dm-crypt/Encrypting an entire system]]&lt;br /&gt;
[[es:Dm-crypt/Encrypting an entire system]]&lt;br /&gt;
以下は &#039;&#039;dm-crypt&#039;&#039; を使って完全なシステム暗号化を行う一般的なシナリオの例です。通常の[[インストールガイド|インストール手順]]に加える必要がある変更を全て説明しています。必要なツールは全て [https://www.archlinux.jp/download/ インストールイメージ] に入っています。&lt;br /&gt;
&lt;br /&gt;
== 概要 ==&lt;br /&gt;
&lt;br /&gt;
root ファイルシステムの暗号化については機能やパフォーマンスの点で &#039;&#039;dm-crypt&#039;&#039; が優れています。システムの root ファイルシステムが dm-crypt デバイス上にあれば、システム上のほとんど全てのファイルが暗号化されます。root 以外のファイルシステムを選択的に暗号化するのと異なり、root ファイルシステムの暗号化は様々な情報を隠匿できます。インストールされているプログラム、ユーザーアカウントのユーザー名、[[mlocate]] や {{ic|/var/log/}} など媒介してデータ漏洩の恐れがあるファイルなど。さらに、root ファイルシステムを暗号化することでシステムの改竄が非常に難しくなります。[[ブートローダー]]やカーネルを除く全てが暗号化されるためです。&lt;br /&gt;
&lt;br /&gt;
以上の利点をのぞく、それぞれのシナリオのメリットやデメリットなどの違いをまとめて、全てのシナリオを以下の表で説明します:&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;
| [[#LUKS を使用するシンプルなパーティションレイアウト]]&lt;br /&gt;
LUKS で root を完全に暗号化するベーシックなセットアップ&lt;br /&gt;
|&lt;br /&gt;
* パーティショニングと設定がシンプル&lt;br /&gt;
|&lt;br /&gt;
* 柔軟性がない、暗号化するディスク領域をあらかじめ指定する必要がある&lt;br /&gt;
|----------------------------------------------------------&lt;br /&gt;
| [[#LUKS を使用するパーティションに TPM2とセキュアブートを使用する]]&lt;br /&gt;
LUKS で root を完全に暗号化するベーシックなセットアップ&lt;br /&gt;
|&lt;br /&gt;
LUKS を使用するシンプルなパーティションレイアウトと加えて&lt;br /&gt;
* [[Wikipedia:Evil maid attack|Evil maid attacks]]から保護することができます。&lt;br /&gt;
* セキュアブートが無効になっていたり変更された場合に、TPM2によってロック解除を防止することができます。&lt;br /&gt;
|&lt;br /&gt;
* LUKS を使用するシンプルなパーティションレイアウト と同じ&lt;br /&gt;
|----------------------------------------------------------&lt;br /&gt;
| [[#LVM on LUKS]]&lt;br /&gt;
LUKS 暗号化パーティションの中で LVM を使うことでパーティショニングの柔軟性を確保&lt;br /&gt;
|&lt;br /&gt;
* LVM　を使ったことがあるのであれば簡単にパーティショニングできます&lt;br /&gt;
* 一つのキーで全てのボリュームのロックを解除できます (ディスクからの復帰を設定するのが簡単)&lt;br /&gt;
* ロックされていればボリュームのレイアウトが外から分かりません&lt;br /&gt;
* [[Dm-crypt/スワップの暗号化#suspend-to-disk_を使用する|ハイバネート]]を利用したいときの一番簡単な方法&lt;br /&gt;
|&lt;br /&gt;
* LVM によってマッピングレイヤーとフックが追加されます&lt;br /&gt;
* ボリュームごとに別のキーを設定する場合は不便です&lt;br /&gt;
|----------------------------------------------------------&lt;br /&gt;
| [[#LUKS on LVM]]&lt;br /&gt;
LVM をセットアップした後に dm-crypt を使用&lt;br /&gt;
|&lt;br /&gt;
* LVM を使うことで複数のディスクにまたがる暗号化ボリュームを作成できます&lt;br /&gt;
* 非暗号化・暗号化ボリュームグループを簡単に混ぜられます&lt;br /&gt;
|&lt;br /&gt;
* 複雑です。ボリュームを変更するときは暗号化マッパーも変更する必要があります&lt;br /&gt;
* ボリュームごとに個別のキーが必要になります&lt;br /&gt;
* ロックされていても LVM レイアウトは外から分かってしまいます&lt;br /&gt;
|----------------------------------------------------------&lt;br /&gt;
| [[#ソフトウェア RAID と LUKS]]&lt;br /&gt;
RAID を設定した後に dm-crypt を使います。&lt;br /&gt;
|&lt;br /&gt;
* LUKS on LVM と同じ。&lt;br /&gt;
|&lt;br /&gt;
* LUKS on LVM と同じ。&lt;br /&gt;
|----------------------------------------------------------&lt;br /&gt;
| [[#Plain dm-crypt]]&lt;br /&gt;
dm-crypt の plain モードを使用、LUKS ヘッダーや LUKS の複数のキーのオプションは使わない&amp;lt;br&amp;gt;このシナリオでは {{ic|/boot}} とキーストレージに USB デバイスを使いますが、これは他のデバイスでも利用可能です&lt;br /&gt;
|&lt;br /&gt;
* LUKS ヘッダに損害が発生した場合の耐障害性があります&lt;br /&gt;
* [[Wikipedia:Deniable encryption|否認可能暗号]]が使える&lt;br /&gt;
* SSD の[[Dm-crypt/特記事項#ソリッドステートドライブ (SSD) の Discard/TRIM のサポート|問題]]を解決できます&lt;br /&gt;
|&lt;br /&gt;
* 全ての暗号化パラメータに注意する必要があります&lt;br /&gt;
* 暗号鍵はひとつだけで変更する方法はありません&lt;br /&gt;
|----------------------------------------------------------&lt;br /&gt;
| [[#boot パーティションの暗号化 (GRUB)]]&lt;br /&gt;
GRUB ブートローダーを使って boot パーティションを暗号化する方法を説明します。&amp;lt;br&amp;gt;このシナリオでは ESP パーティションを使いますが、他のシナリオでも ESP を使うことができます。&lt;br /&gt;
|&lt;br /&gt;
* ベースにするシナリオと同じメリット (このページの例では LVM on LUKS)&lt;br /&gt;
* ブートローダーや ESP パーティションまで暗号化されます&lt;br /&gt;
|&lt;br /&gt;
* ベースにするシナリオと同じデメリット (このページの例では LVM on LUKS)&lt;br /&gt;
* 設定が複雑です&lt;br /&gt;
* 他のブートローダーのサポートがありません&lt;br /&gt;
|----------------------------------------------------------&lt;br /&gt;
| [[#Btrfs サブボリュームとスワップ]]&lt;br /&gt;
UEFI 環境で [[Btrfs]] のシステムパーティションと {{ic|/boot}} ディレクトリを暗号化して、スワップパーティションを追加する方法。&lt;br /&gt;
|&lt;br /&gt;
* [[#boot パーティションの暗号化 (GRUB)]] と同じメリット&lt;br /&gt;
* Btrfs の機能を活用できます&lt;br /&gt;
|&lt;br /&gt;
* [[#boot パーティションの暗号化 (GRUB)]] と同じデメリット&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
上記全てのシナリオが外部からの脅威に対して十分な保護を約束しますが、共通の欠点も存在します。暗号化キーを持っているユーザーなら誰でもデバイスの全てを復号化して、他のユーザーのデータにもアクセスすることが可能という点です。これが問題だという場合は、ブロックデバイスの暗号化とスタックファイルシステムの暗号化と組み合わせて使用することで、両者の利点を取り入れることができます。[[保存データ暗号化]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
他にも、スワップパーティションの暗号化を設定するべきかどうか考慮する必要があります。[[Dm-crypt/スワップの暗号化]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
シナリオで使用されているパーティショニングの外観について [[Dm-crypt/ドライブの準備#パーティショニング]] も参照してください。&lt;br /&gt;
&lt;br /&gt;
{{Warning|どのシナリオでも、暗号化ボリュームで [[fsck]] などのファイルシステム修復ソフトウェアを直接使ってはいけません。ファイルを復号化する鍵を破壊してしまいます。復号化した後に使うようにしてください。}}&lt;br /&gt;
&lt;br /&gt;
== LUKS を使用するシンプルなパーティションレイアウト ==&lt;br /&gt;
&lt;br /&gt;
この例ではシンプルなパーティションレイアウトによる &#039;&#039;dmcrypt&#039;&#039;+ LUKS のフルシステム暗号化を説明します:&lt;br /&gt;
&lt;br /&gt;
 +--------------------+--------------------------+--------------------------+&lt;br /&gt;
 |Boot partition      |LUKS encrypted system     |Optional free space       |&lt;br /&gt;
 |                    |partition                 |for additional partitions |&lt;br /&gt;
 |/dev/sdaY           |/dev/sdaX                 |or swap to be setup later |&lt;br /&gt;
 +--------------------+--------------------------+--------------------------+&lt;br /&gt;
&lt;br /&gt;
最初のステップは Arch Linux のインストールイメージを起動した後すぐに実行します。&lt;br /&gt;
&lt;br /&gt;
=== ディスクの準備 ===&lt;br /&gt;
パーティションを作成する前に、[[Dm-crypt/ドライブの準備]] で説明されているように、ディスクを完全に消去する必要性・方法を学んでください。&lt;br /&gt;
&lt;br /&gt;
それから必要なパーティションを作成します。最低でも {{ic|/}} が必要です (例: {{ic|/dev/sdaX}}) と {{ic|/boot}} ({{ic|/dev/sdaY}})。[[パーティショニング]]を参照。&lt;br /&gt;
&lt;br /&gt;
=== boot 以外のパーティションの準備 ===&lt;br /&gt;
&lt;br /&gt;
以下のコマンドは暗号化された root パーティションを作成・マウントします。[[Dm-crypt/root 以外のファイルシステムの暗号化#パーティション]] に詳しく説明されている手順に該当します (ページタイトルと相違して、[[#mkinitcpio の設定|mkinitcpio]] と[[#ブートローダーの設定|ブートローダー]]が正しく設定されていれば、root パーティションにも適用できます)。デフォルトになってない特定の暗号化オプションを使いたいときは (例: 暗号アルゴリズムや鍵長など)、最初のコマンドを実行する前に[[Dm-crypt/デバイスの暗号化#LUKS_モードの暗号化オプション|暗号化オプション]]を読んでください:&lt;br /&gt;
&lt;br /&gt;
 # cryptsetup -y -v luksFormat /dev/sdaX&lt;br /&gt;
 # cryptsetup open /dev/sdaX cryptroot&lt;br /&gt;
 # mkfs.ext4 /dev/mapper/cryptroot&lt;br /&gt;
 # mount /dev/mapper/cryptroot /mnt&lt;br /&gt;
&lt;br /&gt;
マッピングが問題ないかチェック:&lt;br /&gt;
 # umount /mnt&lt;br /&gt;
 # cryptsetup close cryptroot&lt;br /&gt;
 # cryptsetup open /dev/sdaX cryptroot&lt;br /&gt;
 # mount /dev/mapper/cryptroot /mnt&lt;br /&gt;
&lt;br /&gt;
パーティションを分割した場合 (例: {{ic|/home}})、以上のコマンドを全てのパーティションに繰り返し実行してください。ただし {{ic|/boot}} は別です。起動時に追加のパーティションを扱う方法は [[Dm-crypt/root 以外のファイルシステムの暗号化#ロック解除とマウントの自動化]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
それぞれのブロックデバイスには個々のパスフレーズが必要になります。起動時に、別々のパスフレーズを入力しないといけないので、不便とも言えます。{{ic|crypttab}} を使うことでシステムパーティションにキーファイルを保存して使用することで別のパーティションを解錠することができます。方法は [[Dm-crypt/デバイスの暗号化#LUKS を使ってキーファイルでパーティションをフォーマット]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== boot パーティションの準備 ===&lt;br /&gt;
セットアップする必要があるのは暗号化されない {{ic|/boot}} パーティションで、暗号化する root に必要となります。例えば、標準的な [[EFI|MBR/BIOS]] の {{ic|/boot}} パーティションの場合、以下を実行します:&lt;br /&gt;
 # mkfs.ext4 /dev/sdaY&lt;br /&gt;
 # mkdir /mnt/boot&lt;br /&gt;
 # mount /dev/sdaY /mnt/boot&lt;br /&gt;
&lt;br /&gt;
=== デバイスのマウント ===&lt;br /&gt;
[[インストールガイド#パーティションのマウント]]では実際のパーティションではなく、マップされたデバイスをマウントしてください。もちろん、{{ic|/boot}} は暗号化されていないので、直接マウントします。&lt;br /&gt;
&lt;br /&gt;
=== mkinitcpio の設定 ===&lt;br /&gt;
{{ic|keyboard}}, {{ic|keymap}}, {{ic|encrypt}} フックを [[mkinitcpio|mkinitcpio.conf]] 内の {{ic|filesystems}} の前に追加します:&lt;br /&gt;
{{hc|/etc/mkinitcpio.conf|2=HOOKS=(... &#039;&#039;&#039;keyboard&#039;&#039;&#039; &#039;&#039;&#039;keymap&#039;&#039;&#039; block &#039;&#039;&#039;encrypt&#039;&#039;&#039; ... filesystems ...)}}&lt;br /&gt;
&lt;br /&gt;
他に必要なフックについては [[dm-crypt/システム設定#mkinitcpio]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
設定後はイメージを再生成してください:&lt;br /&gt;
&lt;br /&gt;
 # mkinitcpio -p linux&lt;br /&gt;
&lt;br /&gt;
=== ブートローダーの設定 ===&lt;br /&gt;
暗号化された root パーティションを起動するには、ブートローダーに以下のカーネルパラメータを設定する必要があります ({{ic|&#039;&#039;&amp;lt;device-UUID&amp;gt;&#039;&#039;}} は {{ic|/dev/sdaX}} の UUID に置き換えてください。詳しくは[[永続的なブロックデバイスの命名]]を参照):&lt;br /&gt;
&lt;br /&gt;
 cryptdevice=UUID=&#039;&#039;&amp;lt;device-UUID&amp;gt;&#039;&#039;:cryptroot root=/dev/mapper/cryptroot&lt;br /&gt;
&lt;br /&gt;
他に必要なパラメータについては [[Dm-crypt/システム設定#ブートローダー]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
== LUKS を使用するパーティションに TPM2とセキュアブートを使用する ==&lt;br /&gt;
&lt;br /&gt;
この例は[[#LUKS を使用するシンプルなパーティションレイアウト]]と似ていますが、[[セキュアブート]]と[[Trusted Platform Module]] (TPM)を統合してブート時のセキュリティを強化します。&lt;br /&gt;
&lt;br /&gt;
この構成では[[EFI_システムパーティション]]が暗号化されずに残り、[[ユニファイドカーネルイメージ]]と[[systemd-boot]]が格納されます。これらは両方ともセキュアブートで使用するため暗号化されています。セキュアブートが無効になっていたり、キーデータベースが改ざんされている場合は、ロック解除に使用するキーをリリースしません。これは、WindowsのBitLockerやmacOSのFileVaultに似ています。TPMロック解除に問題(署名されていないブートローダやカーネルの更新、ファームウェアの更新等)が発生した場合、データにアクセスするための回復キーも作成されます。オプションで、起動時にTPM PINが必要になるように設定して完全に自動でロック解除されるのを防ぐこともできます。&lt;br /&gt;
&lt;br /&gt;
実行する前に[[Trusted Platform Module#LUKS による保存データの暗号化]]の説明と警告をよく読んでください。&lt;br /&gt;
&lt;br /&gt;
この例では[[systemd#GPTパーティションの自動マウント]]に従ってパーティションが作成されるため、fstabファイルやcrypttabファイルは必要ありません。&lt;br /&gt;
&lt;br /&gt;
{{Text art|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
+-----------------------+---------------------------------+&lt;br /&gt;
| EFI system partition  | LUKS encrypted root partition   |&lt;br /&gt;
|                       |                                 |&lt;br /&gt;
|                       |                                 |&lt;br /&gt;
| /boot                 | /                               |&lt;br /&gt;
|                       |                                 |&lt;br /&gt;
|                       | /dev/mapper/root                |&lt;br /&gt;
|                       |---------------------------------|&lt;br /&gt;
| /dev/sda1             | /dev/sda2                       |&lt;br /&gt;
+-----------------------+---------------------------------+&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;
パーティションを作成する前に[[dm-crypt/ドライブの準備]]で説明されているように、ディスクを安全に消去する重要性について理解しておく必要があります。&lt;br /&gt;
&lt;br /&gt;
[[パーティショニング#GUID_Partition_Table]] (GPT)で[[EFI システムパーティション]](この例では{{ic|/dev/sda1}})を適切なサイズで作成したあとに、その他の必要なパーティションを作成していきます。&lt;br /&gt;
&lt;br /&gt;
[[EFI システムパーティション]]は{{ic|/boot}}へマウントします。&lt;br /&gt;
&lt;br /&gt;
ドライブの残りのスペースに暗号化されたあとで{{ic|/dev/sda2}}にマウントされるルートパーティションを作成します。パーティションタイプのGUIDは{{ic|4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709}} ([[gdisk]]の場合は{{ic|8304}}、[[fdisk]]の場合は&amp;quot;Linux root (x86-64)&amp;quot;)に設定します。&lt;br /&gt;
&lt;br /&gt;
=== ルートパーティションの準備 ===&lt;br /&gt;
&lt;br /&gt;
次のコマンドでは暗号化されたルートパーティションの作成とマウントを行います。この手順は[[dm-crypt#LUKS モードの暗号化オプション]]の説明と対応しています。&lt;br /&gt;
&lt;br /&gt;
特定のデフォルトではない暗号化オプション(キーの長さやアルゴリズム)を使用する場合または、TPMベースの復号を使用しない場合は、最初のコマンドを実行する前に[[dm-crypt#LUKS モードの暗号化オプション]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
LUKSボリュームを作成(空のパスワードを使用してあとから変更することができます)し、{{ic|root}} という名前でオープンします。&lt;br /&gt;
&lt;br /&gt;
 # cryptsetup luksFormat /dev/sda2&lt;br /&gt;
 # cryptsetup open /dev/sda2 root&lt;br /&gt;
&lt;br /&gt;
次に、ファイルシステムを作成します:&lt;br /&gt;
&lt;br /&gt;
 # mkfs.ext4 /dev/mapper/root&lt;br /&gt;
&lt;br /&gt;
{{ic|/mnt}}へマウントします:&lt;br /&gt;
&lt;br /&gt;
 # mount /dev/mapper/root /mnt&lt;br /&gt;
&lt;br /&gt;
=== EFI システムパーティションの準備 ===&lt;br /&gt;
&lt;br /&gt;
新しく作成したEFIシステムパーティションを[[EFI システムパーティション#パーティションのフォーマット]]に従ってフォーマットし、{{ic|/mnt/boot}}へマウントします。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # mount --mkdir /dev/sda1 /mnt/boot&lt;br /&gt;
&lt;br /&gt;
[[インストールガイド#initramfs]]までセットアップを続行します。[[インストールガイド#Fstab]]はスキップすることができます。&lt;br /&gt;
&lt;br /&gt;
=== mkinitcpioを設定する ===&lt;br /&gt;
&lt;br /&gt;
[[mkinitcpio.conf]]の設定の{{ic|1=HOOKS=}}行を次のように設定します。順番が重要です:&lt;br /&gt;
&lt;br /&gt;
 HOOKS=(base &#039;&#039;&#039;systemd&#039;&#039;&#039; autodetect microcode modconf kms &#039;&#039;&#039;keyboard&#039;&#039;&#039; &#039;&#039;&#039;sd-vconsole&#039;&#039;&#039; block &#039;&#039;&#039;sd-encrypt&#039;&#039;&#039; filesystems fsck)&lt;br /&gt;
&lt;br /&gt;
次に[[ユニファイドカーネルイメージ#mkinitcpio]]を参照して、[[ユニファイドカーネルイメージ]]mkinitcpioを設定します。&lt;br /&gt;
&lt;br /&gt;
この時点では&#039;&#039;&#039;まだ&#039;&#039;&#039;initramfsを再生成&#039;&#039;&#039;しない&#039;&#039;&#039;でください。{{ic|/boot/EFI/Linux}}ディレクトリは、先にブートローダインストーラによって作成される必要があります。&lt;br /&gt;
&lt;br /&gt;
=== ブートローダのインストール ===&lt;br /&gt;
&lt;br /&gt;
ブートローダを使用せずにシステムを直接起動するように設定することができます。[[ユニファイドカーネルイメージ#UEFI から直接起動]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
ブートローダが必要な場合は[[systemd-boot]]のインストールを続行します。&lt;br /&gt;
&lt;br /&gt;
 # bootctl install&lt;br /&gt;
&lt;br /&gt;
mkinitcpioによって生成された[[ユニファイドカーネルイメージ]]は自動的に認識されるため{{ic|/boot/loader/entries}}にエントリは必要ありません。&lt;br /&gt;
&lt;br /&gt;
詳細な設定については[[systemd-boot#EFI ブートマネージャの更新]]と[[systemd-boot#ローダー設定]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== インストール完了 ===&lt;br /&gt;
&lt;br /&gt;
[[initramfs#イメージ作成とアクティベーション|initramfsを再生成]]し、イメージの作成が成功したことを確認します。&lt;br /&gt;
&lt;br /&gt;
[[インストールガイド#Root パスワード|パスワードの設定]]を忘れずに行ったあと再起動してください。&lt;br /&gt;
&lt;br /&gt;
=== セキュアブート ===&lt;br /&gt;
&lt;br /&gt;
[[セキュアブート]] を有効にするためにブートローダとEFIバイナリに署名ができるようになりました。手軽な手段については[[Unified_Extensible_Firmware_Interface/セキュアブート#sbctl でより簡単に行う]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== Enrolling the TPM ===&lt;br /&gt;
&lt;br /&gt;
ブートローダへ署名し、セキュアブートを有効化したあとにTPMを登録してLUKSボリュームのロックを解除できるようにします。次のコマンドは{{ic|luksFormat}}で作成されたからのパスフレーズを削除し、TPM [[Trusted Platform Module#PCR レジスタへのアクセス|PCR 7]] (デフォルトでは{{ic| Secure Boot State}}とファームウェア証明書)にバインドされたキーを作成し、問題が発生した場合に使用する回復キーを作成します。ブートチェーンが改ざんされない限り、TPMは自動的にキーをリリースします。[[systemd-cryptenroll#Trusted Platform Module]]および{{man|1|systemd-cryptenroll}}を参照してください。&lt;br /&gt;
&lt;br /&gt;
 # systemd-cryptenroll /dev/sda2 --recovery-key&lt;br /&gt;
 # systemd-cryptenroll /dev/sda2 --wipe-slot=empty --tpm2-device=auto&lt;br /&gt;
&lt;br /&gt;
{{Tip| {{ic|1=--tpm2-with-pin=yes}} を指定してブート時に追加のPINの入力を強制することができます。}}&lt;br /&gt;
{{Warning|&lt;br /&gt;
* PCR 7へバインドするときは[[セキュアブート]]がSetup ModeからUser Modeになっていることを確認してください。そうでないと、許可されていないブートデバイスが暗号化されたボリュームのロックを解除する可能性があります。&lt;br /&gt;
* ファームウェア証明書が変更されるとPCR 7の状態が変わる可能性があり、ユーザがロックアウトされるリスクがあります。これは、[[fwupd]][https://raw.githubusercontent.com/systemd/systemd/ed272a9ff59a26beedaab508dd3c9d631de67165/TODO] によって暗黙的に実行されるか、セキュアブートキーをローテーションすることによって明示的に実行されます。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== LVM on LUKS ==&lt;br /&gt;
&lt;br /&gt;
LVM の上に暗号化パーティションをセットアップするのではなく、暗号化パーティションの上に [[LVM]] をセットアップするほうが簡単です。技術的にはひとつの大きな暗号化ブロックデバイスの中に LVM をセットアップすることになります。LVM はブロックデバイスを解錠して、ボリュームをスキャンしてマウントされるまでは透過的ではなくなります。&lt;br /&gt;
&lt;br /&gt;
ディスクレイアウトの例:&lt;br /&gt;
 +-----------------------------------------------------------------------+ +----------------+&lt;br /&gt;
 | Logical volume1       | Logical volume2       | Logical volume3       | |                |&lt;br /&gt;
 |/dev/mapper/MyVol-swap |/dev/mapper/MyVol-root |/dev/mapper/MyVol-home | | Boot partition |&lt;br /&gt;
 |_ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _| | (may be on     |&lt;br /&gt;
 |                                                                       | | other device)  |&lt;br /&gt;
 |                        LUKS encrypted partition                       | |                |&lt;br /&gt;
 |                          /dev/sdaX                                    | | /dev/sdbY      |&lt;br /&gt;
 +-----------------------------------------------------------------------+ +----------------+&lt;br /&gt;
&lt;br /&gt;
{{Warning|この方法では論理ボリュームを複数のディスクに跨がらせることはできません。後で変更することも不可能です。[[#複数のパーティションの encrypt フックを修正]]を見てください。}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|Two variants of this setup: &lt;br /&gt;
* [[Dm-crypt/特記事項#リモート LUKS ヘッダーを使ってシステムを暗号化]]ではこのセットアップと USB デバイスのリモート LUKS ヘッダーを使って二段階認証を実現します。&lt;br /&gt;
* Instructions at [http://www.pavelkogan.com/2014/05/23/luks-full-disk-encryption/ Pavel Kogan&#039;s blog] show how to encrypt the {{ic|/boot}} partition while keeping it on the main LUKS partition when using GRUB.}} &lt;br /&gt;
&lt;br /&gt;
=== ディスクの準備 ===&lt;br /&gt;
&lt;br /&gt;
パーティションを作成する前に、[[Dm-crypt/ドライブの準備]] で説明されているように、ディスクを完全に消去する必要性・方法を学んでください。&lt;br /&gt;
&lt;br /&gt;
[[GPT]] で [[GRUB]] ブートローダーを使う時は、[[GRUB#BIOS システム]] で説明されているように BIOS Boot Partition を作成してください。&lt;br /&gt;
&lt;br /&gt;
{{ic|/boot}} にマウントするパーティションをタイプ {{ic|8300}} で容量 100 MB 以上にして作成します。&lt;br /&gt;
&lt;br /&gt;
タイプ {{ic|8E00}} のパーティションを作成してください。後で暗号化コンテナを入れます。&lt;br /&gt;
&lt;br /&gt;
&amp;quot;system&amp;quot; パーティションに LUKS 暗号化コンテナを作成してください。選んだパスワードを二回入力します。&lt;br /&gt;
&lt;br /&gt;
 # cryptsetup luksFormat /dev/&#039;&#039;sdaX&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
cryptsetup のオプションについては [[Dm-crypt/デバイスの暗号化#LUKS モードの暗号化オプション|LUKS 暗号化のオプション]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
コンテナを開いてください:&lt;br /&gt;
&lt;br /&gt;
 # cryptsetup open /dev/&#039;&#039;sdaX&#039;&#039; cryptolvm&lt;br /&gt;
&lt;br /&gt;
復号化されたコンテナが {{ic|/dev/mapper/cryptolvm}} から利用できるようになります。&lt;br /&gt;
&lt;br /&gt;
=== 論理ボリュームの準備 ===&lt;br /&gt;
開いた LUKS コンテナの上に物理ボリュームを作成:&lt;br /&gt;
&lt;br /&gt;
 # pvcreate /dev/mapper/cryptolvm&lt;br /&gt;
&lt;br /&gt;
{{ic|MyVol}} という名前のボリュームグループを作成して、先に作成した物理ボリュームを追加:&lt;br /&gt;
&lt;br /&gt;
 # vgcreate MyVol /dev/mapper/cryptolvm&lt;br /&gt;
&lt;br /&gt;
ボリュームグループに論理ボリュームを作成:&lt;br /&gt;
&lt;br /&gt;
 # lvcreate -L 8G MyVol -n swap&lt;br /&gt;
 # lvcreate -L 15G MyVol -n root&lt;br /&gt;
 # lvcreate -l 100%FREE MyVol -n home&lt;br /&gt;
&lt;br /&gt;
論理ボリュームのファイルシステムをフォーマット:&lt;br /&gt;
&lt;br /&gt;
 # mkfs.ext4 /dev/mapper/MyVol-root&lt;br /&gt;
 # mkfs.ext4 /dev/mapper/MyVol-home&lt;br /&gt;
 # mkswap /dev/mapper/MyVol-swap&lt;br /&gt;
&lt;br /&gt;
ファイルシステムをマウント:&lt;br /&gt;
&lt;br /&gt;
 # mount /dev/mapper/MyVol-root /mnt&lt;br /&gt;
 # mkdir /mnt/home&lt;br /&gt;
 # mount /dev/mapper/MyVol-home /mnt/home&lt;br /&gt;
 # swapon /dev/mapper/MyVol-swap&lt;br /&gt;
&lt;br /&gt;
=== boot パーティションの準備 ===&lt;br /&gt;
ブートローダーは {{ic|/boot}} ディレクトリから、カーネルや [[initramfs]]、あるいはブートローダーの設定ファイルをロードします。このディレクトリは暗号化されていない別のファイルシステム上に配置する必要があります。&lt;br /&gt;
&lt;br /&gt;
{{ic|/boot}} にするパーティションに Ext2 ファイルシステムを作成します。ブートローダーが読み込めるファイルシステムなら何でもかまいません。&lt;br /&gt;
&lt;br /&gt;
 # mkfs.ext2 /dev/&#039;&#039;sdbY&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{ic|/mnt/boot}} ディレクトリを作成:&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/boot&lt;br /&gt;
&lt;br /&gt;
パーティションを {{ic|/mnt/boot}} にマウント:&lt;br /&gt;
&lt;br /&gt;
 # mount /dev/&#039;&#039;sdbY&#039;&#039; /mnt/boot&lt;br /&gt;
&lt;br /&gt;
インストールの手順を mkinitcpio の設定まで進めてください。&lt;br /&gt;
&lt;br /&gt;
=== mkinitcpio の設定 ===&lt;br /&gt;
{{ic|keyboard}}, {{ic|encrypt}}, {{ic|lvm2}} フックを [[mkinitcpio|mkinitcpio.conf]] 内の {{ic|filesystems}} の前に追加します:&lt;br /&gt;
{{hc|/etc/mkinitcpio.conf|2=HOOKS=(... &#039;&#039;&#039;keyboard&#039;&#039;&#039; &#039;&#039;&#039;keymap&#039;&#039;&#039; block &#039;&#039;&#039;encrypt&#039;&#039;&#039; &#039;&#039;&#039;lvm2&#039;&#039;&#039; ... filesystems ...)}}&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|lvm2}} の最新実装ではフックの順番は特に意味を持ちません。}}&lt;br /&gt;
&lt;br /&gt;
他に必要なフックについては [[dm-crypt/システム設定#mkinitcpio]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
設定後はイメージを再生成してください:&lt;br /&gt;
&lt;br /&gt;
 # mkinitcpio -p linux&lt;br /&gt;
&lt;br /&gt;
=== ブートローダーの設定 ===&lt;br /&gt;
起動時に暗号化された root パーティションの暗号化が解除されるように、以下のカーネルパラメータをブートローダーで設定します ({{ic|&#039;&#039;&amp;lt;device-UUID&amp;gt;&#039;&#039;}} は {{ic|/dev/sdaX}} の UUID に置き換えてください。詳しくは[[永続的なブロックデバイスの命名]]を参照):&lt;br /&gt;
&lt;br /&gt;
 cryptdevice=UUID=&#039;&#039;device-UUID&#039;&#039;:cryptolvm root=/dev/mapper/MyVol-root&lt;br /&gt;
&lt;br /&gt;
詳しくは [[Dm-crypt/システム設定#ブートローダー]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
== LUKS on LVM ==&lt;br /&gt;
&lt;br /&gt;
[[LVM]] 上で暗号化を利用するには、まず LVM ボリュームをセットアップして、それから暗号化パーティションのベースとして使うことになります。この方法では、暗号化パーティションと非暗号化パーティションのミックスが可能です。&lt;br /&gt;
&lt;br /&gt;
{{Tip|[[#LVM on LUKS]] とは違って、複数のディスクにまたがる論理ボリュームを通常通り使うことができます。}}&lt;br /&gt;
&lt;br /&gt;
以下の短い例では LUKS on LVM 構成を作成して、/home パーティションでキーファイルを使用して {{ic|/tmp}} と {{ic|/swap}} の一時的な暗号化ボリュームを混ぜ合わせます。機密データを含む一時データが再起動しても残ってしまう可能性がないため、セキュリティ的に優れています。論理ボリュームを複数のディスクにまたがるようにしたい場合、手順は [[Dm-crypt/特記事項#LVM を複数のディスクに拡張]]で説明しています。&lt;br /&gt;
&lt;br /&gt;
=== ディスクの準備 ===&lt;br /&gt;
&lt;br /&gt;
パーティションスキーム:&lt;br /&gt;
 +----------------+-----------------------------------------------------------------------+&lt;br /&gt;
 |                | LUKS encrypted volume | LUKS encrypted volume | LUKS encrypted volume |&lt;br /&gt;
 |                | /dev/mapper/swap      | /dev/mapper/root      | /dev/mapper/home      |&lt;br /&gt;
 |                |_ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _|&lt;br /&gt;
 |                | Logical volume1       | Logical volume2       | Logical volume3       |&lt;br /&gt;
 |                |/dev/mapper/MyVol-swap |/dev/mapper/MyVol-root |/dev/mapper/MyVol-home |&lt;br /&gt;
 |                |_ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _|&lt;br /&gt;
 | Boot partition |                                                                       |&lt;br /&gt;
 |   /dev/sda1    |                               /dev/sda2                               |&lt;br /&gt;
 +----------------+-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
[[Dm-crypt/ドライブの準備#dm-crypt で空のディスクまたはパーティションを消去]]を見て {{ic|/dev/sda2}} をランダム化してください。&lt;br /&gt;
&lt;br /&gt;
=== 論理ボリュームの準備 ===&lt;br /&gt;
&lt;br /&gt;
 # pvcreate /dev/sda2&lt;br /&gt;
 # vgcreate MyVol /dev/sda2&lt;br /&gt;
 # lvcreate -L 10G -n lvroot MyVol&lt;br /&gt;
 # lvcreate -L 500M -n swap MyVol&lt;br /&gt;
 # lvcreate -L 500M -n tmp MyVol&lt;br /&gt;
 # lvcreate -l 100%FREE -n home MyVol&lt;br /&gt;
&lt;br /&gt;
 # cryptsetup luksFormat -c aes-xts-plain64 -s 512 /dev/mapper/MyVol-lvroot&lt;br /&gt;
 # cryptsetup open /dev/mapper/MyVol-lvroot root&lt;br /&gt;
 # mkfs.ext4 /dev/mapper/root&lt;br /&gt;
 # mount /dev/mapper/root /mnt&lt;br /&gt;
&lt;br /&gt;
この例では {{ic|/home}} は[[#論理ボリューム /home の暗号化|後で]]暗号化します。Arch-ISO から暗号化したルートにアクセスする必要がある場合、上記の {{ic|open}} アクションで [[LVM#論理ボリュームが表示されない|LVM を表示]]した後にアクセスできます。&lt;br /&gt;
&lt;br /&gt;
=== boot パーティションの準備 ===&lt;br /&gt;
 # dd if=/dev/zero of=/dev/sda1 bs=1M status=progress&lt;br /&gt;
 # mkfs.ext4 /dev/sda1&lt;br /&gt;
 # mkdir /mnt/boot&lt;br /&gt;
 # mount /dev/sda1 /mnt/boot&lt;br /&gt;
&lt;br /&gt;
暗号化した LVM のパーティションを設定したら、インストールを行ってください: [[インストールガイド#パーティションのマウント|Arch Install Scripts]]。&lt;br /&gt;
&lt;br /&gt;
=== mkinitcpio の設定 ===&lt;br /&gt;
&lt;br /&gt;
{{ic|encrypt}} と {{ic|lvm2}} フックを [[mkinitcpio|mkinitcpio.conf]] 内の {{ic|filesystems}} の前に追加します:&lt;br /&gt;
{{hc|/etc/mkinitcpio.conf|2=HOOKS=(... &#039;&#039;&#039;keyboard&#039;&#039;&#039; &#039;&#039;&#039;keymap&#039;&#039;&#039; block &#039;&#039;&#039;lvm2&#039;&#039;&#039; &#039;&#039;&#039;encrypt&#039;&#039;&#039; ... filesystems ...)}}&lt;br /&gt;
&lt;br /&gt;
他に必要なフックについては [[dm-crypt/システム設定#mkinitcpio]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
設定ファイルを変更した後は次のコマンドを root 権限で実行してください:&lt;br /&gt;
&lt;br /&gt;
 # mkinitcpio -p linux&lt;br /&gt;
&lt;br /&gt;
=== ブートローダーの設定 ===&lt;br /&gt;
&lt;br /&gt;
上の例の場合、ブートローダーの設定で root デバイスのカーネルオプションを以下のように変更します:&lt;br /&gt;
 cryptdevice=/dev/mapper/MyVol-lvroot:root root=/dev/mapper/root&lt;br /&gt;
詳しくは [[Dm-crypt/システム設定#ブートローダー]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== fstab と crypttab の設定 ===&lt;br /&gt;
{{hc|/etc/fstab|&lt;br /&gt;
 /dev/mapper/root        /       ext4            defaults        0       1&lt;br /&gt;
 /dev/sda1               /boot   ext4            defaults        0       2&lt;br /&gt;
 /dev/mapper/tmp         /tmp    tmpfs           defaults        0       0&lt;br /&gt;
 /dev/mapper/swap        none    swap            sw              0       0}}&lt;br /&gt;
以下の [[Dm-crypt/システム設定#crypttab|crypttab]] オプションは再起動するたびに一時ファイルシステムを暗号化します:&lt;br /&gt;
{{hc|/etc/crypttab|&lt;br /&gt;
swap	/dev/mapper/MyVol-swap	/dev/urandom	swap,cipher&amp;lt;nowiki&amp;gt;=aes-xts-plain64,size=&amp;lt;/nowiki&amp;gt;256&lt;br /&gt;
tmp	/dev/mapper/MyVol-tmp	/dev/urandom	tmp,cipher&amp;lt;nowiki&amp;gt;=aes-xts-plain64,size=&amp;lt;/nowiki&amp;gt;256&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== 論理ボリューム /home の暗号化 ===&lt;br /&gt;
Since this scenario uses LVM as the primary and dm-crypt as secondary mapper, each encrypted logical volume requires its own encryption. Yet, unlike the temporary filesystems configured with volatile encryption above, the logical volume for {{ic|/home}} should be persistent, of course. The following assumes you have rebooted into the installed system, otherwise you have to adjust paths.&lt;br /&gt;
To safe on entering a second passphrase at boot for it, a [[Dm-crypt/デバイスの暗号化#キーファイル|keyfile]] is created: &lt;br /&gt;
 # mkdir -m 700 /etc/luks-keys&lt;br /&gt;
 # dd if=/dev/random of=/etc/luks-keys/home bs=1 count=256 status=progress&lt;br /&gt;
&lt;br /&gt;
論理ボリュームは以下のように暗号化します:&lt;br /&gt;
 # cryptsetup luksFormat -v -s 512 /dev/mapper/MyVol-home /etc/luks-keys/home&lt;br /&gt;
 # cryptsetup -d /etc/luks-keys/home open /dev/mapper/MyVol-home home&lt;br /&gt;
 # mkfs.ext4 /dev/mapper/home&lt;br /&gt;
 # mount /dev/mapper/home /home&lt;br /&gt;
暗号化されたマウントは [[Dm-crypt/システム設定#crypttab|crypttab]] で設定します:&lt;br /&gt;
{{hc|/etc/crypttab|&lt;br /&gt;
home /dev/mapper/MyVol-home  /etc/luks-keys/home}}&lt;br /&gt;
{{hc|/etc/fstab|&lt;br /&gt;
/dev/mapper/home        /home  ext4        defaults        0      2}}&lt;br /&gt;
これでセットアップは完了です。&lt;br /&gt;
&lt;br /&gt;
If you want to expand the logical volume for {{ic|/home}} (or any other volume) at a later point, it is important to note that the LUKS encrypted part has to be resized as well. For a procedure see [[Dm-crypt/特記事項#LVM を複数のディスクに拡張]].&lt;br /&gt;
&lt;br /&gt;
== ソフトウェア RAID と LUKS ==&lt;br /&gt;
&lt;br /&gt;
以下の例では同じ容量の SSD を2台とストレージ用の HDD を搭載したワークステーション向けノートパソコンの設定を元にしています。最終的には LUKS ベースの ({{ic|/boot}} を含む) 完全ディスク暗号化を実現し、SSD は [[RAID|RAID0]] アレイにして、起動時に [[GRUB]] にパスフレーズを指定した後にキーファイルで暗号化を解除します。SSD の [[TRIM]] のサポートは有効にしますが、[[Dm-crypt/特記事項#ソリッドステートドライブ (SSD) の Discard/TRIM のサポート]]も読むと良いでしょう。&lt;br /&gt;
&lt;br /&gt;
非常にシンプルなパーティションスキームを使用し、RAID ストレージは全て {{ic|/}} にマウントして ({{ic|/boot}} パーティションは分割しません)、HDD は {{ic|/mnt/data}} にマウントします。システムは BIOS モードで起動し [[パーティショニング|GPT]] でパーティショニングします。&lt;br /&gt;
&lt;br /&gt;
定期的に[[バックアップ]]を取ることが非常に重要です。SSD のどちらかが故障すると、RAID アレイに保存されていたデータは復元できなくなります。耐障害性が大事なのであれば [[RAID#通常の RAID レベル|RAID レベル]]を慎重に選択してください。&lt;br /&gt;
&lt;br /&gt;
The encryption is not deniable in this setup.&lt;br /&gt;
&lt;br /&gt;
For the sake of the instructions below, the following block devices are used:&lt;br /&gt;
 /dev/sda = first SSD&lt;br /&gt;
 /dev/sdb = second SSD&lt;br /&gt;
 /dev/sdc = HDD&lt;br /&gt;
Be sure to substitue them with the appropriate device designations for your setup, as they may be different.&lt;br /&gt;
&lt;br /&gt;
=== ディスクの準備 ===&lt;br /&gt;
&lt;br /&gt;
パーティションを作成する前に、[[Dm-crypt/ドライブの準備]]に書かれているようにディスクの完全消去について考慮してください。&lt;br /&gt;
&lt;br /&gt;
[[GRUB]] ブートローダーを [[GPT]] で使用する場合、[[GRUB#BIOS システム]]に書かれているように BIOS Boot Partition を作成する必要があります。例として {{ic|/dev/sda1}} に &amp;quot;BIOS boot&amp;quot; の 1M パーティションを作成して、残りの空き容量は全て &amp;quot;Linux RAID&amp;quot; として {{ic|/dev/sda2}} にパーティションします。&lt;br /&gt;
&lt;br /&gt;
{{ic|/dev/sda}} にパーティションを作成したら以下のコマンドを使って {{ic|/dev/sdb}} に複製:&lt;br /&gt;
 # sfdisk -d /dev/sda &amp;gt; sda.dump&lt;br /&gt;
 # sfdisk /dev/sdb &amp;lt; sda.dump&lt;br /&gt;
&lt;br /&gt;
The HDD is prepared with a single Linux partition covering the whole drive at {{ic|/dev/sdc1}}.&lt;br /&gt;
&lt;br /&gt;
=== RAID アレイの構築 ===&lt;br /&gt;
&lt;br /&gt;
Create the RAID array for the SSDs. This example utilizes RAID0, you may wish to substitute a different level based on your preferences or requirements. &lt;br /&gt;
 # mdadm --create --verbose --level=0 --metadata=1.2 --raid-devices=2 /dev/md0 /dev/sda2 /dev/sdb2&lt;br /&gt;
&lt;br /&gt;
=== ブロックデバイスの準備 ===&lt;br /&gt;
&lt;br /&gt;
[[Dm-crypt/ドライブの準備]]に書かれているように {{ic|/dev/zero}} を使ってデバイスを消去してからランダムなキーでデバイスを暗号化してください。もしくは {{ic|dd}} で {{ic|/dev/random}} や {{ic|/dev/urandom}} を使うこともできます:&lt;br /&gt;
 # cryptsetup open --type plain /dev/md0 container --key-file /dev/random&lt;br /&gt;
 # dd if=/dev/zero of=/dev/mapper/container bs=1M status=progress&lt;br /&gt;
 # cryptsetup close container&lt;br /&gt;
&lt;br /&gt;
And repeat above for the HDD ({{ic|/dev/sdc1}} in this example).&lt;br /&gt;
&lt;br /&gt;
Set up encryption for {{ic|/dev/md0}}:&lt;br /&gt;
 # cryptsetup -y -v luksFormat -c aes-xts-plain64 -s 512 /dev/md0&lt;br /&gt;
 # cryptsetup open /dev/md0 cryptroot&lt;br /&gt;
 # mkfs.ext4 /dev/mapper/cryptroot&lt;br /&gt;
 # mount /dev/mapper/cryptroot /mnt&lt;br /&gt;
&lt;br /&gt;
And repeat for the HDD:&lt;br /&gt;
 # cryptsetup -y -v luksFormat -c aes-xts-plain64 -s 512 /dev/sdc1&lt;br /&gt;
 # cryptsetup open /dev/sdc1 cryptdata&lt;br /&gt;
 # mkfs.ext4 /dev/mapper/cryptdata&lt;br /&gt;
 # mkdir -p /mnt/mnt/data&lt;br /&gt;
 # mount /dev/mapper/cryptdata /mnt/mnt/data&lt;br /&gt;
&lt;br /&gt;
=== ブートローダーの設定 ===&lt;br /&gt;
&lt;br /&gt;
Configure [[GRUB]] for the encrypted system by editing {{ic|/etc/default/grub}} with the following. Note that the {{ic|:allow-discards}} option enables TRIM support on the SSDs, if you do not wish to use it you should omit this.&lt;br /&gt;
 GRUB_CMDLINE_LINUX=&amp;quot;cryptdevice=/dev/md0:cryptroot:allow-discards root=/dev/mapper/cryptroot&amp;quot;&lt;br /&gt;
 GRUB_ENABLE_CRYPTODISK=y&lt;br /&gt;
&lt;br /&gt;
詳しくは [[Dm-crypt/システム設定#ブートローダー]]や [[GRUB#暗号化された /boot]]を見てください。&lt;br /&gt;
&lt;br /&gt;
Complete the GRUB install to both SSDs (in reality, installing only to {{ic|/dev/sda}} will work).&lt;br /&gt;
 # grub-install --target=i386-pc /dev/sda&lt;br /&gt;
 # grub-install --target=i386-pc /dev/sdb&lt;br /&gt;
 # grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
=== キーファイルの作成 ===&lt;br /&gt;
&lt;br /&gt;
システムの起動時にパスフレーズを二回入力する手間を省く設定です。[[dm-crypt/デバイスの暗号化#キーファイル|キーファイル]]を作成して initramfs イメージに追加することで encrypt フックでルートデバイスを解除できるようにします。詳しくは [[dm-crypt/デバイスの暗号化#キーファイルを initramfs に埋め込む]] を参照。&lt;br /&gt;
&lt;br /&gt;
* [[dm-crypt/デバイスの暗号化#キーファイル|キーファイル]]を作成して {{ic|/dev/md0}} にキーを追加。&lt;br /&gt;
* HDD ({{ic|/dev/sdc1}}) のキーファイルを作成することで起動時に解錠が可能です。上記で作成したパスフレーズは残すことで後で必要になったときに復旧が簡単です。{{ic|/etc/crypttab}} を編集して起動時に HDD を復号化してください。詳しくは [[dm-crypt/デバイスの暗号化#起動時にロックを解除]]を参照。&lt;br /&gt;
&lt;br /&gt;
=== システムの設定 ===&lt;br /&gt;
&lt;br /&gt;
[[fstab|/etc/fstab]] を編集して cryptroot と cryptdata ブロックデバイスをマウントしてください。TRIM のサポートを有効にしなかった場合、{{ic|discard}} マウントオプションは削除してください:&lt;br /&gt;
&lt;br /&gt;
 /dev/mapper/cryptroot  /           ext4    rw,noatime,discard  0   1 &lt;br /&gt;
 /dev/mapper/cryptdata  /mnt/data   ext4    defaults            0   2  &lt;br /&gt;
&lt;br /&gt;
RAID の設定を保存:&lt;br /&gt;
&lt;br /&gt;
 # mdadm --detail --scan &amp;gt; /etc/mdadm.conf &lt;br /&gt;
&lt;br /&gt;
[[mkinitcpio.conf]] を編集してキーファイルを適切なフックを追加してください:&lt;br /&gt;
&lt;br /&gt;
 FILES=(/crypto_keyfile.bin)&lt;br /&gt;
 HOOKS=( ... &#039;&#039;&#039;keyboard&#039;&#039;&#039; &#039;&#039;&#039;keymap&#039;&#039;&#039; block &#039;&#039;&#039;mdadm_udev&#039;&#039;&#039; &#039;&#039;&#039;encrypt&#039;&#039;&#039; filesystems ... )&lt;br /&gt;
&lt;br /&gt;
詳しくは [[dm-crypt/システム設定#mkinitcpio]] を参照。&lt;br /&gt;
&lt;br /&gt;
== Plain dm-crypt ==&lt;br /&gt;
&lt;br /&gt;
Contrary to LUKS, dm-crypt &#039;&#039;plain&#039;&#039; mode does not require a header on the encrypted device: this scenario exploits this feature to set up a system on an unpartitioned, encrypted disk that will be indistinguishable from a disk filled with random data, which could allow [[Wikipedia:Deniable encryption|deniable encryption]]. See also [[wikipedia:Disk encryption#Full disk encryption]].&lt;br /&gt;
&lt;br /&gt;
Note that if full-disk encryption is not required, the methods using LUKS described in the sections above are better options for both system encryption and encrypted partitions. LUKS features like key management with multiple passphrases/key-files or re-encrypting a device in-place are unavailable with &#039;&#039;plain&#039;&#039; mode.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Plain&#039;&#039; dm-crypt encryption can be more resilient to damage than LUKS encrypted disks, because it does not rely on an encryption master-key which can be a single-point of failure if damaged. However, using &#039;&#039;plain&#039;&#039; mode also requires more manual configuration of encryption options to achieve the same cryptographic strength. See also [[ディスク暗号化#暗号メタデータ]]. Using &#039;&#039;plain&#039;&#039; mode could also be considered if concerned with the problems explained in [[Dm-crypt/特記事項#ソリッドステートドライブ (SSD) の Discard/TRIM のサポート]].&lt;br /&gt;
&lt;br /&gt;
{{Tip|If headerless encryption is your goal but you are unsure about the lack of key-derivation with &#039;&#039;plain&#039;&#039; mode, then two alternatives are:&lt;br /&gt;
* dm-crypt LUKS mode by using the &#039;&#039;cryptsetup&#039;&#039; {{ic|--header}} option. It cannot be used with the standard &#039;&#039;encrypt&#039;&#039; hook, but the hook [[Dm-crypt/特記事項#リモート LUKS ヘッダーを使ってシステムを暗号化|may be modified]].&lt;br /&gt;
* [[tcplay]] which offers headerless encryption but with the PBKDF2 function.}}&lt;br /&gt;
&lt;br /&gt;
このシナリオでは2つの USB スティックを使います:&lt;br /&gt;
* one for the boot device, which also allows storing the options required to open/unlock the plain encrypted device in the boot loader configuration, since typing them on each boot would be error prone;&lt;br /&gt;
* another for the encryption key file, assuming it stored as raw bits so that to the eyes of an unaware attacker who might get the usbkey the encryption key will appear as random data instead of being visible as a normal file. See also [[Wikipedia:Security through obscurity]], follow [[Dm-crypt/デバイスの暗号化#キーファイル]] to prepare the keyfile.&lt;br /&gt;
&lt;br /&gt;
 |--------------------+------------------+--------------------+ +---------------+ +---------------+&lt;br /&gt;
 |Volume 1:           |Volume 2:         |Volume 3:           | |Boot device    | |Encryption key |&lt;br /&gt;
 |                    |                  |                    | |               | |file storage   |&lt;br /&gt;
 |root                |swap              |home                | |/boot          | |(unpartitioned |&lt;br /&gt;
 |                    |                  |                    | |               | |in example)    |&lt;br /&gt;
 |/dev/store/root     |/dev/store/swap   |/dev/store/home     | |/dev/sdY1      | |/dev/sdZ       |&lt;br /&gt;
 |--------------------+------------------+--------------------| |---------------| |---------------|&lt;br /&gt;
 |disk drive /dev/sdaX encrypted using plain mode and LVM     | |USB stick 1    | |USB stick 2    |&lt;br /&gt;
 +------------------------------------------------------------+ +---------------+ +---------------+&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* It is also possible to use a single usb key by copying the keyfile to the initram directly. An example keyfile {{ic|/etc/keyfile}} gets copied to the initram image by setting {{ic|1=FILES=(/etc/keyfile)}} in {{ic|/etc/mkinitcpio.conf}}. The way to instruct the {{ic|encrypt}} hook to read the keyfile in the initram image is using {{ic|rootfs:}} prefix before the filename, e.g. {{ic|cryptkey&amp;amp;#61;rootfs:/etc/keyfile}}.&lt;br /&gt;
* [[ディスク暗号化#強固なパスフレーズの選択|エントロピー]]が十分なパスフレーズを使用するという選択肢も存在します。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== ディスクの準備 ===&lt;br /&gt;
&lt;br /&gt;
It is vital that the mapped device is filled with data. In particular this applies to the scenario usecase we apply here. &lt;br /&gt;
&lt;br /&gt;
[[Dm-crypt/ドライブの準備]] や [[Dm-crypt/ドライブの準備#dm-crypt 固有の方法]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== boot 以外のパーティションの準備 ===&lt;br /&gt;
&lt;br /&gt;
詳しくは [[Dm-crypt/デバイスの暗号化#plain モードの暗号化オプション]] を参照。&lt;br /&gt;
&lt;br /&gt;
Using the device {{ic|/dev/sd&#039;&#039;X&#039;&#039;}}, with the twofish-xts cipher with a 512 bit key size and using a keyfile we have the following options for this scenario:&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;# cryptsetup --hash=sha512 --cipher=twofish-xts-plain64 --offset=0 --key-file=&amp;lt;/nowiki&amp;gt;/dev/sd&#039;&#039;Z&#039;&#039; &amp;lt;nowiki&amp;gt;--key-size=512 open --type=plain /dev/sdX enc&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
Unlike encrypting with LUKS, the above command must be executed &#039;&#039;in full&#039;&#039; whenever the mapping needs to be re-established, so it is important to remember the cipher, hash and key file details. &lt;br /&gt;
&lt;br /&gt;
We can now check a mapping entry has been made for {{ic|/dev/mapper/enc}}:&lt;br /&gt;
 # fdisk -l&lt;br /&gt;
&lt;br /&gt;
Next, we setup [[LVM]] logical volumes on the mapped device, see [[LVM#Arch Linux を LVM にインストールする]] for further details: &lt;br /&gt;
 # pvcreate /dev/mapper/enc&lt;br /&gt;
 # vgcreate store /dev/mapper/enc&lt;br /&gt;
 # lvcreate -L 20G store -n root&lt;br /&gt;
 # lvcreate -L 10G store -n swap&lt;br /&gt;
 # lvcreate -l +100%FREE store -n home&lt;br /&gt;
論理ボリュームをフォーマットしてマウントします。詳しくは[[ファイルシステム#デバイスのフォーマット]]を見て下さい &lt;br /&gt;
 # mkfs.ext4 /dev/store/root&lt;br /&gt;
 # mkfs.ext4 /dev/store/home&lt;br /&gt;
 # mount /dev/store/root /mnt&lt;br /&gt;
 # mkdir /mnt/home&lt;br /&gt;
 # mount /dev/store/home /mnt/home&lt;br /&gt;
 # mkswap /dev/store/swap&lt;br /&gt;
 # swapon /dev/store/swap&lt;br /&gt;
&lt;br /&gt;
=== boot パーティションの準備 ===&lt;br /&gt;
必要であれば、USB スティックの vfat パーティションに {{ic|/boot}} パーティションをインストールできます。ただし、手動のパーティションが必要な場合、小さな 200MB のパーティションで十分です。お好きな [[パーティショニング#パーティショニングツール|パーティションツール]]を使ってパーティションを作成してください。&lt;br /&gt;
&lt;br /&gt;
vfat でフォーマットされていない場合、{{ic|/boot}} パーティションのフラッシュメモリを保護するため非ジャーナリングファイルシステムを選択します:&lt;br /&gt;
 # mkfs.ext2 /dev/sd&#039;&#039;Y&#039;&#039;1&lt;br /&gt;
 # mkdir /mnt/boot&lt;br /&gt;
 # mount /dev/sd&#039;&#039;Y&#039;&#039;1 /mnt/boot&lt;br /&gt;
&lt;br /&gt;
=== mkinitcpio の設定 ===&lt;br /&gt;
&lt;br /&gt;
{{ic|keyboard}}, {{ic|encrypt}}, {{ic|lvm2}} フックを [[mkinitcpio|mkinitcpio.conf]] 内の {{ic|filesystems}} の前に追加します:&lt;br /&gt;
{{hc|etc/mkinitcpio.conf|2=HOOKS=(... &#039;&#039;&#039;keyboard&#039;&#039;&#039; &#039;&#039;&#039;keymap&#039;&#039;&#039; block &#039;&#039;&#039;encrypt&#039;&#039;&#039; &#039;&#039;&#039;lvm2&#039;&#039;&#039; ... filesystems ...)}}&lt;br /&gt;
&lt;br /&gt;
他に必要なフックについては [[dm-crypt/システム設定#mkinitcpio]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
設定後はイメージを再生成してください:&lt;br /&gt;
&lt;br /&gt;
 # mkinitcpio -p linux&lt;br /&gt;
&lt;br /&gt;
=== ブートローダーの設定 ===&lt;br /&gt;
&lt;br /&gt;
暗号化した root パーティションを起動するには、以下のカーネルパラメータをブートローダーで設定する必要があります:&lt;br /&gt;
&lt;br /&gt;
 cryptdevice=/dev/sd&#039;&#039;X&#039;&#039;:enc cryptkey=/dev/sd&#039;&#039;Z&#039;&#039;:0:512 crypto=sha512:twofish-xts-plain64:512:0:&lt;br /&gt;
&lt;br /&gt;
{{Note|encrypt の代わりに sd-encrypt を使用する場合、cryptdevice の代わりに {{ic|&#039;&#039;luks.uuid&#039;&#039;}} を使ってください。詳しくは &#039;&#039;systemd-cryptsetup-generator(8)&#039;&#039; を参照。}}&lt;br /&gt;
&lt;br /&gt;
他に必要なパラメータについては [[Dm-crypt/システム設定#ブートローダー]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
{{Tip|GRUB を使用する場合、次のコマンドを使うことで {{ic|/boot}} パーティションと同じ USB にインストールすることができます:&lt;br /&gt;
 # grub-install --recheck /dev/sd&#039;&#039;Y&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===インストール後===&lt;br /&gt;
&lt;br /&gt;
起動後に USB スティックは取り除けます。{{ic|/boot}} パーティションは通常は必要ないため、{{ic|noauto}} オプションを {{ic|/etc/fstab}} に追加できます:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/fstab|&lt;br /&gt;
# /dev/sd&#039;&#039;Yn&#039;&#039;&lt;br /&gt;
/dev/sd&#039;&#039;Yn&#039;&#039; /boot ext2 &#039;&#039;&#039;noauto&#039;&#039;&#039;,rw,noatime 0 2}}&lt;br /&gt;
&lt;br /&gt;
ただしカーネルやブートローダーのアップグレードが必要なときは、{{ic|/boot}} パーティションがマウントされていなければなりません。{{ic|fstab}} に既にエントリが存在すれば、次のコマンドでマウントできます:&lt;br /&gt;
&lt;br /&gt;
 # mount /boot&lt;br /&gt;
&lt;br /&gt;
== boot パーティションの暗号化 (GRUB) ==&lt;br /&gt;
&lt;br /&gt;
このセットアップでは [[#LVM on LUKS]] セクションと同じパーティションレイアウト・設定でシステムのルートパーティションを設定しますが、違いが2つあります:&lt;br /&gt;
&lt;br /&gt;
# セットアップは [[UEFI]] 環境で行います。&lt;br /&gt;
# [[GRUB]] ブートローダーの特殊機能を使用してブートパーティション {{ic|/boot}} も暗号化します。[[GRUB#暗号化された /boot]]を見てください。&lt;br /&gt;
&lt;br /&gt;
ディスクレイアウトは以下のようになります:&lt;br /&gt;
&lt;br /&gt;
 +---------------+----------------+----------------+----------------+----------------+&lt;br /&gt;
 |ESP partition: |Boot partition: |Volume 1:       |Volume 2:       |Volume 3:       |&lt;br /&gt;
 |               |                |                |                |                |&lt;br /&gt;
 |/boot/efi      |/boot           |root            |swap            |home            |&lt;br /&gt;
 |               |                |                |                |                |&lt;br /&gt;
 |               |                |/dev/store/root |/dev/store/swap |/dev/store/home |&lt;br /&gt;
 |/dev/sdaX      |/dev/sdaY       +----------------+----------------+----------------+&lt;br /&gt;
 |&#039;&#039;&#039;un&#039;&#039;&#039;encrypted    |LUKS encrypted  |/dev/sdaZ encrypted using LVM on LUKS             |&lt;br /&gt;
 +---------------+----------------+--------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
{{Tip|All scenarios are intended as examples. It is, of course, possible to apply both of the two above distinct installation steps with the other scenarios as well. See also the variants linked in [[#LVM on LUKS]].}}&lt;br /&gt;
{{Note|{{AUR|cryptboot}} パッケージの {{ic|cryptboot}} スクリプトを使うことで暗号化された boot の管理 (マウント・アンマウント・パッケージのアップグレード) を簡単にできます。また、[[セキュアブート#自分で署名した鍵を使う|UEFI Secure Boot]] を使用して [https://www.schneier.com/blog/archives/2009/10/evil_maid_attac.html 悪意あるメイド] 攻撃から身を守ることができます。詳しくは [https://github.com/xmikos/cryptboot cryptboot のプロジェクトページ] を参照。}}&lt;br /&gt;
&lt;br /&gt;
=== ディスクの準備 ===&lt;br /&gt;
&lt;br /&gt;
パーティションを作成する前に、[[Dm-crypt/ドライブの準備]]に書かれているように、ディスクを完全に消去するようにしてください。&lt;br /&gt;
&lt;br /&gt;
[[Unified_Extensible_Firmware_Interface#EFI_System_Partition|EFI System Partition (ESP)]] を適当な容量で作成してください。後で {{ic|/boot/efi}} にマウントします。&lt;br /&gt;
&lt;br /&gt;
{{ic|/boot}} にマウントするパーティションをタイプ {{ic|8300}} の容量 100 MB 以上で作成します。&lt;br /&gt;
&lt;br /&gt;
{{Tip|BIOS/[[GPT]] で [[GRUB]] ブートローダーを使用する場合は、[[GRUB#BIOS システム]]に書かれているように ESP の代わりに BIOS Boot Partition を作成してください。}}&lt;br /&gt;
&lt;br /&gt;
タイプ {{ic|8E00}} のパーティションを作成してください。後で暗号化コンテナを入れます。&lt;br /&gt;
&lt;br /&gt;
&amp;quot;system&amp;quot; パーティションに LUKS 暗号化コンテナを作成してください。&lt;br /&gt;
&lt;br /&gt;
 # cryptsetup luksFormat /dev/&#039;&#039;sdaZ&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
上記のコマンドの cryptsetup で使えるオプションについては [[Dm-crypt/デバイスの暗号化#LUKS モードの暗号化オプション|LUKS 暗号化オプション]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
パーティションレイアウトは以下のようになります:&lt;br /&gt;
{{hc|# gdisk /dev/sda |&lt;br /&gt;
Number  Start (sector)    End (sector)  Size       Code  Name&lt;br /&gt;
   1            2048         1050623   512.0 MiB   EF00  EFI System&lt;br /&gt;
   2         1050624         1460223   200.0 MiB   8300  Linux filesystem&lt;br /&gt;
   3         1460224        41943006   19.3 GiB    8E00  Linux LVM&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
コンテナを開く:&lt;br /&gt;
&lt;br /&gt;
 # cryptsetup open --type luks /dev/&#039;&#039;sdaZ&#039;&#039; lvm&lt;br /&gt;
&lt;br /&gt;
復号化されたコンテナは {{ic|/dev/mapper/lvm}} から利用できます。&lt;br /&gt;
&lt;br /&gt;
=== 論理ボリュームの準備 ===&lt;br /&gt;
&lt;br /&gt;
The LVM logical volumes of this example follow the exact layout as the previous scenario. Therefore, please follow [[#論理ボリュームの準備|Preparing the logical volumes]] above or adjust as required.&lt;br /&gt;
&lt;br /&gt;
=== boot パーティションの準備 ===&lt;br /&gt;
&lt;br /&gt;
ブートローダーは {{ic|/boot}} ディレクトリからカーネルや [[initramfs]]、あるいはブートローダーの設定ファイルをロードします。&lt;br /&gt;
&lt;br /&gt;
まず、ファイルを配置・インストールするための LUKS コンテナを作成:&lt;br /&gt;
 &lt;br /&gt;
 # cryptsetup luksFormat /dev/sda&#039;&#039;Y&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
次に、コンテナをオープン:&lt;br /&gt;
 # cryptsetup open /dev/sda&#039;&#039;Y&#039;&#039; cryptboot &lt;br /&gt;
&lt;br /&gt;
{{ic|/boot}} にするパーティションにファイルシステムを作成。ブートローダーから読み込めるならどんなファイルシステムでもかまいません:&lt;br /&gt;
&lt;br /&gt;
 # mkfs.ext2 /dev/mapper/&#039;&#039;cryptboot&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{ic|/mnt/boot}} ディレクトリを作成:&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/boot&lt;br /&gt;
&lt;br /&gt;
パーティションを {{ic|/mnt/boot}} にマウント:&lt;br /&gt;
&lt;br /&gt;
 # mount /dev/mapper/&#039;&#039;cryptboot&#039;&#039; /mnt/boot&lt;br /&gt;
&lt;br /&gt;
{{ic|grub-install}} から利用できるように [[Unified_Extensible_Firmware_Interface#EFI_System_Partition|ESP]] のマウントポイントを {{ic|/boot/efi}} に作成してマウント:&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/boot/efi&lt;br /&gt;
 # mount /dev/&#039;&#039;sdaX&#039;&#039; /mnt/boot/efi&lt;br /&gt;
&lt;br /&gt;
この時点で、{{ic|/mnt}} の中に以下のパーティションと論理ボリュームが作成されているはずです:&lt;br /&gt;
{{hc|$ lsblk|&lt;br /&gt;
NAME              	  MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT&lt;br /&gt;
sda                       8:0      0   200G  0 disk  &lt;br /&gt;
├─sda1                    8:1      0   512M  0 part  /boot/efi&lt;br /&gt;
├─sda2                    8:2      0   200M  0 part  &lt;br /&gt;
│ └─boot		  254:0    0   198M  0 crypt /boot&lt;br /&gt;
└─sda3                    8:3      0   100G  0 part  &lt;br /&gt;
  └─lvm                   254:1    0   100G  0 crypt &lt;br /&gt;
    ├─MyStorage-swapvol   254:2    0     8G  0 lvm   [SWAP]&lt;br /&gt;
    ├─MyStorage-rootvol   254:3    0    15G  0 lvm   /&lt;br /&gt;
    └─MyStorage-homevol   254:4    0    77G  0 lvm   /home&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
インストールの手順を mkinitcpio の設定まで進めてください。&lt;br /&gt;
&lt;br /&gt;
=== mkinitcpio の設定 ===&lt;br /&gt;
&lt;br /&gt;
[[mkinitcpio|mkinitcpio.conf]] に {{ic|keyboard}}, {{ic|encrypt}}, {{ic|lvm2}} フックを追加:&lt;br /&gt;
{{hc|/etc/mkinitcpio.conf|2=HOOKS=(... &#039;&#039;&#039;keyboard&#039;&#039;&#039; &#039;&#039;&#039;keymap&#039;&#039;&#039; block &#039;&#039;&#039;encrypt&#039;&#039;&#039; &#039;&#039;&#039;lvm2&#039;&#039;&#039; ... filesystems ...)}}&lt;br /&gt;
&lt;br /&gt;
詳細や必要な他のフックについては [[dm-crypt/システム設定#mkinitcpio]] を参照。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
設定後はイメージを再生成してください:&lt;br /&gt;
&lt;br /&gt;
 # mkinitcpio -p linux&lt;br /&gt;
&lt;br /&gt;
=== ブートローダーの設定 ===&lt;br /&gt;
&lt;br /&gt;
起動時に LUKS で暗号化された {{ic|/boot}} パーティションを認識して暗号化された root パーティションの暗号化が解除されるように GRUB を設定:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/default/grub|2=&lt;br /&gt;
GRUB_CMDLINE_LINUX=&amp;quot;... cryptdevice=UUID=&#039;&#039;&amp;lt;device-UUID&amp;gt;&#039;&#039;:lvm ...&amp;quot;&lt;br /&gt;
GRUB_ENABLE_CRYPTODISK=y&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
詳しくは [[Dm-crypt/システム設定#ブートローダー]]や [[GRUB#暗号化された /boot]]を参照。{{ic|&#039;&#039;&amp;lt;device-UUID&amp;gt;&#039;&#039;}} は {{ic|/dev/sdaZ}} (ルートファイルシステムが存在する LVM が含まれているパーティション) の UUID に置き換えてください。詳しくは[[永続的なブロックデバイスの命名]]を参照。&lt;br /&gt;
&lt;br /&gt;
GRUB の[[GRUB#メイン設定ファイルの生成|設定ファイル]]を作成して、マウントされている ESP に [[GRUB#インストール|GRUB をインストール]]:&lt;br /&gt;
&lt;br /&gt;
 # grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
 # grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub --recheck&lt;br /&gt;
&lt;br /&gt;
設定に問題がなければ、次の起動時に GRUB は {{ic|/boot}} パーティションのロックを解除するためのパスフレーズを要求するはずです。&lt;br /&gt;
&lt;br /&gt;
=== fstab と crypttab の設定 ===&lt;br /&gt;
&lt;br /&gt;
This section deals with extra configuration to let the system &#039;&#039;&#039;mount&#039;&#039;&#039; the encrypted {{ic|/boot}}. &lt;br /&gt;
&lt;br /&gt;
While GRUB asks for a passphrase to unlock the encrypted {{ic|/boot}} after above instructions, the partition unlock is not passed on to the initramfs. Hence, {{ic|/boot}} will not be available after the system has re-/booted, because the {{ic|encrypt}} hook only unlocks the system&#039;s root. &lt;br /&gt;
&lt;br /&gt;
インストール時に &#039;&#039;genfstab&#039;&#039; スクリプトを使用した場合、{{ic|/boot}} と {{ic|/boot/efi}} マウントポイントのエントリが含まれた {{ic|/etc/fstab}} が作成されています。しかしながらシステムはブートパーティションに生成されたデバイスマッパーを見つけることができません。デバイスマッパーを使えるようにするために、以下を [[Dm-crypt/システム設定#crypttab|crypttab]] に追加してください。例: &lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/crypttab|&lt;br /&gt;
cryptboot  /dev/sdaY      none        luks}}&lt;br /&gt;
&lt;br /&gt;
上記を設定するとパスフレーズが二回要求されるようになります (GRUB と systemd ユニットでそれぞれ一回ずつ入力しなくてはなりません)。{{ic|/boot}} のロックを解除するエントリを重複させたくない場合、[[Dm-crypt/デバイスの暗号化#キーファイル]]の指示に従ってください: &lt;br /&gt;
&lt;br /&gt;
# [[Dm-crypt/デバイスの暗号化#ファイルシステムにキーファイルを保存|ランダムなテキストのキーファイル]]を作成&lt;br /&gt;
# キーファイルを ({{ic|/dev/sdaY}}) [[Dm-crypt/デバイスの暗号化#キーファイルを使用するように LUKS を設定|ブートパーティションの LUKS ヘッダ]]に追加&lt;br /&gt;
# {{ic|/etc/fstab}} のエントリを確認して[[Dm-crypt/デバイスの暗号化#起動時にロックを解除|起動時に自動的にロックが解除]]されるように {{ic|/etc/crypttab}} 行を追加&lt;br /&gt;
&lt;br /&gt;
何らかの理由でキーファイルを使って boot パーティションのロックを解除できなかった場合、systemd はフォールバックして解除するためのパスフレーズを要求します。パスフレーズが正しければ、起動に進みます。&lt;br /&gt;
&lt;br /&gt;
{{Tip|Optional post-installation steps: &lt;br /&gt;
* It may be worth considering to add the GRUB bootloader to the ignore list of {{ic|/etc/pacman.conf}} in order to take particular control of when the bootloader (which includes its own encryption modules) is updated. &lt;br /&gt;
* If you want to encrypt the {{ic|/boot}} partition to protect against offline tampering threats, the [[Dm-crypt/特記事項#mkinitcpio-chkcryptoboot|mkinitcpio-chkcryptoboot]] hook has been contributed to help.}}&lt;br /&gt;
&lt;br /&gt;
== Btrfs サブボリュームとスワップ ==&lt;br /&gt;
&lt;br /&gt;
以下の例では [[Btrfs]] のサブボリュームを使って LUKS によるフルシステム暗号化を作成します。&lt;br /&gt;
&lt;br /&gt;
UEFI を使っている場合、[[EFI システムパーティション]] (ESP) が必要です。{{ic|/boot}} は {{ic|/}} の中に保存して暗号化することができますが、ESP を暗号化することは不可能です。ここでは例として、ESP は {{ic|/dev/sda&#039;&#039;Y&#039;&#039;}} で {{ic|/boot/efi}} にマウントするとします。{{ic|/boot}} はシステムパーティション ({{ic|/dev/sda&#039;&#039;X&#039;&#039;}}) に保存します。&lt;br /&gt;
&lt;br /&gt;
{{ic|/boot}} を暗号化された {{ic|/}} の中に配置するため、ブートローダーは [[GRUB]] を使用する必要があります。GRUB だけが {{ic|/boot}} を復号化するのに必要なモジュールをロードできるからです (例: {{ic|crypto.mod}}, {{ic|cryptodisk.mod}}, {{ic|luks.mod}}) [http://www.pavelkogan.com/2014/05/23/luks-full-disk-encryption/]。&lt;br /&gt;
&lt;br /&gt;
さらに任意で暗号化した[[スワップ]]パーティションも作成します。&lt;br /&gt;
&lt;br /&gt;
{{Warning|スワップパーティションのかわりとして[[スワップファイル]]を使うことはできません。データを消失する可能性があります。[[Btrfs#スワップファイル]]を見てください。}}&lt;br /&gt;
&lt;br /&gt;
 +--------------------------+--------------------------+--------------------------+&lt;br /&gt;
 |ESP                       |System partition          |Swap partition            |&lt;br /&gt;
 |&#039;&#039;&#039;un&#039;&#039;&#039;encrypted               |LUKS-encrypted            |plain-encrypted           |&lt;br /&gt;
 |                          |                          |                          |&lt;br /&gt;
 |/boot/efi                 |/                         |                          |&lt;br /&gt;
 |/dev/sda&#039;&#039;Y&#039;&#039;                 |/dev/sda&#039;&#039;X&#039;&#039;                 |/dev/sda&#039;&#039;Z&#039;&#039;                 |&lt;br /&gt;
 |--------------------------+--------------------------+--------------------------+&lt;br /&gt;
&lt;br /&gt;
=== ディスクの準備 ===&lt;br /&gt;
&lt;br /&gt;
{{Note|LUKS を使用する場合に[[Btrfs#パーティショニング|パーティションしない Btrfs ディスク]]を使用することは不可能です。作成するパーティションがひとつだけの場合でも伝統的なパーティショニングが必須です。}}&lt;br /&gt;
&lt;br /&gt;
パーティションを作成する前に、[[dm-crypt/ドライブの準備]]に書かれているようにディスクを完全消去するようにしてください。[[UEFI]] を使っている場合、適当なサイズの [[EFI システムパーティション]]を作成してください。後で {{ic|/boot/efi}} にマウントします。スワップパーティションを暗号化する場合、パーティションを作成してもスワップとして設定してはいけません。plain &#039;&#039;dm-crypt&#039;&#039; でパーティションを使用するためです。&lt;br /&gt;
&lt;br /&gt;
必要なパーティションを作成してください。最低でも {{ic|/}} のパーティションが必要です (例: {{ic|/dev/sda&#039;&#039;X&#039;&#039;}})。[[パーティショニング]]の記事を見てください。&lt;br /&gt;
&lt;br /&gt;
=== システムパーティションの準備 ===&lt;br /&gt;
&lt;br /&gt;
==== LUKS コンテナの作成 ====&lt;br /&gt;
&lt;br /&gt;
[[dm-crypt/デバイスの暗号化#LUKS モードでデバイスを暗号化]]に従って {{ic|/dev/sda&#039;&#039;X&#039;&#039;}} を LUKS で設定してください。設定する前に [[Dm-crypt/デバイスの暗号化#LUKS モードの暗号化オプション]]を見てください。&lt;br /&gt;
&lt;br /&gt;
==== LUKS コンテナの解錠 ====&lt;br /&gt;
&lt;br /&gt;
[[dm-crypt/デバイスの暗号化#デバイスマッパーで LUKS パーティションのロックを解除・マップ]]に従って LUKS コンテナを解錠してマッピングしてください。&lt;br /&gt;
&lt;br /&gt;
==== マッピングされたデバイスのフォーマット ====&lt;br /&gt;
&lt;br /&gt;
[[Btrfs#新しいファイルシステムを作成する]]に書かれているようにデバイスをフォーマットしてください。{{ic|&#039;&#039;/dev/partition&#039;&#039;}} はマップしたデバイスの名前 ({{ic|cryptroot}}) に置き換えてください。{{ic|/dev/sda&#039;&#039;X&#039;&#039;}} を使ってはいけません。&lt;br /&gt;
&lt;br /&gt;
==== マッピングされたデバイスのマウント ====&lt;br /&gt;
&lt;br /&gt;
最後に、フォーマットされたマップ済みデバイス ({{ic|/dev/mapper/cryptroot}}) を {{ic|/mnt}} に[[マウント]]してください。&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|1=compress=lzo}} マウントオプションを使うと良いでしょう。詳しくは [[Btrfs#圧縮]]を見てください。}}&lt;br /&gt;
&lt;br /&gt;
=== btrfs サブボリュームの作成 ===&lt;br /&gt;
&lt;br /&gt;
==== レイアウト ====&lt;br /&gt;
&lt;br /&gt;
[[Btrfs#サブボリューム|サブボリューム]]をパーティションのように使いますが、他の (ネストした) サブボリュームも作成します。以下は作成するサブボリュームの例を示しています:&lt;br /&gt;
&lt;br /&gt;
 subvolid=5 (/dev/sda&#039;&#039;X&#039;&#039;)&lt;br /&gt;
    |&lt;br /&gt;
    ├── @ (mounted as /)&lt;br /&gt;
    |       |&lt;br /&gt;
    |       ├── /bin (directory)&lt;br /&gt;
    |       |&lt;br /&gt;
    |       ├── /home (mounted @home subvolume)&lt;br /&gt;
    |       |&lt;br /&gt;
    |       ├── /usr (directory)&lt;br /&gt;
    |       |&lt;br /&gt;
    |       ├── /.snapshots (mounted @snapshots subvolume)&lt;br /&gt;
    |       |&lt;br /&gt;
    |       ├── /var/cache/pacman/pkg (nested subvolume)&lt;br /&gt;
    |       |&lt;br /&gt;
    |       ├── ... (other directories and nested subvolumes)&lt;br /&gt;
    |&lt;br /&gt;
    ├── @snapshots (mounted as /.snapshots)&lt;br /&gt;
    |&lt;br /&gt;
    ├── @home (mounted as /home)&lt;br /&gt;
    |&lt;br /&gt;
    └── @... (additional subvolumes you wish to use as mount points)&lt;br /&gt;
&lt;br /&gt;
このセクションでは [[Snapper]] を使うときに便利な [[Snapper#推奨ファイルシステムレイアウト]]に従います。[https://btrfs.wiki.kernel.org/index.php/SysadminGuide#Layout Btrfs Wiki SysadminGuide#Layout] も読んでください。&lt;br /&gt;
&lt;br /&gt;
==== トップレベルサブボリュームの作成 ====&lt;br /&gt;
&lt;br /&gt;
マウントポイントとして使用するサブボリュームの名前には {{ic|@}} を前に付けます。{{ic|/}} にマウントするサブボリュームは {{ic|@}} とします。&lt;br /&gt;
&lt;br /&gt;
[[Btrfs#サブボリュームを作成する]]に従って {{ic|/mnt/@}}, {{ic|/mnt/@snapshots}}, {{ic|/mnt/@home}} にサブボリュームを作成します。&lt;br /&gt;
&lt;br /&gt;
他にマウントポイントとして使用したいサブボリュームも作成してください。&lt;br /&gt;
&lt;br /&gt;
==== トップレベルサブボリュームのマウント ====&lt;br /&gt;
&lt;br /&gt;
{{ic|/mnt}} のシステムパーティションをアンマウントしてください。&lt;br /&gt;
&lt;br /&gt;
{{ic|/}} として使用する、新しく作成した {{ic|@}} サブボリュームを {{ic|1=subvol=}} マウントオプションを使って {{ic|/mnt}} にマウントします。マップしたデバイスの名前が {{ic|cryptroot}} なら、コマンドは以下のようになります:&lt;br /&gt;
&lt;br /&gt;
 # mount -o compress=lzo,subvol=@ /dev/mapper/cryptroot /mnt&lt;br /&gt;
&lt;br /&gt;
詳しくは [[Btrfs#サブボリュームをマウントする]]を見てください。&lt;br /&gt;
&lt;br /&gt;
他のサブボリュームを適切なマウントポイントにマウントしてください: {{ic|@home}} は {{ic|/mnt/home}} に、{{ic|@snapshots}} は {{ic|/mnt/.snapshots}} にマウントします。&lt;br /&gt;
&lt;br /&gt;
==== ネストされたサブボリュームの作成 ====&lt;br /&gt;
&lt;br /&gt;
{{ic|/}} のスナップショットが作成されるときに、スナップショットを作りたくないサブボリュームを作成してください。例えば、{{ic|/var/cache/pacman/pkg}} のスナップショットなどは不要でしょう。サブボリュームは {{ic|@}} サブボリュームの下にネストしますが、{{ic|@}} と同じレベルに作成することもできます。&lt;br /&gt;
&lt;br /&gt;
{{ic|@}} サブボリュームは {{ic|/mnt}} にマウントするため、{{ic|/mnt/var/cache/pacman/pkg}} に[[Btrfs#サブボリュームを作成する|サブボリュームを作成]]する必要があります。先に親のディレクトリを作成してください。&lt;br /&gt;
&lt;br /&gt;
他にも {{ic|/var/abs}}, {{ic|/var/tmp}}, {{ic|/srv}} などのディレクトリのサブボリュームを作成してください。&lt;br /&gt;
&lt;br /&gt;
==== ESP のマウント ====&lt;br /&gt;
&lt;br /&gt;
EFI システムパーティションを準備済みなら、マウントポイントを作成してマウントしてください。&lt;br /&gt;
&lt;br /&gt;
{{Note|Btrfs のスナップショットは {{ic|/boot/efi}} を除外します (btrfs ファイルシステムではないため)。}}&lt;br /&gt;
&lt;br /&gt;
[[インストールガイド#ベースシステムのインストール|pacstrap]] でインストールを行うときに、{{Pkg|btrfs-progs}} もインストールする必要があります。&lt;br /&gt;
&lt;br /&gt;
=== mkinitcpio の設定 ===&lt;br /&gt;
&lt;br /&gt;
==== キーファイルの作成 ====&lt;br /&gt;
&lt;br /&gt;
GRUB で LUKS パーティションを解錠するために、initramfs にキーファイルを埋め込みます。[[Dm-crypt/デバイスの暗号化#キーファイルを initramfs に埋め込む]]に従って &#039;&#039;luksAddKey&#039;&#039; を実行する段階でキーを {{ic|/dev/sda&#039;&#039;X&#039;&#039;}} に追加してください。&lt;br /&gt;
&lt;br /&gt;
==== mkinitcpio.conf の編集 ====&lt;br /&gt;
&lt;br /&gt;
上記のようにキーファイルを作成して埋め込んだら、[[mkinitcpio|mkinitcpio.conf]] に {{ic|encrypt}} フックを追加してください。詳しくは [[Dm-crypt/システム設定#mkinitcpio]] を参照。設定後は initramfs を再生成する必要があります。&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|1=BINARIES=(/usr/bin/btrfs)}} を {{ic|mkinitcpio.conf}} に追加すると良いでしょう。詳しくは [[Btrfs#ファイルシステム破損のリカバリ]] を見てください。}}&lt;br /&gt;
&lt;br /&gt;
=== ブートローダーの設定 ===&lt;br /&gt;
&lt;br /&gt;
[[GRUB]] を {{ic|/dev/sda}} にインストールします。そして [[GRUB#暗号化された /boot]]に書かれているように {{ic|/etc/default/grub}} を編集します (ルートパーティションと boot パーティションの両方の手順に従ってください)。最後に、GRUB の設定ファイルを生成します。&lt;br /&gt;
&lt;br /&gt;
=== スワップの設定 ===&lt;br /&gt;
&lt;br /&gt;
スワップを暗号化するためにパーティションを作成していた場合、ここで設定してください。[[Dm-crypt/スワップの暗号化]]の手順に従ってください。&lt;br /&gt;
&lt;br /&gt;
設定を完了したら、[[インストールガイド#再起動|インストールガイド]]にしたがって通常通りにシステムの設定を続行してください。&lt;/div&gt;</summary>
		<author><name>Hkiku482</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=OpenSSL&amp;diff=39490</id>
		<title>OpenSSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=OpenSSL&amp;diff=39490"/>
		<updated>2025-01-12T14:53:23Z</updated>

		<summary type="html">&lt;p&gt;Hkiku482: 証明書の検証方法を追加&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:トランスポート層セキュリティ]]&lt;br /&gt;
[[en:OpenSSL]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Transport Layer Security}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[http://www.openssl.org OpenSSL] は SSL と TLS プロトコルのオープンソース実装で、可能な限り柔軟になるように設計されています。BSD, Linux, OpenVMS, Solaris, Windows などの様々なプラットフォームをサポートしています。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{Pkg|openssl}} は {{Pkg|coreutils}} の依存関係として、デフォルトで Arch Linux にインストールされます。&lt;br /&gt;
&lt;br /&gt;
開発者向けに様々な OpenSSL ライブラリのバインディングが用意されています。&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|python-pyopenssl}}&lt;br /&gt;
* {{Pkg|perl-net-ssleay}}&lt;br /&gt;
* {{Pkg|lua-sec}}, {{Pkg|lua52-sec}}, {{Pkg|lua51-sec}}&lt;br /&gt;
* {{Pkg|haskell-hsopenssl}}&lt;br /&gt;
* {{Pkg|haskell-openssl-streams}}&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
Arch Linux では {{ic|OPENSSLDIR}} は {{ic|/etc/ssl}} です。&lt;br /&gt;
&lt;br /&gt;
OpenSSL 設定ファイルは、慣習的に {{ic|/etc/ssl/openssl.cnf}} に置かれ、最初は複雑に見えるかもしれません。シェルスクリプトの動作と同じように、変数が代入で展開されることがあることを覚えておいてください。設定ファイルの形式についての詳しい説明は、{{man|5ssl|config}} を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== req セクション ===&lt;br /&gt;
&lt;br /&gt;
キー、要求、および自己署名証明書の生成に関連する設定。&lt;br /&gt;
&lt;br /&gt;
req セクションは DN プロンプトを担当する。一般的な誤解として、&#039;&#039;Common Name&#039;&#039; (CN) プロンプトがあり、これはユーザーの固有名詞を値として持つべきであると示唆するものです。エンドユーザー証明書は CN として &#039;&#039;&#039;マシンのホスト名&#039;&#039;&#039; を持つ必要があり、一方 CA は有効な TLD を持つべきではありません。これは、認証されたエンドユーザーの CN と CA 証明書の組み合わせの中で、あるソフトウェアがエンドユーザー証明書は自己署名されていると誤認する可能性のある組み合わせが存在しないようにするためです。CA 証明書の中には、[https://www.equifax.com Equifax] のように、CN を持たないものもあります。&lt;br /&gt;
&lt;br /&gt;
{{hc|$ openssl x509 -subject -noout &amp;lt; /etc/ssl/certs/Equifax_Secure_CA.pem|2=&lt;br /&gt;
subject= /C=US/O=Equifax/OU=Equifax Secure Certificate Authority&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 使用方法 ==&lt;br /&gt;
&lt;br /&gt;
この章は、[[Transport Layer Security#証明書を取得]]を読んだ事を前提としています。&lt;br /&gt;
&lt;br /&gt;
=== Curve25519 秘密鍵を生成 ===&lt;br /&gt;
&lt;br /&gt;
 $ openssl genpkey -algorithm x25519 -out &#039;&#039;filename&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== ECDSA 秘密鍵を生成 ===&lt;br /&gt;
&lt;br /&gt;
 $ openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-256 -out &#039;&#039;filename&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== RSA 秘密鍵を生成 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;genrsa&#039;&#039; に取って代わる({{man|1ssl|openssl}} によると)、{{man|1ssl|genpkey}} を使用。&lt;br /&gt;
&lt;br /&gt;
 $ openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:&#039;&#039;keysize&#039;&#039; -out &#039;&#039;filename&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
暗号化された鍵が必要な場合は、{{ic|-aes-256-cbc}} オプションを使用します。&lt;br /&gt;
&lt;br /&gt;
=== 証明書署名要求を生成 ===&lt;br /&gt;
&lt;br /&gt;
{{man|1ssl|req}} を使用。&lt;br /&gt;
&lt;br /&gt;
 $ openssl req -new -sha256 -key &#039;&#039;private_key&#039;&#039; -out &#039;&#039;filename&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== 証明書署名リクエストを表示 ===&lt;br /&gt;
&lt;br /&gt;
証明書署名リクエストはエンコードされた形式で保存されます。リクエストを人間が読める形式で表示するには:&lt;br /&gt;
&lt;br /&gt;
 $ openssl req -noout -text -in &#039;&#039;filename&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== 自己証明証明書を生成 ===&lt;br /&gt;
&lt;br /&gt;
 $ openssl req -key &#039;&#039;private_key&#039;&#039; -x509 -new -days &#039;&#039;days&#039;&#039; -out &#039;&#039;filename&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== 一つのコマンドで自己証明証明書と秘密鍵を生成 ===&lt;br /&gt;
&lt;br /&gt;
OpenSSL では、上記のコマンドを 1 つにまとめることができるので、場合によっては便利かもしれません。&lt;br /&gt;
&lt;br /&gt;
  $ openssl req -x509 -newkey rsa:4096 -days &#039;&#039;days&#039;&#039; -keyout &#039;&#039;key_filename&#039;&#039; -out &#039;&#039;cert_filename&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== CA 証明書による証明書署名要求への署名 ===&lt;br /&gt;
&lt;br /&gt;
 $ openssl x509 -req -in &#039;&#039;cert_req_filename&#039;&#039; -days &#039;&#039;days&#039;&#039; -CA &#039;&#039;CA_cert&#039;&#039; -CAkey &#039;&#039;CA_cert_private_key&#039;&#039; -CAserial &#039;&#039;CA_cert_serial_file&#039;&#039; -out &#039;&#039;cert_out&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== 証明書を検証 ===&lt;br /&gt;
&lt;br /&gt;
 $ openssl verify &#039;&#039;cert_filename&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
サーバ証明書などの証明書チェーンを検証します。ルート証明書のインストールは[[トランスポート層セキュリティ#信頼された証明書のリストへ追加する方法]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== ディフィー・ヘルマン パラメーターを生成 ===&lt;br /&gt;
&lt;br /&gt;
詳細については、[[Wikipedia:ja:ディフィー・ヘルマン鍵共有|ディフィー・ヘルマン鍵共有]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
現在の[[MozillaWiki:Security/Server Side TLS|ベストプラクティス]]は、RFC 7919の標準的なDHグループの1つ、例えば [https://ssl-config.mozilla.org/ffdhe2048.txt ffdhe2048] を使用することです。&lt;br /&gt;
&lt;br /&gt;
あるいは、自分でランダムなグループを生成することもできます。&lt;br /&gt;
&lt;br /&gt;
 $ openssl dhparam -out &#039;&#039;filename&#039;&#039; &#039;&#039;2048&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Tip|特にハイエンドのハードウェアでない場合、生成を高速化するには、{{ic|-dsaparam}} オプションを追加します[https://security.stackexchange.com/questions/95178/diffie-hellman-parameters-still-calculating-after-24-hours/95184#95184]。}}&lt;br /&gt;
&lt;br /&gt;
=== 証明書情報を表示 ===&lt;br /&gt;
&lt;br /&gt;
 $ openssl x509 -text -in &#039;&#039;cert_filename&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== 証明書の指紋を表示 ===&lt;br /&gt;
&lt;br /&gt;
 $ openssl x509 -noout -in &#039;&#039;cert_filename&#039;&#039; -fingerprint &#039;&#039;-digest&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{ic|&#039;&#039;-digest&#039;&#039;}} はオプションで、{{ic|-md5}}、{{ic|-sha1}}、{{ic|-sha256}} または {{ic|-sha512}} のいずれか 1 つです。digest が指定されていない場合については、{{man|1ssl|x509|Input, Output, and General Purpose Options}} の「-digest」 を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== 証明書の形式を変換する ===&lt;br /&gt;
&lt;br /&gt;
{{ic|openssl x509}} を使用して、証明書をバイナリ (DER) 形式から PEM 形式 ({{ic|BEGIN CERTIFICATE}} ヘッダを含むテキスト形式) に変換します。&lt;br /&gt;
&lt;br /&gt;
 $ openssl x509 -inform DER &amp;lt; &#039;&#039;myCA&#039;&#039;.crt &amp;gt; &#039;&#039;myCA_pem&#039;&#039;.crt&lt;br /&gt;
&lt;br /&gt;
=== サードパーティプロバイダーを使用する ===&lt;br /&gt;
&lt;br /&gt;
OpenSSL 3 では、OpenSSL プラグ可能性の新しい概念としてプロバイダーが導入されました。 OpenSSL に含まれていないアルゴリズムを再コンパイルすることなく使用できます。たとえば、[https://csrc.nist.gov/projects/post-quantum-cryptography NIST ポスト量子暗号] アルゴリズムをテストするには、[https://openquantumsafe.org/ Open Quantum Safe] プロバイダー {{AUR|oqsprovider}} をインストールできます。例として、[https://pq-crystals.org/dilithium/index.shtml Dilithium] 署名アルゴリズムのバリアントの 1 つを使用して、秘密キーを含む量子安全な自己署名証明書を生成できます。&lt;br /&gt;
&lt;br /&gt;
 $ openssl req -provider oqsprovider -x509 -newkey dilithium3 -days &#039;&#039;days&#039;&#039; -keyout &#039;&#039;key&#039;&#039; -out &#039;&#039;cert&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== 復号時に &amp;quot;bad decrypt&amp;quot; と表示される ===&lt;br /&gt;
&lt;br /&gt;
OpenSSL 1.1.0 から dgst と enc コマンドのデフォルトのダイジェストアルゴリズムが MD5 から SHA256 に変更されています [https://www.openssl.org/news/changelog.html#x6]。&lt;br /&gt;
&lt;br /&gt;
OpenSSL 1.0.2 以前を使ってファイルを暗号化した場合、復号化しようとすると新しいバージョンでは以下のようにエラーが発生します:&lt;br /&gt;
&lt;br /&gt;
 error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:crypto/evp/evp_enc.c:540&lt;br /&gt;
&lt;br /&gt;
{{ic|-md md5}} オプションを指定することで問題は解決します:&lt;br /&gt;
&lt;br /&gt;
 $ openssl enc -d -md md5 -in encrypted -out decrypted&lt;br /&gt;
&lt;br /&gt;
=== Python 3.10 と &amp;quot;ca md too weak&amp;quot; エラー ===&lt;br /&gt;
&lt;br /&gt;
Python 3.10 のデフォルトでは、許可された OpenSSL 暗号のハードコードされたリストがあります。MD5 のような安全でないものは、OpenSSL のシステム全体の設定を無視して、 {{ic|ssl}} モジュールレベルで無効化されています。その結果、古い証明書や、時には {{ic|https}} 接続を確立するときでさえ、奇妙なエラーになることがあります、以下のような:&lt;br /&gt;
&lt;br /&gt;
 requests.exceptions.SSLError: HTTPSConnectionPool(host=&#039;a.kind.of.example.com&#039;, port=443): Max retries exceeded with url: / (Caused by SSLError(SSLError(398, &#039;[SSL: CA_MD_TOO_WEAK] ca md too weak (_ssl.c:3862)&#039;)))&lt;br /&gt;
&lt;br /&gt;
Python をシステムの設定に従うようにするには、 {{ic|1=--with-ssl-default-suites=openssl}} パラメータを {{ic|./configure}} に追加して再構築する必要があるかもしれません。この問題は {{Bug|73549}} としても報告されています。&lt;br /&gt;
&lt;br /&gt;
=== Error setting cipher XXX ===&lt;br /&gt;
&lt;br /&gt;
「廃止された」暗号を使用しようとすると、次のようなエラーが発生します:&lt;br /&gt;
&lt;br /&gt;
 $ openssl bf -d -in cipher_file -K passphrase&lt;br /&gt;
 Error setting cipher BF-CBC&lt;br /&gt;
 4087A97A8A7F0000:error:0308010C:digital envelope routines:inner_evp_generic_fetch:unsupported:crypto/evp/evp_fetch.c:341:Global default library context, Algorithm (BF-CBC : 12)&lt;br /&gt;
&lt;br /&gt;
OpenSSL 3.0 以降、暗号化アルゴリズムは「プロバイダー」を通じて提供されます。最も古いまたはあまり使用されないアルゴリズムは、レガシープロバイダーに属します。[https://www.openssl.org/docs/man3.0/man7/OSSL_PROVIDER-legacy.html]&lt;br /&gt;
&lt;br /&gt;
DES、RC4、Blowfish などの廃止されたアルゴリズムを使用する必要がある場合は、コマンドラインに {{ic|-provider legacy}} オプションを追加する必要があります。&lt;br /&gt;
&lt;br /&gt;
Blowfish 暗号をデコードするための完全な例を以下に示します。&lt;br /&gt;
 $ openssl bf -d -in cipher_file -provider legacy -provider default -K passphrase&lt;br /&gt;
&lt;br /&gt;
==参照==&lt;br /&gt;
* [http://ja.wikipedia.org/wiki/OpenSSL Wikipedia] の OpenSSL のページ&lt;br /&gt;
* [http://www.openssl.org OpenSSL] プロジェクトページ&lt;br /&gt;
* [https://www.freebsd.org/doc/ja/books/handbook/openssl.html FreeBSD ハンドブック]&lt;br /&gt;
* [http://www.akadia.com/services/ssh_test_certificate.html 署名済みの SSL 証明書を作成するステップバイステップガイド]&lt;br /&gt;
* [https://jamielinux.com/docs/openssl-certificate-authority/ OpenSSL Certificate Authority]: 独自の認証局として機能する方法を説明するガイド。&lt;br /&gt;
* [https://www.feistyduck.com/books/bulletproof-ssl-and-tls/bulletproof-ssl-and-tls-introduction.pdf Bulletproof SSL and TLS by Ivan Ristić], SSL/TLS のより正式な入門書&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus|OpenSSL|2024-08-28|806140}}&lt;/div&gt;</summary>
		<author><name>Hkiku482</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Systemd-cryptenroll&amp;diff=39433</id>
		<title>Systemd-cryptenroll</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Systemd-cryptenroll&amp;diff=39433"/>
		<updated>2024-12-30T12:27:23Z</updated>

		<summary type="html">&lt;p&gt;Hkiku482: 同期&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Lowercase title}}&lt;br /&gt;
[[Category:保存データ暗号化]]&lt;br /&gt;
[[en:systemd-cryptenroll]]&lt;br /&gt;
{{Template:Related articles start}}&lt;br /&gt;
{{Template:Related|dm-crypt}}&lt;br /&gt;
{{Template:Related|スマートカード}}&lt;br /&gt;
{{Template:Related|Universal 2nd Factor}}&lt;br /&gt;
{{Template:Related|Trusted Platform Module}}&lt;br /&gt;
{{Template:Related|Unified Extensible Firmware Interface/セキュアブート}}&lt;br /&gt;
{{Template:Related articles end}}&lt;br /&gt;
{{Man|1|systemd-cryptenroll}} から:&lt;br /&gt;
&lt;br /&gt;
:systemd-cryptenroll は、ハードウェアセキュリティトークンとデバイスを LUKS2 暗号化ボリュームに登録するためのツールです。これは、ブート中にボリュームのロックを解除するために使用できます。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;systemd-cryptenroll&#039;&#039; を使用すると、[[スマートカード]]、[[Universal 2nd Factor|FIDO2]] トークン、および [[Trusted Platform Module]] セキュリティチップを [[LUKS]] デバイスに登録できるだけでなく、通常のパスフレーズも登録できます。これらのデバイスは、登録されたトークンを使用して、後で {{Man|8|systemd-cryptsetup@.service}} によってロック解除されます。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;systemd-cryptenroll&#039;&#039; は、{{Pkg|systemd}} の一部であり、パッケージ化されています。ただし、ハードウェアデバイスをキーとして使用するには、追加のパッケージが必要です。&lt;br /&gt;
&lt;br /&gt;
* PKCS#11 トークンを使用するには、{{Pkg|libp11-kit}} を [[インストール]] します。&lt;br /&gt;
* FIDO2 トークンを使用するには、{{Pkg|libfido2}} をインストールします。&lt;br /&gt;
* TPM2 デバイスを使用するには、{{Pkg|tpm2-tss}} をインストールします。&lt;br /&gt;
&lt;br /&gt;
== キースロットのリスト ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;systemd-cryptenroll&#039;&#039; は、{{ic|cryptsetup luksDump}} と同様に、LUKS デバイス内のキースロットをリストできますが、よりユーザーフレンドリーな形式です。&lt;br /&gt;
&lt;br /&gt;
{{hc|# systemd-cryptenroll /dev/&#039;&#039;disk&#039;&#039;|&lt;br /&gt;
SLOT TYPE    &lt;br /&gt;
   0 password&lt;br /&gt;
   1 tpm2&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== キースロットの消去 ==&lt;br /&gt;
&lt;br /&gt;
 # systemd-cryptenroll /dev/&#039;&#039;disk&#039;&#039; --wipe-slot=&#039;&#039;SLOT&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;SLOT&#039;&#039; には次の値を指定できます。&lt;br /&gt;
&lt;br /&gt;
* キースロットのインデックス。&lt;br /&gt;
* そのタイプのキースロットはすべて消去されます。有効なタイプは {{ic|empty}}, {{ic|password}}, {{ic|recovery}}, {{ic|pkcs11}}, {{ic|fido2}}, {{ic|tpm2}} です。&lt;br /&gt;
* カンマで区切られた上記のすべての組み合わせ&lt;br /&gt;
* 文字列 {{ic|all}} は、デバイス上のすべてのキースロットを消去します。このオプションは、別のデバイスまたはパスフレーズを同時に登録する場合にのみ使用できます。&lt;br /&gt;
&lt;br /&gt;
{{ic|--wipe-slot}} 操作はすべての登録オプションと組み合わせて使用​​でき、既存のデバイス登録を更新するのに役立ちます。&lt;br /&gt;
&lt;br /&gt;
 # systemd-cryptenroll /dev/&#039;&#039;disk&#039;&#039; --wipe-slot=fido2 --fido2-device=auto&lt;br /&gt;
&lt;br /&gt;
== パスフレーズの登録 ==&lt;br /&gt;
&lt;br /&gt;
=== 通常のパスワード ===&lt;br /&gt;
&lt;br /&gt;
これは、{{ic|cryptsetup luksAddKey}} と同等です。&lt;br /&gt;
&lt;br /&gt;
 # systemd-cryptenroll /dev/&#039;&#039;disk&#039;&#039; --password&lt;br /&gt;
&lt;br /&gt;
=== 回復キー ===&lt;br /&gt;
&lt;br /&gt;
{{Man|1|systemd-cryptenroll}} から:&lt;br /&gt;
&lt;br /&gt;
:回復キーはパスフレーズとほとんど同じですが、人間が選択するのではなくコンピューターによって生成されるため、高いエントロピーが保証されています。キーは入力しやすい文字セットを使用しており、QR コードを介して画面外からスキャンすることもできます。&lt;br /&gt;
&lt;br /&gt;
回復キーは、ハードウェアトークンが利用できない場合にフォールバックとして使用されるように設計されており、必要なときにいつでも通常のパスフレーズの代わりに使用できます。&lt;br /&gt;
&lt;br /&gt;
 # systemd-cryptenroll /dev/&#039;&#039;disk&#039;&#039; --recovery-key&lt;br /&gt;
&lt;br /&gt;
== ハードウェアデバイスの登録 ==&lt;br /&gt;
&lt;br /&gt;
{{ic|--&#039;&#039;type&#039;&#039;-device}} オプションは、それぞれのタイプの有効なデバイスパスを指定する必要があります。使用可能なデバイスのリストは、このオプションに {{ic|list}} 引数を渡すことで取得できます。あるいは、目的のタイプのデバイスが 1 つだけ接続されている場合は、{{ic|auto}} オプションを使用してそれを自動的に選択できます。&lt;br /&gt;
&lt;br /&gt;
ハードウェアトークンを LUKS ボリュームに登録した後、必要に応じてハードウェア トークンを使用するようにシステムを構成する必要があります。ルートファイルシステムなど、初期のユーザー空間でロックを解除する必要があるボリュームについては [[dm-crypt/システム設定#Trusted Platform Module と FIDO2 鍵]] を参照し、その他のボリュームについては [[dm-crypt/システム設定#後期ユーザ空間でロックを解除する]] を参照してください。パーティション。&lt;br /&gt;
&lt;br /&gt;
=== PKCS#11 トークンまたはスマートカード ===&lt;br /&gt;
&lt;br /&gt;
トークンまたはスマートカードには、ボリュームのロックを解除するために使用される生成されたキーの暗号化に使用される RSA キーペアが含まれている必要があります。&lt;br /&gt;
&lt;br /&gt;
 # systemd-cryptenroll /dev/&#039;&#039;disk&#039;&#039; --pkcs11-token-uri=&#039;&#039;device&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== FIDO2 トークン ===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;hmac-secret&amp;quot; 拡張機能をサポートする FIDO2 トークンは、&#039;&#039;systemd-cryptenroll&#039;&#039; で使用できます。&lt;br /&gt;
&lt;br /&gt;
 # systemd-cryptenroll /dev/&#039;&#039;disk&#039;&#039; --fido2-device=&#039;&#039;device&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
さらに、&#039;&#039;systemd-cryptenroll&#039;&#039; は、トークンの組み込み検証機能の使用をサポートしています。&lt;br /&gt;
&lt;br /&gt;
* {{ic|--fido2-with-client-pin}}は、ロック解除前にPINを要求するかどうかを定義する。&lt;br /&gt;
* {{ic|--fido2-with-user-presence}}は、ロックを解除する前にユーザの存在を確認するかどうか (トークンをタップするなど) を定義する。&lt;br /&gt;
* {{ic|--fido2-with-user-verification}} は、ロック解除前にユーザ認証を要求するかどうかを定義します。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* トークンがこれらの機能をサポートしていない場合、これらのオプションは効力を持ちません。&lt;br /&gt;
* 両者の違いについては、[https://developers.yubico.com/WebAuthn/WebAuthn_Developer_Guide/User_Presence_vs_User_Verification.html User Presence vs User Verification] を参照してください。}}&lt;br /&gt;
&lt;br /&gt;
=== Trusted Platform Module ===&lt;br /&gt;
&lt;br /&gt;
{{Expansion|Document {{ic|--tpm2-public-key}} {{ic|--tpm2-seal-key-handle}} {{ic|--tpm2-device-key}} {{ic|--tpm2-pcrlock}}}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;systemd-cryptenroll&#039;&#039; はLUKSキーをTPMへ保存するためのネイティブサポートを備えています。次のものを用意してください。&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|tpm2-tss}} (必須)。&lt;br /&gt;
* LUKS2を設定したデバイス ([[cryptsetup]])。&lt;br /&gt;
* {{ic|root}}パーティションを使用する場合は、[[initramfs]]も変更する必要があります。&lt;br /&gt;
** [[mkinitcpio]]: {{ic|systemd}}と{{ic|sd-encrypt}}[[Mkinitcpio#HOOKS|フック]]を有効にしてください。{{Note|フック内のエントリの順序は重要です。間違えると[[arch-chroot]]からinitrdを再構成する必要があります。順序の例については[[Dm-crypt/システム設定#例]]を参照してください。}}&lt;br /&gt;
** [[dracut]]: {{ic|tpm2-tss}}[[Dracut#Dracut モジュール|モジュール]]を有効にしてください。&lt;br /&gt;
&lt;br /&gt;
はじめに、次のコマンドでインストール済みのTPMと使用中のドライバを表示してください。&lt;br /&gt;
&lt;br /&gt;
 systemd-cryptenroll --tpm2-device=list&lt;br /&gt;
&lt;br /&gt;
{{Tip|複数のTPMがシステムにインストールされている場合は{{ic|1=--tpm2-device=&#039;&#039;/path/to/tpm2_device&#039;&#039;}}で使用するデバイスを選択することができます。}}&lt;br /&gt;
&lt;br /&gt;
キーは1つのコマンドでLUKSとTPMの両方に保存することができます。次の例ではランダムなキーを生成し、ボリュームへ追加して、既存のキーに加えてボリュームのロックを解除できるように新しいキーをPCR7([[セキュアブート]])へ登録します。&lt;br /&gt;
&lt;br /&gt;
 systemd-cryptenroll --tpm2-device=auto &#039;&#039;/dev/sdX&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;/dev/sdX&#039;&#039;は暗号化済みのLUKSデバイスです。LUKSボリュームがパスフレーズではなくキーファイルによってロックされている場合は{{ic|1=--unlock-key-file=&#039;&#039;/path/to/keyfile&#039;&#039;}}を使用します。&lt;br /&gt;
&lt;br /&gt;
 systemd-cryptenroll --tpm2-device=auto &#039;&#039;/dev/sdX&#039;&#039; --unlock-key-file=&#039;&#039;/path/to/keyfile&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、TPM を登録するとキーが PCR7 にバインドされ、[[セキュアブート]] 状態が測定されます。{{ic|--tpm2-pcrs}} オプションを使用すると、キーがバインドされる PCR を変更できます。{{ic|+}} 記号で区切ることにより、複数の PCR を同時に使用できます。PCR とその測定内容の完全なリストは、[[Trusted Platform Module#Accessing PCR registers]] で入手できます。&lt;br /&gt;
&lt;br /&gt;
{{Warning|&lt;br /&gt;
* PCR 7にバインドするときは、[[セキュアブート]]がアクティブでユーザーモードになっていることを確認してください。そうしないと、許可されていないブートデバイスが暗号化されたボリュームのロックを解除する可能性があります。&lt;br /&gt;
* PCR 7の状態はファームウェア証明書が変更されると変更される可能性があり、ユーザーがロックアウトされるリスクがあります。これは[[fwupd]][https://github.com/systemd/systemd/blob/ed272a9ff59a26beedaab508dd3c9d631de67165/TODO#L664-L673]によって暗黙的に行われるか、セキュアブートキーをローテーションすることによって明示的に行われます。&lt;br /&gt;
* ブート前に測定された PCR (PCR 0-7) へのバインドのみが、不正なオペレーティング システムからの脆弱性を生じさせます。実際のルート ファイル システムからコピーされたメタデータ (パーティション UUID など) を持つ不正なパーティションは、元のパーティションを模倣できます。次に、initramfs は不正なパーティションをルート ファイル システムとしてマウントしようとします (復号化に失敗すると、パスワード入力にフォールバックします)。これにより、ブート前の PCR は変更されません。攻撃者が制御するファイルを持つ不正なルート ファイル システムは、実際のルート パーティションの復号化キーを引き続き受信できます。詳細については、[https://0pointer.net/blog/brave-new-trusted-boot-world.html Brave New Trusted Boot World]および[https://learn.microsoft.com/en-us/windows/security/operating-system-security/data-protection/bitlocker/countermeasures BitLocker documentation]を参照してください。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
バインドするPCRの組み合わせは使いやすさとロックダウンのバランスを取るために、ユースケースによって異なります。例えば[[セキュアブート]]に手動で介入せずに、UEFIのファームウェアの更新が必要な場合や異なるブートテバイスが必要な場合があります。その他の例として、WindowsのBitlockerはPCR{{ic|7+11}}を優先しますが、他のPCRの組み合わせを使用する場合もあります。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* TPM 測定チェックに加えて、PIN の入力を要求することもできます。TPM デバイスの登録時にオプション {{ic|1=--tpm2-with-pin=yes}} を追加し、要求されたら PIN を入力します。&#039;&#039;systemd-cryptenroll&#039;&#039; ではこれを PIN と呼びますが、任意の文字を使用できます。&lt;br /&gt;
* &#039;&#039;systemd-cryptenroll&#039;&#039; は、PIN を要求する前に TPM 測定をチェックしません。そのため、環境が信頼できない可能性があるため、一意の PIN の使用を検討してください。}}&lt;br /&gt;
&lt;br /&gt;
新しいキーが登録すされたことを確認するには次のコマンドを実行し、{{ic|systemd-tpm2}}トークンエントリと&#039;&#039;Keyslots&#039;&#039;セクションの追加エントリを探します。&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksDump &#039;&#039;/dev/sdX&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
キーが機能することをテストするには、LUKSボリュームが{{ic|close}}しているときに次のコマンドを実行します。&lt;br /&gt;
&lt;br /&gt;
 systemd-cryptsetup attach &#039;&#039;mapping_name&#039;&#039; &#039;&#039;/dev/sdX&#039;&#039; none tpm2-device=none&lt;br /&gt;
&lt;br /&gt;
起動時にボリュームのロックを解除するには、[[Dm-crypt/システム設定#crypttab]]と[[Dm-crypt/システム設定#Trusted Platform Module と FIDO2 鍵]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|/etc/crypttab}}のパス名の代わりにLUKSボリュームのUUIDを指定することができますが、&#039;&#039;systemd-cryptenroll&#039;&#039;コマンド自体はパス名のみをサポートしています。}}&lt;br /&gt;
&lt;br /&gt;
詳細と例については、{{man|1|systemd-cryptenroll}}と{{man|5|crypttab}}を参照してください。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://0pointer.net/blog/unlocking-luks2-volumes-with-tpm2-fido2-pkcs11-security-hardware-on-systemd-248.html Lennart のブログ: systemd 248 で TPM2、FIDO2、PKCS#11 セキュリティハードウェアを使用した LUKS2 ボリュームのロックを解除する]&lt;/div&gt;</summary>
		<author><name>Hkiku482</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Node.js&amp;diff=39027</id>
		<title>Node.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Node.js&amp;diff=39027"/>
		<updated>2024-09-12T13:02:22Z</updated>

		<summary type="html">&lt;p&gt;Hkiku482: /* インストール */ LTSリリース名の修正&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:開発]]&lt;br /&gt;
[[en:Node.js]]&lt;br /&gt;
[[zh-hans:Node.js]]&lt;br /&gt;
[http://nodejs.org/ Node.js] は便利なライブラリが組み合わされた JavaScript 実行環境です。[https://code.google.com/p/v8/ Google の V8 エンジン] を使用してブラウザの外でコードを実行します。イベント駆動型のノンブロッキング I/O モデルを採用しているため、リアルタイムなウェブアプリケーションに適しています。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{Pkg|nodejs}} パッケージを[[インストール]]します。LTS 版もあります:&lt;br /&gt;
* {{Pkg|nodejs-lts-iron}} - 20.X バージョンの場合&lt;br /&gt;
* {{Pkg|nodejs-lts-hydrogen}} - 18.X バージョンの場合&lt;br /&gt;
&lt;br /&gt;
=== 別のインストール方法 ===&lt;br /&gt;
&lt;br /&gt;
様々なバージョンの {{Pkg|nodejs}} を動作させる必要があったり、または動作させることを望むことは珍しいことではありません。node ユーザーの間で推奨されている方法は [https://github.com/creationix/nvm NVM] (Node Version Manger) の使用です。{{AUR|nvm}} を使うことで簡単にインストールすることができます。&lt;br /&gt;
&lt;br /&gt;
これをシェルの起動ファイルに追加することで設定できます:&lt;br /&gt;
&lt;br /&gt;
 # Set up Node Version Manager&lt;br /&gt;
 source /usr/share/nvm/init-nvm.sh&lt;br /&gt;
&lt;br /&gt;
使用方法はプロジェクトの github にまとめられていますが、要するに次を実行するだけです:&lt;br /&gt;
&lt;br /&gt;
 $ nvm install 8.0&lt;br /&gt;
 Downloading and installing node v8.0.0...&lt;br /&gt;
 [..]&lt;br /&gt;
 &lt;br /&gt;
 $ nvm use 8.0&lt;br /&gt;
 Now using node v8.0.0 (npm v5.0.0)&lt;br /&gt;
&lt;br /&gt;
{{AUR|nvm}} を使う場合、以前は AUR の {{ic|nodejs-fake}} パッケージを使うことが推奨されていましたが、これは現在、[https://lists.archlinux.org/pipermail/aur-requests/2018-January/021828.html 削除]されています。推奨される方法は、マニュアル {{man|8|pacman|TRANSACTION OPTIONS (APPLY TO -S, -R AND -U)}} にあるように、{{ic|1=--assume-installed nodejs=&amp;lt;version&amp;gt;}} を使うことです。&lt;br /&gt;
&lt;br /&gt;
ディレクトリに、.nvmrc ファイルがあるたびに、`nvm use` を自動的に実行したい場合は、{{ic|~/.bashrc}} に[https://stackoverflow.com/a/50378304 以下]を追加してください。&lt;br /&gt;
&lt;br /&gt;
== Node Packaged Module ==&lt;br /&gt;
&lt;br /&gt;
[https://www.npmjs.org/ npm] は node.js の公式パッケージマネージャです。{{Pkg|npm}} パッケージでインストールできます。&lt;br /&gt;
&lt;br /&gt;
=== npm でパッケージを管理 ===&lt;br /&gt;
&lt;br /&gt;
==== パッケージのインストール ====&lt;br /&gt;
&lt;br /&gt;
全てのパッケージは次のコマンドでインストールできます:&lt;br /&gt;
&lt;br /&gt;
 $ npm install packageName&lt;br /&gt;
&lt;br /&gt;
上のコマンドでパッケージがカレントディレクトリの {{ic|node_modules}} に、実行ファイルが {{ic|node_modules/.bin}} にインストールされます。&lt;br /&gt;
&lt;br /&gt;
システム全体にインストールするには {{ic|-g}} スイッチを使います:&lt;br /&gt;
&lt;br /&gt;
 # npm -g install packageName&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、上記のコマンドでパッケージは {{ic|/usr/lib/node_modules/npm}} にインストールされるため、実行するのに管理者権限が必要になります。&lt;br /&gt;
&lt;br /&gt;
===== ユーザーに &#039;&#039;global&#039;&#039; パッケージのインストールを許可する =====&lt;br /&gt;
&lt;br /&gt;
現在の[[ユーザー]]に、&#039;&#039;global&#039;&#039; パッケージのインストールを許可するには、[[環境変数#ユーザー毎|環境変数]] {{ic|npm_config_prefix}} を設定します。これは npm と [https://yarnpkg.com/en/ yarn] の両方で使用されます。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.profile|2=&lt;br /&gt;
PATH=&amp;quot;$HOME/.local/bin:$PATH&amp;quot;&lt;br /&gt;
export npm_config_prefix=&amp;quot;$HOME/.local&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
再ログインまたは、&#039;&#039;source&#039;&#039; して変更を更新します。&lt;br /&gt;
&lt;br /&gt;
{{ic|npm install}} 時に、{{ic|--prefix}} パラメータを指定することもできます。&#039;&#039;&#039;ただし&#039;&#039;&#039;、グローバルパッケージをインストールするたびに追加する必要があるので、これはお勧め&#039;&#039;&#039;しません&#039;&#039;&#039;。&lt;br /&gt;
&lt;br /&gt;
 $ npm -g install packageName --prefix ~/.local&lt;br /&gt;
&lt;br /&gt;
同様の方法として、{{ic|$HOME/.npmrc}} の {{ic|prefix}} フィールドを編集して、恒久的に変更する方法もあります。&lt;br /&gt;
&lt;br /&gt;
{{Note|最後の方法は、&#039;&#039;npm&#039;&#039; のみに特有のものです。}}&lt;br /&gt;
&lt;br /&gt;
==== パッケージのアップデート ====&lt;br /&gt;
&lt;br /&gt;
パッケージをアップデートするには次を実行:&lt;br /&gt;
&lt;br /&gt;
 $ npm update packageName&lt;br /&gt;
&lt;br /&gt;
グローバルにインストールしたパッケージ ({{ic|-g}}) の場合:&lt;br /&gt;
&lt;br /&gt;
 # npm update -g packageName&lt;br /&gt;
&lt;br /&gt;
{{Note|グローバルにインストールされたパッケージは、{{ic|prefix}} がユーザーが書き込み可能なディレクトリに設定されていない限り管理者権限が必要なので注意してください。}}&lt;br /&gt;
&lt;br /&gt;
===== 全てのパッケージをアップデート =====&lt;br /&gt;
&lt;br /&gt;
場合によっては、全てのパッケージをアップデートしたいと思うかもしれません。ローカルでもグローバルでも可能です。packageName を抜いて {{ic|npm}} を実行すると全てのパッケージがアップデートされます:&lt;br /&gt;
&lt;br /&gt;
 $ npm update&lt;br /&gt;
&lt;br /&gt;
またはグローバルにインストールしたパッケージをアップデートするには {{ic|-g}} フラグを追加:&lt;br /&gt;
&lt;br /&gt;
 # npm update -g&lt;br /&gt;
&lt;br /&gt;
==== パッケージの削除 ====&lt;br /&gt;
&lt;br /&gt;
{{ic|-g}} スイッチを使ってインストールしたパッケージを削除するには次のコマンドを使用:&lt;br /&gt;
&lt;br /&gt;
 # npm -g uninstall packageName&lt;br /&gt;
&lt;br /&gt;
{{Note|グローバルにパッケージをインストールしたときは管理者権限が必要なので注意してください。}}&lt;br /&gt;
&lt;br /&gt;
ローカルパッケージを削除するときはスイッチを省いて実行:&lt;br /&gt;
&lt;br /&gt;
 $ npm uninstall packageName&lt;br /&gt;
&lt;br /&gt;
==== パッケージの一覧表示 ====&lt;br /&gt;
&lt;br /&gt;
グローバルにインストールしたパッケージのツリービューを表示するには次を使用:&lt;br /&gt;
&lt;br /&gt;
 $ npm -g list&lt;br /&gt;
&lt;br /&gt;
場合によってツリーは深くなりすぎることがあります。トップレベルのパッケージだけを表示するには:&lt;br /&gt;
&lt;br /&gt;
 $ npm list --depth=0&lt;br /&gt;
&lt;br /&gt;
アップデートが必要な古いパッケージだけを表示するには:&lt;br /&gt;
&lt;br /&gt;
 $ npm outdated&lt;br /&gt;
&lt;br /&gt;
=== pacman でパッケージを管理 ===&lt;br /&gt;
&lt;br /&gt;
[[Arch User Repository]] には {{ic|nodejs-packageName}} という名前で node.js のパッケージがいくつか存在します。&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== node-gyp エラー ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
次のようなエラーの場合 {{ic|gyp WARN EACCES user &amp;quot;root&amp;quot; does not have permission to access the ... dir}} は {{ic|--unsafe-perm}} オプションが役立つ場合があります。&lt;br /&gt;
&lt;br /&gt;
 # npm install --unsafe-perm -g node-inspector&lt;br /&gt;
&lt;br /&gt;
=== エラー Cannot find module ...  ===&lt;br /&gt;
&lt;br /&gt;
npm 5.x.x 以降、package-lock.json ファイルは package.json とともに生成されます。2つのファイルが異なるパッケージバージョンを参照している場合、競合が発生する可能性があります。この問題を解決する一時的な方法は次の通りです:&lt;br /&gt;
 $ rm package-lock.json&lt;br /&gt;
 $ npm install&lt;br /&gt;
&lt;br /&gt;
ただし、npm 5.1.0 以降で修正されています。詳細については、以下を参照してください:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/npm/npm/pull/17508 missing dependencies]&lt;br /&gt;
&lt;br /&gt;
== 参考資料 ==&lt;br /&gt;
&lt;br /&gt;
{{Pkg|nodejs}} や公式のパッケージマネージャである [https://www.npmjs.org/ npm] の詳細情報は以下の資料を参照してください:&lt;br /&gt;
&lt;br /&gt;
* [https://nodejs.org/ja/docs/ Node.js ドキュメント]&lt;br /&gt;
* [https://docs.npmjs.com/ NPM ドキュメント]&lt;br /&gt;
* IRC チャンネル #node.js on irc.freenode.net&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus|Node.js|2021-09-25|689079}}&lt;/div&gt;</summary>
		<author><name>Hkiku482</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%83%90%E3%83%83%E3%82%AF%E3%83%A9%E3%82%A4%E3%83%88&amp;diff=36208</id>
		<title>バックライト</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%83%90%E3%83%83%E3%82%AF%E3%83%A9%E3%82%A4%E3%83%88&amp;diff=36208"/>
		<updated>2024-02-11T09:42:04Z</updated>

		<summary type="html">&lt;p&gt;Hkiku482: brightnessctlの説明の追加&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ノートパソコン]]&lt;br /&gt;
[[Category:電源管理]]&lt;br /&gt;
[[en:Backlight]]&lt;br /&gt;
[[ru:Backlight]]&lt;br /&gt;
画面の輝度を操作するのは難易度が高いことがしばしばです。多くのマシンでは、物理的なハードウェアスイッチが付いておらず、ソフトウェアによる方法は動いたり動かなかったりとまちまちです。ハードウェアにあった方法を使うようにしてください。画面が明るすぎると眼精疲労を起こす可能性があります。&lt;br /&gt;
&lt;br /&gt;
ソフトウェアを使ってモニターやノートパソコン、統合パネル (iMac など) の画面のバックライトを調整する方法は多数存在します。[https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/397617 これらの] [https://lore.kernel.org/patchwork/patch/528936/#708706 議論]とこの [https://wiki.ubuntu.com/Kernel/Debugging/Backlight wiki　ページ]によると、制御方法は次のカテゴリに分類できます。&lt;br /&gt;
&lt;br /&gt;
* 明るさはベンダー指定のホットキーによって制御され、OS が明るさを調整するためのインターフェイスはありません。&lt;br /&gt;
* 明るさは、[[#ACPI|ACPI]]、グラフィック、またはプラットフォーム ドライバーのいずれかによって制御されます。この場合、バックライト制御は、ユーザー空間の [[#バックライト ユーティリティ|バックライト ユーティリティ]]で使用できる {{ic|/sys/class/backlight}} を通じてユーザーに公開されます。&lt;br /&gt;
* 明るさは、[[#setpci|setpci]] を介してグラフィック カード レジスタに書き込むことによって制御されます。&lt;br /&gt;
&lt;br /&gt;
{{Note|OLED 画面にはバックライトがないため、OLED 画面を搭載したラップトップのバックライト電力を変更して明るさを制御することはできません。この場合、知覚される画面の明るさは、PWMコントロール（Linux カーネルには実装されていません）または、[[#色補正|ソフトウェアの色補正]]を使用して調整できます。}}&lt;br /&gt;
&lt;br /&gt;
== ハードウェアインターフェイス ==&lt;br /&gt;
=== ACPI ===&lt;br /&gt;
スクリーンバックライトの明るさはバックライト LED やカソードの電力レベルの設定によって調整されます。電力レベルは大抵の場合ビデオ用の ACPI カーネルモジュールを使用することで操作することが可能です。このモジュールのインターフェイスは sysfs のフォルダ {{ic|/sys/class/backlight}} によって提供されます。&lt;br /&gt;
&lt;br /&gt;
フォルダの名前はグラフィックカードのモデルによります。&lt;br /&gt;
{{hc|# ls /sys/class/backlight/|&lt;br /&gt;
intel_backlight&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
この例ではバックライトは Intel のグラフィックカードによって管理されています。ATI のカードでは {{ic|acpi_video0}} と呼ばれます。下の例では {{ic|acpi_video0}} を使っています。&lt;br /&gt;
&lt;br /&gt;
ディレクトリには以下のファイルとフォルダが含まれています:&lt;br /&gt;
&lt;br /&gt;
 actual_brightness  brightness         max_brightness     subsystem/    uevent             &lt;br /&gt;
 bl_power           device/            power/             type&lt;br /&gt;
&lt;br /&gt;
最大輝度は {{ic|max_brightness}} を見ることでわかります、多くの場合15です。&lt;br /&gt;
&lt;br /&gt;
{{hc|# cat /sys/class/backlight/acpi_video0/max_brightness|&lt;br /&gt;
15&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
数値を {{ic|brightness}} に書き込むことで明るさを設定できます。最大輝度よりも高い数値を設定することはできません。&lt;br /&gt;
&lt;br /&gt;
 # tee /sys/class/backlight/acpi_video0/brightness &amp;lt;&amp;lt;&amp;lt; 5&lt;br /&gt;
&lt;br /&gt;
==== カーネルコマンドラインオプション ====&lt;br /&gt;
&lt;br /&gt;
たまに、マザーボードの実装が ACPI と異なっているために ACPI が上手く動作しないことがあります。これにはデュアルグラフィックのノートパソコンなども含まれます (例: Nvidia/Radeon のディスクリート GPU と Intel/AMD の内蔵 GPU) - この問題が発生するノートパソコンの例として Dell Studio, Dell XPS 14/15/17 や Lenovo のノートパソコンなどが挙げられます。カーネル開発者の Kamal Mostafa がこの問題を解決する[https://launchpad.net/~kamalmostafa/+archive/linux-kamal-mjgbacklight パッチ]を作成しました - パッチは Linux 3.1 から含まれています。さらに、Nvidia-optimus ノートパソコンでは、nomodeset カーネルパラメータがバックライトの調整機能に干渉することがあります。以下のカーネルパラメータをブートローダー (grub, syslinux...) に追加してみてください:&lt;br /&gt;
&lt;br /&gt;
 video.use_native_backlight=1&lt;br /&gt;
&lt;br /&gt;
 {{Note|このカーネル設定は &#039;&#039;&#039;Linux 3.13&#039;&#039;&#039; で追加されました。}}&lt;br /&gt;
&lt;br /&gt;
または&lt;br /&gt;
&lt;br /&gt;
 acpi_osi=Linux acpi_backlight=vendor&lt;br /&gt;
&lt;br /&gt;
または&lt;br /&gt;
&lt;br /&gt;
 acpi_osi=Linux acpi_backlight=legacy&lt;br /&gt;
&#039;&#039;acpi_backlight=vendor は ACPI video.ko ドライバーの代わりにベンダー固有のドライバー (例: thinkpad_acpi, sony_acpi など) を優先して使用します。&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Lenovo IdeaPad ノートパソコンの場合、{{ic|blacklist ideapad_laptop}} を {{ic|/etc/modprobe.d/blacklist.conf}} に追加して {{ic|ideapad_laptop}} モジュールをブラックリスト化する必要があるかもしれません (必要に応じてファイルを作成してください)。[https://askubuntu.com/a/304762 ソース]。&lt;br /&gt;
&lt;br /&gt;
{{Tip|1=Asus のノートパソコンでは次を実行する必要があるかもしれません: {{ic|# modprobe asus-nb-wmi}}。}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Disabling legacy boot on Dell XPS13 breaks backlight support.}}&lt;br /&gt;
&lt;br /&gt;
==== Udev ルール ====&lt;br /&gt;
ACPI インターフェイスが利用できる場合、udev ルールを使って起動時にバックライトのレベルを設定することができます。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/udev/rules.d/81-backlight.rules|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
# Set backlight level to 8&lt;br /&gt;
SUBSYSTEM==&amp;quot;backlight&amp;quot;, ACTION==&amp;quot;add&amp;quot;, KERNEL==&amp;quot;acpi_video0&amp;quot;, ATTR{brightness}=&amp;quot;8&amp;quot;&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
このルールで値を固定しても、systemd-backlight サービスによって起動時に以前の輝度レベルに戻されます。このルールを使いたいときは、[[#systemd-backlight サービス|systemd-backlight サービス]]で説明されているように system-backlight サービスをマスクする必要があります。&lt;br /&gt;
&lt;br /&gt;
=== setpci ===&lt;br /&gt;
&lt;br /&gt;
In some cases (e.g. Intel Mobile 945GME [https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/397617]), it is possible to set the register of the graphic card to adjust the backlight. It means you adjust the backlight by manipulating the hardware directly, which can be risky and generally is not a good idea. Not all of the graphic cards support this method.&lt;br /&gt;
&lt;br /&gt;
When using this method, you need to use {{ic|lspci}} first to find out where your graphic card is.&lt;br /&gt;
&lt;br /&gt;
 # setpci -s 00:02.0 F4.B=0&lt;br /&gt;
&lt;br /&gt;
=== External monitors ===&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Display_Data_Channel#DDC.2FCI|DDC/CI]] (Display Data Channel Command Interface) can be used to communicate with external monitors implementing MCCS (Monitor Control Command Set) over I2C. DDC can control brightness, contrast, inputs, etc on supported monitors. Settings available via the OSD (On-Screen Display) panel can usually also be managed via DDC. The [[kernel module]] {{ic|i2c-dev}} may need to be loaded if the {{ic|/dev/i2c-*}} devices do not exist.&lt;br /&gt;
&lt;br /&gt;
{{Pkg|ddcutil}} can be used to query and set brightness settings:&lt;br /&gt;
&lt;br /&gt;
{{hc|# ddcutil capabilities {{!}} grep &amp;quot;Feature: 10&amp;quot;|&lt;br /&gt;
  Feature: 10 (Brightness)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{hc|1=# ddcutil getvcp 10|2=&lt;br /&gt;
VCP code 0x10 (Brightness                    ): current value =    60, max value =   100&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 # ddcutil setvcp 10 70&lt;br /&gt;
&lt;br /&gt;
Alternatively, one may use {{AUR|ddcci-driver-linux-dkms}} to expose external monitors in sysfs. Then, after loading the {{ic|ddcci}} [[kernel module]], one can use any [[#Backlight utilities|backlight utility]].&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* Using {{ic|ddcci}} and {{ic|i2c-dev}} simultaneously may result in resource conflicts such as a {{ic|Device or resource busy}} error.&lt;br /&gt;
* Users of NVIDIA&#039;s proprietary drivers may need to add {{ic|1=Option &amp;quot;RegistryDwords&amp;quot; &amp;quot;RMUseSwI2c=0x01; RMI2cSpeed=100&amp;quot;}} to the {{ic|Device}} section in {{ic|/etc/X11/xorg.conf.d/20-nvidia.conf}} (generated by &#039;&#039;nvidia-xconfig&#039;&#039;) or {{ic|1=options nvidia NVreg_RegistryDwords=RMUseSwI2c=0x01;RMI2cSpeed=100}} to {{ic|/etc/modprobe/conf.d/nvidia.conf}}. Confirm that the settings are correctly applied with {{ic|grep RegistryDwords /proc/driver/nvidia/params}} and check that the values are not empty. See [https://forums.developer.nvidia.com/t/gddccontrol-issues-with-nvidia-drivers-i2c-monitor-display-ddc-dp-hdmi-failing/30427/33] and [https://forums.developer.nvidia.com/t/gddccontrol-issues-with-nvidia-drivers-i2c-monitor-display-ddc-dp-hdmi-failing/30427/61]&lt;br /&gt;
* {{ic|ddcutil}} will fail to set some VCP features if there is a feature enabled on the monitor which already automatically adjusts them (e.g. [[Wikipedia:Contrast ratio#Dynamic contrast (DC)|Dynamic Contrast Ratio]] or BenQ&#039;s &#039;&#039;Eye Care&#039;&#039; technology).&lt;br /&gt;
* To facilitate binding screen brightness control to a keyboard shortcut, it may be convenient to enable non-superuser access to the relevant I2C devices. This can be achieved by adding a group {{ic|i2c}} and configuring [[udev]] to set this group as the owner of the I2C devices. See [https://raspberrypi.stackexchange.com/a/4472].&lt;br /&gt;
* If {{Pkg|ddcutil}} is installed, it provides the {{ic|/usr/share/ddcutil/data/90-nvidia-i2c.conf}} file, which can be copied to {{ic|/etc/X11/xorg.conf.d/}} instead of manually editing [[Xorg]] configuration files. It also provides {{ic|/usr/share/ddcutil/data/45-ddcutil-i2c.rules}} and {{ic|/usr/share/ddcutil/data/45-ddcutil-usb.rules}} for [[udev]] rules.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== バックライトをオフにする ==&lt;br /&gt;
&lt;br /&gt;
(ノートブックをロックした時などに) バックライトを切ることはバッテリーの節電に役に立ちます。グラフィカルセッションから次のコマンドを実行すればオフにできます:&lt;br /&gt;
 sleep 1 &amp;amp;&amp;amp; xset dpms force off&lt;br /&gt;
マウスを動かしたりキーボードで入力したりするとバックライトはまたオンになります。上のコマンドが使えない場合でも、{{ic|vbetool}} が使える可能性があります。ただし、この場合バックライトを戻すには手動で有効にする必要があるので注意してください。コマンドは以下の通りです:&lt;br /&gt;
 vbetool dpms off&lt;br /&gt;
バックライトをもう一度有効にするには:&lt;br /&gt;
 vbetool dpms on&lt;br /&gt;
&lt;br /&gt;
例えば、[[Acpid#ノートパソコンのモニターの電源オフ|Acipd]] のエントリで書かれているように、ノートパソコンのフタを閉じた時にこのコマンドを使用することが可能です。&lt;br /&gt;
&lt;br /&gt;
== systemd-backlight サービス ==&lt;br /&gt;
[[systemd]] パッケージにはサービス systemd-backlight@.service が含まれており、デフォルトで有効になっていて&amp;quot;固定&amp;quot;されています。シャットダウン時にバックライトの明るさのレベルを保存して、起動時にそれを復元します。このサービスは [[#ACPI]] で説明されている ACPI による方法を使っていて、{{ic|/sys/class/backlight/}} にあるフォルダごとにサービスを生成します。例えば、{{ic|acpi_video0}} という名前のフォルダがあった場合、{{ic|systemd-backlight@backlight:acpi_video0.service}} という名前のサービスを生成します。起動時に他の方法を使ってバックライトを設定するときは、systemd-backlight@.service サービスをマスクすることが推奨されます。&lt;br /&gt;
&lt;br /&gt;
== バックライトユーティリティ ==&lt;br /&gt;
&lt;br /&gt;
=== xbacklight ===&lt;br /&gt;
&lt;br /&gt;
xorg-server のコマンド {{ic|xbacklight}} を使ってバックライトを調整することが可能です。このユーティリティは [extra] の {{Pkg|xorg-xbacklight}} パッケージに入っています。&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=_pi3iKMAJcY YouTube の gotbletu] によってデモンストレーションが投稿されています。彼は以下のコマンドを使ってバックライトを調整することを提案しています:&lt;br /&gt;
&lt;br /&gt;
* 明るくする:&lt;br /&gt;
 xbacklight -inc 40&lt;br /&gt;
&lt;br /&gt;
* 弱くする:&lt;br /&gt;
 xbacklight -dec 40&lt;br /&gt;
&lt;br /&gt;
{{Tip|[[Xorg での特別なキーボードキー]]で説明されているようにしてこれらのコマンドをキーボードのキーに結びつけることが可能です。}}&lt;br /&gt;
&lt;br /&gt;
=== brightnessctl ===&lt;br /&gt;
{{Pkg|brightnessctl}}をインストール後、そのまま使用することができます。&lt;br /&gt;
&lt;br /&gt;
バックライトの輝度を 5% 上げる:&lt;br /&gt;
&lt;br /&gt;
 $ brightnessctl set 5%+&lt;br /&gt;
&lt;br /&gt;
バックライトの輝度を 5％ 下げる。&lt;br /&gt;
&lt;br /&gt;
 $ brightnessctl set 5%-&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{Pkg|xf86-video-intel}}をインストールしたくない場合は、代わりにこちらを使うことができます。}}&lt;br /&gt;
&lt;br /&gt;
=== light ===&lt;br /&gt;
&lt;br /&gt;
{{Tip|[https://github.com/perkele1989/light light]は2023/12現在アーカイブ状態になっており、利用が非推奨になっています。}}&lt;br /&gt;
&lt;br /&gt;
{{Pkg|light}} をインストールし、{{ic|video}} グループにユーザーを追加してください。&lt;br /&gt;
&lt;br /&gt;
バックライトの輝度を 5% 上げる:&lt;br /&gt;
&lt;br /&gt;
 $ light -A 5&lt;br /&gt;
&lt;br /&gt;
バックライトの輝度を 5％ 下げる。&lt;br /&gt;
&lt;br /&gt;
 $ light -U 5&lt;br /&gt;
&lt;br /&gt;
バックライトの輝度を 100% に設定する。&lt;br /&gt;
&lt;br /&gt;
 $ light -S 100&lt;br /&gt;
&lt;br /&gt;
=== relight ===&lt;br /&gt;
&lt;br /&gt;
[https://xyne.archlinux.ca/projects/relight relight] は [https://xyne.archlinux.ca/repos Xyne のリポジトリ] から利用でき、また、[[AUR]] からはパッケージ {{AUR|relight}} として取得可能です。このパッケージは上記の ACPI による方法を使って、再起動時に以前のバックライト設定を自動的に復元させるサービスを提供します。また、スクリーンごとにバックライトを選択・設定できるダイアログベースのメニューも入っています。&lt;br /&gt;
&lt;br /&gt;
=== setpci (細心の注意を払って使用してください) ===&lt;br /&gt;
&lt;br /&gt;
グラフィックカードのレジスタをセットして、バックライトの調整をすることが可能です。ハードウェアを直接操作してバックライトを調整するので、危険性が存在し、あまり勧められる方法ではありません。また、グラフィックカードによってはこの方法をサポートしていません。&lt;br /&gt;
&lt;br /&gt;
この方法を使う際には、まず {{ic|lspci}} を使ってあなたの使っているグラフィックカードの場所を確認する必要があります。&lt;br /&gt;
 # setpci -s 00:02.0 F4.B=0&lt;br /&gt;
&lt;br /&gt;
=== Calise ===&lt;br /&gt;
&lt;br /&gt;
ソフトウェア [http://calise.sourceforge.net/wordpress/ calise] は AUR にあります。&lt;br /&gt;
* 安定版: {{AUR|calise}}{{Broken package link|パッケージが存在しません}}&lt;br /&gt;
* 開発版: {{AUR|calise-git}}{{Broken package link|パッケージが存在しません}} &lt;br /&gt;
&lt;br /&gt;
光センサーを搭載していないノートパソコンのために、ウェブカメラからキャプチャして周りの明るさを計算し、画面のバックライトを設定します。&lt;br /&gt;
詳細は calise の wiki を見て下さい: [http://calise.sourceforge.net/mediawiki/index.php/Main_Page Calise wiki]。&lt;br /&gt;
&lt;br /&gt;
このプログラムの主な特徴としては、計算が非常に正確で、リソースの使用量がかなり少なく、デーモンバージョンが存在し (systemd ユーザーのための .service ファイルもあります)、バッテリー持ちにほとんど影響がないことが挙げられます。&lt;br /&gt;
&lt;br /&gt;
=== brightd ===&lt;br /&gt;
&lt;br /&gt;
Macbook にインスパイアされた {{AUR|brightd}} はユーザーの操作がしばらくないと自動的に画面を薄暗くします (スタンバイ状態にはしません)。さっくり画面をオフにする [[Display Power Management Signaling]] と上手く併用することができます。&lt;br /&gt;
&lt;br /&gt;
=== KDE ===&lt;br /&gt;
&lt;br /&gt;
[[KDE]] のユーザーは &#039;&#039;System Settings &amp;gt; Power Management &amp;gt; Energy Saving&#039;&#039; からバックライトを調整できます。&lt;br /&gt;
kdm よりも前にバックライトを設定したい場合は {{ic|/usr/share/config/kdm/Xsetup}} に次を記述してください:&lt;br /&gt;
&lt;br /&gt;
 xbacklight -inc 10&lt;br /&gt;
&lt;br /&gt;
== 色補正 ==&lt;br /&gt;
&lt;br /&gt;
=== Wayland ===&lt;br /&gt;
&lt;br /&gt;
[[Redshift]] は Wayland (パッチなし) をサポートしていません。ただし、コンポジタを開始する前に、 [[tty]] で目的の温度を適用することは可能です。例:&lt;br /&gt;
&lt;br /&gt;
 $redshift-m drm-PO 3000&lt;br /&gt;
&lt;br /&gt;
そうしないと、一部のコンポジタがランタイム中にカラー補正を適用する可能性があります。&lt;br /&gt;
&lt;br /&gt;
* [[GNOME]] では、組み込みの [[GNOME#夜間モード|夜間モード]] を使用できます。&lt;br /&gt;
* [[KDE Plasma]] では、内蔵の [[KDE#Night Color]] を使用できます。&lt;br /&gt;
* Sway 1.0 やその他の wlroot ベースのコンポジタは、Orbital や Redshift fork {{Pkg|gammastep}}、{{AUR|clight}}、{{AUR|wlsunset-git}} などと同様に使用できます。&lt;br /&gt;
&lt;br /&gt;
=== xcalib ===&lt;br /&gt;
&lt;br /&gt;
[[AUR]] にあるパッケージ {{Pkg|xcalib}} ([http://xcalib.sourceforge.net/ 上流のサイト]) を使って画面を調光することができます。これも同じく、ユーザーの gotbletu が [https://www.youtube.com/watch?v=A9xsvntT6i4 Youtube] にデモンストレーションを投稿しています。このプログラムはガンマ補正と色の反転、コントラストの低減をすることが可能で、ここでは後者を使用します:&lt;br /&gt;
&lt;br /&gt;
* 暗くする:&lt;br /&gt;
 xcalib -co 40 -a&lt;br /&gt;
&lt;br /&gt;
このプログラムは ICC を使って X11 と通信するので、画面が暗くなっても、マウスカーソルの明るさは変わりません。&lt;br /&gt;
&lt;br /&gt;
=== Xflux ===&lt;br /&gt;
&lt;br /&gt;
Xflux は X-Windows system 向けの [http://justgetflux.com f.lux] ポートです。日中は青に夜は黄色・橙色に画面を変化させることで、一日の流れに画面の輝度を合わせて夜ふかしを止めるのに役立ちます。&lt;br /&gt;
&lt;br /&gt;
AUR には &#039;&#039;f.lux&#039;&#039; を使用するためのパッケージがいくつか存在します [https://aur.archlinux.org/packages/?O=0&amp;amp;K=xflux]。「メイン」のパッケージは {{AUR|xflux}} で、&#039;&#039;f.lux&#039;&#039; のコマンドライン機能を扱います。xflux パッケージの自動起動を行うためのデーモンも様々あります。&lt;br /&gt;
&lt;br /&gt;
=== redshift ===&lt;br /&gt;
&lt;br /&gt;
公式リポジトリに入っているプログラム [[redshift]] は、時刻と地理情報にあわせて {{ic|randr}} を使って画面の明るさを調整します。RGB ガンマ補正をしたり色温度の設定も可能です。{{ic|xcalib}} と同じように、ソフトウェアによる方法なのでマウスカーソルの見た目は変わりません。明るさのクイック調整を実行するために、次のようなコマンドを使ってみて下さい:&lt;br /&gt;
&lt;br /&gt;
 redshift -o -l 0:0 -b 0.8 -t 6500:6500&lt;br /&gt;
&lt;br /&gt;
{{Tip|西経や南緯の場合は、負の値で入力してください。例えばカリフォルニア州バークレーならば:&lt;br /&gt;
 redshift-gtk -l 37.8717:-122.2728 &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== NVIDIA の設定 ===&lt;br /&gt;
&lt;br /&gt;
[[NVIDIA]] のプロプライエタリドライバーを使っている場合、nvidia-settings ユーティリティの &amp;quot;X Server Color Correction&amp;quot; からディスプレイの輝度を変更することができます。ただし、バックライト (の強さ) には全く変更がされないので注意してください、あくまでカラー出力の調整だけが行われます (この方法で明るさを下げても電力効率は良くならないので他の方法が全て使えない時の最後の手段といったところです。明るさを上げると、露出オーバーの写真と同じように、色味が完全に落ちます)。&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== バックライト PWM 変調周波数 (Intel i915 のみ) ===&lt;br /&gt;
&lt;br /&gt;
LED バックライトを搭載したノートパソコンではときどき画面にちらつきが発生することが知られています。これは LED の点灯と消灯をヒトの目には識別できない時間で高速に切り替えることで明るさを制御しているためですが、(PWM 変調周期と呼ばれる) 切り替えの周波数が高くないために、はっきり判別できるほどのちらつきが生じたり、人によっては頭痛や眼精疲労の原因になることがあります。&lt;br /&gt;
&lt;br /&gt;
Intel i915 GPU を使っている場合、PWM 変調周期を調整することでちらつきを取り除くことが可能です。&lt;br /&gt;
&lt;br /&gt;
公式リポジトリから {{Pkg|intel-gpu-tools}} をインストールしてください。PWM 変調周期を決めているレジスタの値を取得します:&lt;br /&gt;
&lt;br /&gt;
{{hc|# intel_reg_read 0xC8254|&lt;br /&gt;
0xC8254 : 0x12281228&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
戻り値が PWM 変調の周期を表しています。PWM 変調周期を増加させるには、レジスタの値を減らす必要があります。例えば、上の例から周期を2倍にするには、次を実行します:&lt;br /&gt;
&lt;br /&gt;
 # intel_reg_write 0xC8254 0x09140914&lt;br /&gt;
&lt;br /&gt;
オンラインの計算器を使って設定すべき値を計算できます http://devbraindom.blogspot.com/2013/03/eliminate-led-screen-flicker-with-intel.html&lt;br /&gt;
&lt;br /&gt;
詳しくは次のトピックを参照してください https://bbs.archlinux.org/viewtopic.php?pid=1245913&lt;br /&gt;
&lt;br /&gt;
Intel GM45 チップセットを使用している場合は 0xC8254 の代わりにアドレス 0x61254 を使用してください。&lt;br /&gt;
&lt;br /&gt;
=== カーネル 3.13 で Intel チップセットでバックライトが調整できない ===&lt;br /&gt;
以下のファイルを追加すると直ります。&lt;br /&gt;
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
        Identifier  &amp;quot;Backlight fix&amp;quot;&lt;br /&gt;
        Driver      &amp;quot;intel&amp;quot;&lt;br /&gt;
        Option      &amp;quot;Backlight&amp;quot;  &amp;quot;intel_backlight&amp;quot;&lt;br /&gt;
EndSection}}&lt;br /&gt;
&lt;br /&gt;
=== sysfs を変更しても明るさが変更されない ===&lt;br /&gt;
&lt;br /&gt;
{{Note|この問題と解決方法は Dell M6700 と Nvidia K5000m (A10 より前の BIOS バージョン), Clevo P750ZM (Eurocom P5 Pro Extreme) と Nvidia 980m で確認済みです。}}&lt;br /&gt;
&lt;br /&gt;
環境によっては、キーボードの輝度ホットキーで {{ic|/sys/class/backlight/acpi_video0/actual_brightness}} の acpi インターフェイスの値は変更されるのに、画面の輝度が変更されないことがあります。また、[[デスクトップ環境]]の輝度アプレットが使えないこともあります。&lt;br /&gt;
&lt;br /&gt;
カーネルパラメータの変更をテストしてみて {{ic|xbacklight}} だけが動作する場合、BIOS とカーネルドライバーの互換性がない可能性があります。&lt;br /&gt;
&lt;br /&gt;
その場合、BIOS や GPU ドライバーのメーカーから修正がリリースされるのを待つしかありません。&lt;br /&gt;
&lt;br /&gt;
応急手段として inotify カーネル api を使って {{ic|/sys/class/backlight/acpi_video0/actual_brightness}} の値が変更されるたびに {{ic|xbacklight}} を実行することができます。&lt;br /&gt;
&lt;br /&gt;
まず {{Pkg|inotify-tools}} を[[インストール]]してください。そして inotify を使用するスクリプトを作成して、[[自動起動]]するように設定します。&lt;br /&gt;
&lt;br /&gt;
{{hc|/usr/local/bin/xbacklightmon|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
max=/sys/class/backlight/acpi_video0/max_brightness&lt;br /&gt;
level=/sys/class/backlight/acpi_video0/actual_brightness&lt;br /&gt;
factor=$(awk &#039;{print $1/100}&#039; &amp;lt;&amp;lt;&amp;lt; $(&amp;lt;$max)) &lt;br /&gt;
&lt;br /&gt;
xblevel() { awk &#039;{print int($1/$2)}&#039; &amp;lt;&amp;lt;&amp;lt; &amp;quot;$(&amp;lt;$level) $factor&amp;quot;; }&lt;br /&gt;
xbacklight -set $(xblevel)&lt;br /&gt;
inotifywait -m -qe modify $level | while read -r file event; do&lt;br /&gt;
    xbacklight -set $(xblevel)&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>Hkiku482</name></author>
	</entry>
</feed>