Linuxコマンド - dracut

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動

概要

dracutコマンドは、Linuxシステムで初期RAMファイルシステム (initramfs) を生成するために必要なブロックデバイスモジュールである。

initramfsは、システムブート時に使用される一時的なルートファイルシステムにおいて、
実際のルートファイルシステムをマウントする前に必要なドライバやツール (IDE、SCSI、RAID等) をプリロードする。

dracutコマンドの特徴および用途を以下に示す。

  • カスタマイズ可能
    必要なモジュールやドライバのみを含むinitramfsを作成することができる。
  • 柔軟性
    多くのLinuxディストリビューションで使用可能である。
  • 高速
    効率的なinitramfs生成プロセスを提供する。
  • 障害復旧
    レスキューモードのinitramfsを作成することにより、システム復旧に役立つ。
  • ホストOSに依存しない
    クロスプラットフォームでの使用が可能である。


dracutコマンドは、主にシステム管理者やディストリビューション開発者によって使用されており、カスタムLinuxシステムの構築やトラブルシューティングに役立つ。


使用方法

dracut <オプション> <initramfsの出力ディレクトリ> <カーネルバージョン>


  • 現在実行中のカーネル向けのinitramfsを作成する場合
sudo dracut -f


  • 出力するディレクトリを変更する場合
    以下の例では、/boot/initrdディレクトリに現在実行中のカーネル向けのinitramfsを作成している。
sudo dracut -f /boot/initrd $(uname -r)



依存関係のライブラリ

依存関係のライブラリのインストール

dracutコマンドを実行するために必要な依存関係のライブラリをインストールする。

# SLE 15 SP5, SP4 / openSUSE Leap 15.5, 15.4
sudo zypper install biosdevname systemd-coredump rng-tools dbus-broker systemd-network systemd-experimental \
                    ibmswtpm2 tpm2-tss-engine squashfs nvme-cli libnvme1 open-iscsi tpm2-0-tss tpm2.0-tools

# SLE 15 SP3
sudo zypper intall biosdevname libnvme1 open-iscsi lvm2


次に、MemstrackのGithubにアクセスして、Memstrackのインストーラをダウンロードする。
ダウンロードしたファイルを実行して、Memstrackをインストールする。

sudo ./memstrack-linux-amd64


または、git cloneコマンドを実行して、ソースコードをダウンロードする。

git clone https://github.com/ryncsn/memstrack.git
cd memstrack


Memstrackをビルドおよびインストールする。
Memstrackは、/binディレクトリにインストールする必要がある。

make -j $(nproc)
sudo make DESTDIR=/ install

# /binディレクトリにもコピーする
sudo cp /usr/bin/memstrack /bin


Memstrackとは

実行時メモリ割り当てトレーサは、メモリ割り当てのホットスポットアナライザのようなものであり、
全体的なメモリ使用量、ピーク時のメモリ使用量、カーネルモジュールのメモリ使用量を、スタックトレースと組み合わせて分析するのに役立つ。
ユーザ空間のメモリトレースは、まだ実装されていない。

Memstrackは、カーネルの全てのページレベルのメモリ割り当てイベントをトレースして (現在、perfまたはftraceをサポートしている) 、
イベントをスタックトレースツリーに積極的に統合することで動作する。

また、カーネルのページオーナーログファイルと連携し、メモリ使用量ビューアとして使用することもできる。


dracutのインストール

パッケージ管理システムからインストール

# RHEL
sudo dnf install dracut

# SUSE
sudo zypper install dracut dracut-mkinitrd-deprecated plymouth-dracut


ソースコードからインストール

まず、Linuxカーネルの公式Webサイト、または、dracutのGithubにアクセスする。
dracutのソースコードをダウンロードして解凍する。

tar xf dracut-<バージョン>.tar.xz
cd dracut-<バージョン>


dracutのビルドに必要なライブラリをインストールする。

# SUSE
sudo zypper install gcc make cargo libkmod-devel asciidoc


dracutをビルドおよびインストールする。

mkdir build && cd build

../configure --prefix=<dracutのインストールディレクトリ> --enable-dracut-cpio
make -j $(nproc)
make install