CD-ROMだけで動作するオリジナルLinuxを作ろう

 
  YAMAMORI Takenori ●yamamori

■コラム■ pivot_rootとは

Linuxのkernel 2.4系にはpivot_rootという仕組みがあり, これによってrootファイルシステムそのものを取り替えてしまうことができます. これは,rootディレクトリを変更するという点ではchrootにも似ていますが, chrootとは違って一部のプロセスだけでなく,OS全体のrootファイルシステムが 根本的に変更されます.

pivot_rootを実行すると,以前のrootファイルシステムはpivot_rootコマンドの 第2引数で指定したディレクトリにマウントされた状態になります.これは, 本文の実行例では,旧rootであるCD-ROMが/mnt/tmpにマウントされた状態になります. この旧rootをumountするのには少しコツがいり,新rootにカレントディレクトリを 移動した状態で

exec /bin/sh < /dev/console > /dev/console 2>&1

のように実行し,旧root上にあった/dev/consoleを捨てて,新root上の/dev/consoleを 開きなおす必要があります.

なお,本システムでは,initrdのlinuxrcの中と,そのあと/pre-initスクリプトの 中の,計2回pivot_rootを行なっています.ちなみに1回目のlinuxrcの中の pivot_rootは,nashの組み込みコマンドとして実行されています.


To『CD-ROMだけで動作するオリジナルLinuxを作ろう』[index]


このページは、技術評論社 Software Design 2002年12月号、『CD-ROMだけで動作するオリジナルLinuxを作ろう』の原稿を元に、Web 用に再構成したものです。
To 謎の処理系 SunOS 4.1.4 [Home]
yamamori