「既存の Linux からインストール」の版間の差分
Kusakata.bot (トーク | 投稿記録) 細 (文字列「[[zh-tw:」を「[[zh-hant:」に置換) |
(→ミラーを選択して基本ツールをダウンロード: セクション名を英語版と同じに) |
||
(3人の利用者による、間の3版が非表示) | |||
6行目: | 6行目: | ||
[[pt:Install from existing Linux]] |
[[pt:Install from existing Linux]] |
||
[[ru:Install from existing Linux]] |
[[ru:Install from existing Linux]] |
||
− | [[uk:Install from existing Linux]] |
||
[[zh-hans:Install from existing Linux]] |
[[zh-hans:Install from existing Linux]] |
||
[[zh-hant:Install from existing Linux]] |
[[zh-hant:Install from existing Linux]] |
||
17行目: | 16行目: | ||
* Arch Linux のリモートインストール、例えば (仮想) ルートサーバー |
* Arch Linux のリモートインストール、例えば (仮想) ルートサーバー |
||
* 既存の Linux を LiveCD を使わずに置き換える ([[#LiveCD を使わずに既存のシステムを置き換える]] を参照) |
* 既存の Linux を LiveCD を使わずに置き換える ([[#LiveCD を使わずに既存のシステムを置き換える]] を参照) |
||
− | * Arch Linux ベースの新しい Linux ディストリビューションや |
+ | * Arch Linux ベースの新しい Linux ディストリビューションや [[Arch ベースのディストリビューション|Arch Linux ベースのLiveMedia]] の作成 |
* Arch Linux の chroot 環境の作成、例えば Docker のベースコンテナ |
* Arch Linux の chroot 環境の作成、例えば Docker のベースコンテナ |
||
* [[ディスクレスシステム|ディスクレスマシンの rootfs-over-NFS]] |
* [[ディスクレスシステム|ディスクレスマシンの rootfs-over-NFS]] |
||
51行目: | 50行目: | ||
{{Tip|全てのパッケージをもう一度ダウンロードするかわりに、[[Pacman ヒント#pacman のキャッシュをネットワークで共有する|pacman のキャッシュをネットワークで共有する]]か ''pacstrap'' の {{ic|-c}} オプションを使う方法もあります。}} |
{{Tip|全てのパッケージをもう一度ダウンロードするかわりに、[[Pacman ヒント#pacman のキャッシュをネットワークで共有する|pacman のキャッシュをネットワークで共有する]]か ''pacstrap'' の {{ic|-c}} オプションを使う方法もあります。}} |
||
+ | |||
+ | {{Tip|GRUB ブートローダーが使われているとき、{{ic|grub-mkconfig}} がデバイスを誤検知することがあり、スティックから起動しようとしても {{ic|Error:no such device}} エラーになります。解決策としては、Arch Linux が動作しているホストから新しくインストールしたパーティションをマウントして {{ic|arch-chroot}} し、その上でGRUB をインストールして設定する方法です。GRUB をインストールするときに {{ic|/etc/lvm/lvm.conf}} で {{ic|1=use_lvmetad=0}} として {{ic|lvmetad}} を無効にしなければならないかもしれません。}} |
||
{{Note|既存の Arch 環境の複製を作成したい場合、新しいパーティションにファイルシステムをコピーするだけで作成できます。その場合、以下の設定が必要です: |
{{Note|既存の Arch 環境の複製を作成したい場合、新しいパーティションにファイルシステムをコピーするだけで作成できます。その場合、以下の設定が必要です: |
||
67行目: | 68行目: | ||
* [https://github.com/tokland/arch-bootstrap arch-bootstrap] (Bash) |
* [https://github.com/tokland/arch-bootstrap arch-bootstrap] (Bash) |
||
* [https://github.com/hartwork/image-bootstrap image-bootstrap] (Python) |
* [https://github.com/hartwork/image-bootstrap image-bootstrap] (Python) |
||
− | * [https:// |
+ | * [https://gitlab.com/drizzt/vps2arch vps2arch] (Bash) |
+ | |||
− | * [https://github.com/m4rienf/ArchCX archcx] (Bash, Hetzner CX Rescue System 由来) |
||
+ | 以下では手動でインストールする方法を記述しています。ホスト環境で直接 [[pacman]] を動作させる方法と、ホスト環境の中で Arch を動作させ、ネストされた環境は chroot の中に格納する方法を紹介します。 |
||
+ | |||
+ | === ホストシステムから pacman を使用する === |
||
+ | [https://git.archlinux.org/pacman.git/ Pacman のソースコード] は大抵の Linux ディストリビューションでコンパイルでき、ホストシステムから直接 Arch Linux をブートストラップするのに活用できます。[https://git.archlinux.org/arch-install-scripts.git/about/ arch-install-scripts] は最近のディストリビューションでダウンロードしたソースコードから問題なく動作するはずです。 |
||
+ | ディストリビューションによっては、公式リポジトリに ''pacman'' や ''arch-install-scripts'' があり、ブートストラップに利用できます。2019年2月時点で、Gentoo Linux には ''pacman'' パッケージが提供されており、Alpine Linux および Fedora には ''pacman'' と ''arch-install-scripts'' がともにに提供されていると知られています。 |
||
− | 以下では手動でインストールする方法を記述しています。ホスト環境の中で Arch を動作させ、ネストされた環境は chroot の中に格納します。 |
||
=== chroot の作成 === |
=== chroot の作成 === |
||
78行目: | 83行目: | ||
==== 方法 A: ブートストラップイメージを使う (推奨) ==== |
==== 方法 A: ブートストラップイメージを使う (推奨) ==== |
||
− | [https://www. |
+ | [https://www.archlinux.jp/download/ ミラー] からブートストラップイメージを {{ic|/tmp}} にダウンロードしてください。 |
− | # cd /tmp |
||
− | # curl -O https://mirrors.kernel.org/archlinux/iso/2016.09.03/archlinux-bootstrap-2016.09.03-x86_64.tar.gz |
||
署名をダウンロードして (URL に {{ic|.sig}} が付きます)、[[GnuPG#署名の検証|GnuPG で検証]]することもできます。 |
署名をダウンロードして (URL に {{ic|.sig}} が付きます)、[[GnuPG#署名の検証|GnuPG で検証]]することもできます。 |
||
tarball を解凍: |
tarball を解凍: |
||
− | # tar xzf <path-to-bootstrap-image>/archlinux-bootstrap- |
+ | # tar xzf <path-to-bootstrap-image>/archlinux-bootstrap-*-x86_64.tar.gz |
{{ic|/tmp/root.x86_64/etc/pacman.d/mirrorlist}} を編集してリポジトリサーバーを選択してください。 |
{{ic|/tmp/root.x86_64/etc/pacman.d/mirrorlist}} を編集してリポジトリサーバーを選択してください。 |
||
100行目: | 103行目: | ||
# cp /etc/resolv.conf etc |
# cp /etc/resolv.conf etc |
||
# mount -t proc /proc proc |
# mount -t proc /proc proc |
||
− | # mount --rbind /sys sys |
+ | # mount --make-rslave --rbind /sys sys |
− | # mount --rbind /dev dev |
+ | # mount --make-rslave --rbind /dev dev |
− | # mount --rbind /run run # (assuming /run exists on the system) |
+ | # mount --make-rslave --rbind /run run # (assuming /run exists on the system) |
# chroot /tmp/root.x86_64 /bin/bash |
# chroot /tmp/root.x86_64 /bin/bash |
||
111行目: | 114行目: | ||
{{Note|先に進む前に、ホスト環境に最新版の [http://squashfs.sourceforge.net/ squashfs] がインストールされていることを確認してください。バージョンが古いと、次のようなエラーが発生します: {{ic|FATAL ERROR aborting: uncompress_inode_table: failed to read block}}。}} |
{{Note|先に進む前に、ホスト環境に最新版の [http://squashfs.sourceforge.net/ squashfs] がインストールされていることを確認してください。バージョンが古いと、次のようなエラーが発生します: {{ic|FATAL ERROR aborting: uncompress_inode_table: failed to read block}}。}} |
||
− | * ルートイメージは [https://www. |
+ | * ルートイメージは [https://www.archlinux.jp/download/ ミラー] の arch/x86_64/ と arch/i686/ に存在します (使用したいアーキテクチャにあわせて選んでください)。squashfs フォーマットは編集ができないため、ルートイメージを unsquash してからマウントします。 |
*ルートイメージを unsquash するには、次を実行: |
*ルートイメージを unsquash するには、次を実行: |
||
143行目: | 146行目: | ||
{{Tip|{{Pkg|haveged}} のインストール・実行はホスト環境で行う必要があります。pacman のキーリングを初期化しないとパッケージをインストールすることはできないためです。''systemd'' は chroot で動作していることを認識すると [https://superuser.com/questions/688733/start-a-systemd-service-inside-chroot サービスの起動リクエスト] を無視します。他のコンソール (TTY, ターミナル, SSH セッションなど) で {{ic|ls -Ra /}} を実行する場合、リモートのヘッドレスサーバーに十分なエントロピーを供給するのに必要な実行回数は5回あるいは6回です。}} |
{{Tip|{{Pkg|haveged}} のインストール・実行はホスト環境で行う必要があります。pacman のキーリングを初期化しないとパッケージをインストールすることはできないためです。''systemd'' は chroot で動作していることを認識すると [https://superuser.com/questions/688733/start-a-systemd-service-inside-chroot サービスの起動リクエスト] を無視します。他のコンソール (TTY, ターミナル, SSH セッションなど) で {{ic|ls -Ra /}} を実行する場合、リモートのヘッドレスサーバーに十分なエントロピーを供給するのに必要な実行回数は5回あるいは6回です。}} |
||
− | ==== |
+ | ==== 基本ツールをダウンロード ==== |
− | [[ミラー#特定のミラーを有効にする|ミラーを選択]]したら、[[ミラー#pacman にパッケージリストを更新させる|パッケージリストを更新]]して必要なパッケージを[[インストール]]してください: {{ |
+ | [[ミラー#特定のミラーを有効にする|ミラーを選択]]したら、[[ミラー#pacman にパッケージリストを更新させる|パッケージリストを更新]]して必要なパッケージを[[インストール]]してください: {{Pkg|base}}, {{Grp|base-devel}}, {{Pkg|parted}} など。 |
+ | |||
+ | {{Note| |
||
+ | * テキストエディタが何も導入されていない場合は、一旦 {{ic|arch-chroot}} を抜け、ホスト環境のテキストエディタで {{ic|mirrorlist}} を編集する必要があります。 |
||
+ | * pacman でパッケージのインストールを試みて、{{ic|''error: could not determine cachedir mount point /var/cache/pacman/pkg''}} というエラーが生じた際、回避策として、chroot の前に{{ic|mount --bind <directory-to-livecd-or-bootstrap> <directory-to-livecd-or-bootstrap>}} を実行する方法があります。{{Bug|46169}} を参照してください。 |
||
+ | }} |
||
=== インストールのヒント === |
=== インストールのヒント === |
||
214行目: | 222行目: | ||
また、システムから LVM を使用している場合に、以下の出力がされることがあります: |
また、システムから LVM を使用している場合に、以下の出力がされることがあります: |
||
− | {{hc|1=# grub-install --target=i386-pc --recheck /dev |
+ | {{hc|1=# grub-install --target=i386-pc --recheck /dev/main/archroot|2= |
Installing for i386-pc platform. |
Installing for i386-pc platform. |
||
/run/lvm/lvmetad.socket: connect failed: No such file or directory |
/run/lvm/lvmetad.socket: connect failed: No such file or directory |
||
234行目: | 242行目: | ||
上記の設定を行うと起動の initrd ステージでエラーが発生します。GRUB の生成を行ってから変更してください。ソフトウェア RAID + LVM の場合、以下の手順で設定します: |
上記の設定を行うと起動の initrd ステージでエラーが発生します。GRUB の生成を行ってから変更してください。ソフトウェア RAID + LVM の場合、以下の手順で設定します: |
||
− | * システムを全てインストールした後、initramfs (mkinitcpio) や |
+ | * システムを全てインストールした後、initramfs (mkinitcpio) や [[ブートローダー]]の設定をよく確認してください。 |
* {{ic|/etc/mdadm.conf}} を RAID の構成にあわせて変更してください。 |
* {{ic|/etc/mdadm.conf}} を RAID の構成にあわせて変更してください。 |
||
* LVM と RAID の要件を満たすように HOOKS と MODULES を変更してください: {{ic|1=MODULES="dm_mod" HOOKS="base udev '''mdadm_udev''' ... block '''lvm2''' filesystems ..."}}。 |
* LVM と RAID の要件を満たすように HOOKS と MODULES を変更してください: {{ic|1=MODULES="dm_mod" HOOKS="base udev '''mdadm_udev''' ... block '''lvm2''' filesystems ..."}}。 |
||
− | * mkinitcpio で initrd イメージを生成してください。 |
+ | * mkinitcpio で initrd イメージを生成してください。[[mkinitcpio#イメージ作成とアクティベーション]] を参照。 |
* {{ic|/etc/lvm/lvm.conf}} を編集して {{ic|1=use_lvmetad=0}} と記述します。 |
* {{ic|/etc/lvm/lvm.conf}} を編集して {{ic|1=use_lvmetad=0}} と記述します。 |
||
− | * |
+ | * ブートローダーの設定を更新します。 |
* {{ic|/etc/lvm/lvm.conf}} を編集して {{ic|1=use_lvmetad=1}} と記述します。 |
* {{ic|/etc/lvm/lvm.conf}} を編集して {{ic|1=use_lvmetad=1}} と記述します。 |
||
250行目: | 258行目: | ||
再起動する前に、新しくインストールした環境に chroot してください。 |
再起動する前に、新しくインストールした環境に chroot してください。 |
||
− | + | [[SSH]] を使いログインできるように、ユーザーとパスワードを作成してください。root でのログインは OpenSSH-7.1p2 からデフォルトで無効です。 |
|
+ | |||
+ | 再起動後 su を使えるように root パスワードを設定: |
||
# passwd |
# passwd |
||
2023年10月21日 (土) 18:54時点における最新版
関連記事
この文章では Linux ホストシステムから Arch Linux をインストールするのに必要なブートストラッププロセスを説明しています。ブートストラップした後は、インストールガイドの記述に従ってインストールを行なって下さい。
既存の Linux から Arch Linux をインストールすることが考えられるのは以下の場合になります:
- Arch Linux のリモートインストール、例えば (仮想) ルートサーバー
- 既存の Linux を LiveCD を使わずに置き換える (#LiveCD を使わずに既存のシステムを置き換える を参照)
- Arch Linux ベースの新しい Linux ディストリビューションや Arch Linux ベースのLiveMedia の作成
- Arch Linux の chroot 環境の作成、例えば Docker のベースコンテナ
- ディスクレスマシンの rootfs-over-NFS
ブートストラップの目的は arch-install-scripts のスクリプト (pacstrap
や arch-chroot
など) が走る環境をセットアップすることです。
ホストシステムで Arch Linux を動かしている場合は、arch-install-scripts をインストールするだけです。ホスト環境で他の Linux ディストリビューションを使っている場合、まず Arch Linux ベースの chroot をセットアップする必要があります。
目次
バックアップと準備
メールやウェブサーバーなど全てのデータをバックアップしてください。マシン設定の情報も控えておきましょう。サーバーの設定やホストネームなどです。
以下は必要なデータのリストです:
- IP アドレス
- ホストネーム (ノート: ルートサーバーも大抵の場合、プロバイダーのドメインに含まれます。
/etc/hosts
を確認・バックアップしてください) - DNS サーバー (
/etc/resolv.conf
を確認) - SSH 鍵 (サーバーを使っている人が他にいる場合、新しい鍵を認証する必要があります。Apache やメールサーバー、SSH サーバーなどの鍵が該当します)
- ハードウェアの情報 (ネットワークカードなど。インストール済みの
/etc/modules.conf
を参照してください) - GRUB 設定ファイル
ローカルのハードドライブに /etc
ディレクトリのコピーを作成すると良いでしょう。
Arch Linux が動作しているホストからインストール
arch-install-scripts パッケージをインストールしてください。
インストールガイド#パーティションのマウントに従ってください。/mnt
ディレクトリを別の用途に使っている場合、/mnt/install
などのように他のディレクトリを作成してください。
その後インストールガイド#インストールに従ってください。ホストにミラーリストが存在するため、インストールガイド#ミラーの選択は省略できます。
他の Linux ディストリビューションが動作しているホストからインストール
以下のサブセクションに書かれている手順を自動化するツールが複数存在します。詳しくはそれぞれのホームページを見てください。
- arch-bootstrap (Bash)
- image-bootstrap (Python)
- vps2arch (Bash)
以下では手動でインストールする方法を記述しています。ホスト環境で直接 pacman を動作させる方法と、ホスト環境の中で Arch を動作させ、ネストされた環境は chroot の中に格納する方法を紹介します。
ホストシステムから pacman を使用する
Pacman のソースコード は大抵の Linux ディストリビューションでコンパイルでき、ホストシステムから直接 Arch Linux をブートストラップするのに活用できます。arch-install-scripts は最近のディストリビューションでダウンロードしたソースコードから問題なく動作するはずです。
ディストリビューションによっては、公式リポジトリに pacman や arch-install-scripts があり、ブートストラップに利用できます。2019年2月時点で、Gentoo Linux には pacman パッケージが提供されており、Alpine Linux および Fedora には pacman と arch-install-scripts がともにに提供されていると知られています。
chroot の作成
chroot をセットアップする方法は2つ存在します。簡単な方法と複雑な方法の2つです。どちらか片方を選択してください。その後、#chroot 環境を使うに進んでください。
方法 A: ブートストラップイメージを使う (推奨)
ミラー からブートストラップイメージを /tmp
にダウンロードしてください。
署名をダウンロードして (URL に .sig
が付きます)、GnuPG で検証することもできます。
tarball を解凍:
# tar xzf <path-to-bootstrap-image>/archlinux-bootstrap-*-x86_64.tar.gz
/tmp/root.x86_64/etc/pacman.d/mirrorlist
を編集してリポジトリサーバーを選択してください。
chroot 環境に入ってください:
- bash 4 以上がインストールされていて、unshare が --fork と --pid オプションに対応している場合:
# /tmp/root.x86_64/bin/arch-chroot /tmp/root.x86_64/
- bash 4 未満の場合、以下のコマンドを実行:
# mount --bind /tmp/root.x86_64 /tmp/root.x86_64 # cd /tmp/root.x86_64 # cp /etc/resolv.conf etc # mount -t proc /proc proc # mount --make-rslave --rbind /sys sys # mount --make-rslave --rbind /dev dev # mount --make-rslave --rbind /run run # (assuming /run exists on the system) # chroot /tmp/root.x86_64 /bin/bash
方法 B: LiveCD イメージを使う
最新の Arch Linux インストールメディアのルートイメージをマウントして chroot することができます。この方法では特定のパッケージをインストールして準備をしなくても Arch Linux のインストール環境を動作させることができるというメリットがあります。
- ルートイメージは ミラー の arch/x86_64/ と arch/i686/ に存在します (使用したいアーキテクチャにあわせて選んでください)。squashfs フォーマットは編集ができないため、ルートイメージを unsquash してからマウントします。
- ルートイメージを unsquash するには、次を実行:
# unsquashfs airootfs.sfs
- chroot する前に、マウントポイントを設定して
resolv.conf
をコピーする必要があります:
# mount --bind squashfs-root squashfs-root # mount -t proc none squashfs-root/proc # mount -t sysfs none squashfs-root/sys # mount -o bind /dev squashfs-root/dev # mount -o bind /dev/pts squashfs-root/dev/pts ## important for pacman (for signature check) # cp -L /etc/resolv.conf squashfs-root/etc ## this is needed to use networking within the chroot
- それから、新しくインストールする Arch 環境に chroot してください:
# chroot squashfs-root bash
chroot 環境を使う
ブートストラップ環境は完全なベアボーンです (nano
も ping
も cryptsetup
も lvm
も存在しません)。したがって、pacman をセットアップして base
を (必要であれば base-devel
も) ダウンロードする必要があります。
pacman キーリングの初期化
インストールを開始する前に、pacman の鍵をセットアップしてください。pacman-key#キーリングの初期化を読んでから (エントロピーが必要です)、以下のコマンドを実行:
# pacman-key --init # pacman-key --populate archlinux
基本ツールをダウンロード
ミラーを選択したら、パッケージリストを更新して必要なパッケージをインストールしてください: base, base-devel, parted など。
インストールのヒント
インストールガイド#パーティションに進んでインストールガイドの残りのセクションに従ってください。
ホスト環境によっては特定の設定が必要になることがあります。以下のセクションを見てください。
Debian ベースのホスト
/dev/shm
Debian ベースのホスト環境では、pacstrap
が以下のエラーを表示することがあります:
# pacstrap /mnt base
==> Creating install root at /mnt mount: mount point /mnt/dev/shm is a symbolic link to nowhere ==> ERROR: failed to setup API filesystems in new root
Debian では、/dev/shm
が /run/shm
になっているのに対して、Arch の chroot では /run/shm
が存在せずリンクが壊れてしまうのが原因です。エラーを回避するには、/run/shm
ディレクトリを作成してください:
# mkdir /run/shm
/dev/pts
Debian 7 ホストから archlinux-2015.07.01-x86_64
をインストールしたとき、pacstrap と arch-chroot が以下のエラーで動作しません:
# pacstrap -i /mnt
mount: mount point /mnt/dev/pts does not exist ==> ERROR: failed to setup chroot /mnt
スクリプトが一般的な関数を使っているのが原因です。chroot_setup()
[1] は util-linux の新しい機能に依存していますが、Debian 7 のユーザーランドでは使用することができません (FS#45737 を参照)。
様々な作業 を手動で実行して対象ディレクトリ ("$newroot"
) にカーネルファイルシステムを通常の方法でマウントしてください:
# newroot=/mnt # mkdir -m 0755 -p "$newroot"/var/{cache/pacman/pkg,lib/pacman,log} "$newroot"/{dev,run,etc} # mkdir -m 1777 -p "$newroot"/tmp # mkdir -m 0555 -p "$newroot"/{sys,proc} # mount --bind "$newroot" "$newroot" # mount -t proc /proc "$newroot/proc" # mount --rbind /sys "$newroot/sys" # mount --rbind /run "$newroot/run" # mount --rbind /dev "$newroot/dev" # pacman -r "$newroot" --cachedir="$newroot/var/cache/pacman/pkg" -Sy base base-devel ... ## add the packages you want # cp -a /etc/pacman.d/gnupg "$newroot/etc/pacman.d/" ## copy keyring # cp -a /etc/pacman.d/mirrorlist "$newroot/etc/pacman.d/" ## copy mirrorlist
インストールガイド#Chroot では arch-chroot
のかわりに、chroot "$newroot"
を使います。
lvmetad
Debian 7 のホストの archlinux-bootstrap-2015.07.01-x86_64
から LVM の論理ボリュームを作成しようとすると以下のエラーが発生します:
# lvcreate -L 20G lvm -n root
/run/lvm/lvmetad.socket: connect failed: No such file or directory WARNING: Failed to connect to lvmetad. Falling back to internal scanning. /dev/lvm/root: not found: device not cleared Aborting. Failed to wipe start of new LV.
(Debian から) chroot の外側に論理ボリュームを作成することでエラーを回避できます。その後、chroot して利用してください。
また、システムから LVM を使用している場合に、以下の出力がされることがあります:
# grub-install --target=i386-pc --recheck /dev/main/archroot
Installing for i386-pc platform. /run/lvm/lvmetad.socket: connect failed: No such file or directory WARNING: Failed to connect to lvmetad. Falling back to internal scanning. /run/lvm/lvmetad.socket: connect failed: No such file or directory WARNING: Failed to connect to lvmetad. Falling back to internal scanning. /run/lvm/lvmetad.socket: connect failed: No such file or directory WARNING: Failed to connect to lvmetad. Falling back to internal scanning. /run/lvm/lvmetad.socket: connect failed: No such file or directory WARNING: Failed to connect to lvmetad. Falling back to internal scanning. /run/lvm/lvmetad.socket: connect failed: No such file or directory WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
Debian がデフォルトで lvmetad を使用しないのが原因です。/etc/lvm/lvm.conf
を編集して use_lvmetad
を 0
に設定してください:
use_lvmetad = 0
上記の設定を行うと起動の initrd ステージでエラーが発生します。GRUB の生成を行ってから変更してください。ソフトウェア RAID + LVM の場合、以下の手順で設定します:
- システムを全てインストールした後、initramfs (mkinitcpio) や ブートローダーの設定をよく確認してください。
/etc/mdadm.conf
を RAID の構成にあわせて変更してください。- LVM と RAID の要件を満たすように HOOKS と MODULES を変更してください:
MODULES="dm_mod" HOOKS="base udev mdadm_udev ... block lvm2 filesystems ..."
。 - mkinitcpio で initrd イメージを生成してください。mkinitcpio#イメージ作成とアクティベーション を参照。
/etc/lvm/lvm.conf
を編集してuse_lvmetad=0
と記述します。- ブートローダーの設定を更新します。
/etc/lvm/lvm.conf
を編集してuse_lvmetad=1
と記述します。
Fedora ベースのホスト
Fedora ベースのホストやライブ USB では genfstab
を使って fstab を生成しようとしたときに問題が発生することがあります。重複するエントリを削除して "seclabel" オプションを削除してください。後者は Fedora だけで使われるオプションで、システムが起動できなくなります。
再起動する前に確認すること
再起動する前に、新しくインストールした環境に chroot してください。
SSH を使いログインできるように、ユーザーとパスワードを作成してください。root でのログインは OpenSSH-7.1p2 からデフォルトで無効です。
再起動後 su を使えるように root パスワードを設定:
# passwd
SSH をインストールして起動時に自動的に実行されるように有効化してください。
起動時に自動的に接続されるようにネットワークを設定してください。
ブートローダーをセットアップしてルートパーティションと同じように適切なスワップパーティションを使用するように設定します。古い環境を起動できるようにブートローダーを設定することもできます。その場合、サーバーの既存の /boot
パーティションを再利用するのも有用です。
LiveCD を使わずに既存の環境を置き換える
ディスク上に 700MB 程度の空き容量を見繕ってください。スワップパーティションを無効化してシステムをセットアップします。
昔のスワップパーティションを新しいルートパーティションに設定
cfdisk
, /proc/swaps
, /etc/fstab
をチェックしてスワップパーティションを確認してください。ハードドライブが sdaX
として、以下を実行:
スワップ領域を無効化:
# swapoff /dev/sdaX
ファイルシステムを作成 (/dev/sdaX
の ID フィールドは "Linux" (83) に設定):
# fdisk /dev/sda # mke2fs -j /dev/sdaX
マウントするためにディレクトリを作成:
# mkdir /mnt/newsys
一時的に新しいディレクトリをマウント:
# mount -t ext4 /dev/sdaX /mnt/newsys
インストール
空き容量が 700MB 以下の場合、base グループのパッケージを確認して、インターネット接続を立ち上げて一時的なパーティションで実行するのに必要なパッケージだけを選択してください。個別のパッケージを pacstrap に指定して、-c オプションを使います。
新しい Arch Linux システムをインストールして、新しく作成したシステムで再起動し、プライマリパーティションにシステム全体を rsync してください。再起動する前にブートローダーの設定を修正してください。