新しいOpenBSDカーネルを構築した後、install
カーネルのターゲットはMakefile
次のことを行います。
rm -f /obsd
ln /bsd /obsd
cp bsd /nbsd
mv /nbsd /bsd
最初の2行は、古いバックアップカーネルを削除/obsd
し、/obsd
現在実行中のカーネルへのハードリンクを作成することを知っています/bsd
。特に実行中のカーネルはまったく移動されません。これは私にとって意味があります。
./bsd
/nbsd
しかし、新しく構築されたカーネルを最初にに移動してから名前をに変更する目的は何ですか/bsd
?なぜ3行目と4行目をより単純な行に置き換えないのですかcp bsd /bsd
?
これが重要な場合:OpenBSDのデフォルトのパーティション化スキームは、カーネルビルドツリーをルートファイルシステムとは異なるファイルシステム(ディスクラベル)に配置します。
答え1
makefileレシピのコマンドが失敗状態を返すと(コマンドの前に1が来ない限り-
)、レシピの実行は停止します。引用したレシピは、/bsd
コマンドが成功した場合にのみ置き換えられることを保証しますcp bsd /nbsd
。パーティションがいっぱいになっているか、inodeが十分でないと、cpが失敗する可能性があります。