Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Kexecのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Kexec
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:ブートプロセス]] [[Category:カーネル]] [[en:Kexec]] {{Related articles start}} {{Related|Systemd}} {{Related articles end}} '''Kexec''' は動作中のカーネルから他のカーネルをロード・起動するためのシステムコールです。カーネル開発者など、BIOS のブートプロセスが終わるまで待たないで素早く再起動する必要がある場合に有用です。デバイスが完全に再初期化されず、kexec が上手く動作しないこともありますが、それはとてもレアなケースです。 == インストール == kexec をインストールするには、[[公式リポジトリ]]の {{pkg|kexec-tools}} パッケージをインストールしてください。 == kexec で再起動 == === Systemd === ユニットファイル {{ic|kexec-load@.service}} を作成して、kexec するカーネルをロードさせる必要があります: {{hc|/etc/systemd/system/kexec-load@.service|2= [Unit] Description=load %i kernel into the current kernel Documentation=man:kexec(8) DefaultDependencies=no Before=shutdown.target umount.target final.target [Service] Type=oneshot ExecStart=/usr/bin/kexec -l /boot/vmlinuz-%i --initrd=/boot/initramfs-%i.img --reuse-cmdline [Install] WantedBy=kexec.target}} ロードしたいカーネルを指定してサービスファイルを有効化してください、例えばデフォルトカーネル {{ic|linux}} を使用する場合: {{hc|# systemctl enable kexec-load@linux| ln -s '/etc/systemd/system/kexec-load@.service' '/etc/systemd/system/kexec.target.wants/kexec-load@linux.service'}} {{ic|/etc/mkinitcpio.conf}} の {{ic|HOOKS}} 行から shutdown フックを削除して initramfs イメージにフックを含めないようにしてください。削除したら {{ic|mkinitcpio -p linux}} で initrd イメージを再生成します。 その後 kexec を実行します: # systemctl kexec 別のカーネルをロードしたいときは (例: {{ic|linux-lts}})、現在のカーネルのサービスを無効化してから新しいカーネルのサービスを有効化してください: # systemctl disable kexec-load@linux # systemctl enable kexec-load@linux-lts ==== /boot パーティションの分割 ==== {{ic|/boot}} が root ファイルシステム上にない場合、上記の systemd ユニットファイルは動作しません。{{ic|kexec-load}} ユニットファイルを実行する前に {{ic|/boot}} が systemd によってアンマウントされてしまうからです。その場合、起動時には何もせず終了時に kexec を呼び出す "hook" ユニットファイルをロードします。このユニットファイルを {{ic|kexec.target}} と衝突させるようにすることで、新しいカーネルを {{ic|systemctl kexec}} コマンドの直後に確実にロードさせることができます。上記の規定どおりに作成した {{ic|/etc/systemd/system/kexec-load@.service}} ファイルは以下のようになります: {{bc|1= [Unit] Description=hook to load vmlinuz-%i kernel upon kexec Documentation=man:kexec(8) DefaultDependencies=no RequiresMountsFor=/boot/vmlinuz-%i Conflicts=kexec.target [Service] Type=oneshot ExecStart=-/usr/bin/true RemainAfterExit=yes ExecStop=/usr/bin/kexec -l /boot/vmlinuz-%i --initrd=/boot/initramfs-%i.img --reuse-cmdline [Install] WantedBy=basic.target }} 残念ながら、上記のファイルは問題なく動作することもありますが、マシンによっては ExecStop コマンドが動作しないことがあります。従って、今のところ、全てのマシンで {{ic|systemctl kexec}} を確実に動作させることができる方法はありません。 sysinit による順番を使用する方法 (アンマウントが行われる前にサービスが確実にシャットダウンされます): {{bc|1= [Unit] Description=hook to load vmlinuz-%i kernel upon kexec Documentation=man:kexec(8) DefaultDependencies=no Requires=sysinit.target After=sysinit.target [Service] Type=oneshot ExecStart=-/usr/bin/true RemainAfterExit=yes ExecStop=/usr/bin/kexec -l /boot/vmlinuz-%i --initrd=/boot/initramfs-%i.img --reuse-cmdline [Install] WantedBy=basic.target }} {{ic|1=Conflicts=shutdown.target}} は省略してもかまいません。{{ic|systinit.target}} を指定するだけで暗示的に {{ic|1=Conflicts=}} が {{ic|shutdown.target}} に設定されるためです。 === 手動 === kexec を手動で実行することもできます: # kexec -l /boot/vmlinuz-linux --initrd=/boot/initramfs-linux.img --reuse-cmdline # kexec -e {{Warning|{{ic|kexec -e}} を直接実行するとアクティブなファイルシステムがアンマウントされません。また、実行中のサービスが安全に終了されません。}} 手動でカーネルをロードしてから systemd でサービスのシャットダウンや kexec を処理させることも可能です: # kexec -l /boot/vmlinuz-linux --initrd=/boot/initramfs-linux.img --reuse-cmdline # systemctl kexec == 参照 == * [http://lists.freedesktop.org/archives/systemd-devel/2012-March/004760.html <nowiki>[systemd-devel]</nowiki> Right way to do kexec] * [http://lse.sourceforge.net/kdump/ kdump: a kexec based crash dumping mechansim for Linux] * [https://web.archive.org/web/20090505132901/http://www.ibm.com/developerworks/linux/library/l-kexec.html Reboot Linux faster using kexec]
このページで使用されているテンプレート:
テンプレート:Bc
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:META Related articles start
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
テンプレート:Related
(
ソースを閲覧
)
テンプレート:Related articles end
(
ソースを閲覧
)
テンプレート:Related articles start
(
ソースを閲覧
)
テンプレート:TranslationStatus
(
ソースを閲覧
)
テンプレート:Warning
(
ソースを閲覧
)
Kexec
に戻る。
検索
検索
Kexecのソースを表示
話題を追加