Linux配布のブートストラップ


このガイドを通してLinux OSツリーとイメージを使用します.
まず、標準の配布インストーラを使ってLinuxをインストールする必要がないことを理解することが重要です.
通常、Linuxディストリビューションインストーラを使用しているときは、パーティションを設定すると、インストーラがパーティションをマウントし、OSのツリーをブートしてルートをパーティションをマウントしたディレクトリに起動します.
これがどのように機能しているかを理解したら、インストールプロセスを自由に制御できます.GentooやArchのようなディストリビューションをインストールしようとしたなら、これはおなじみです.
それで、基本的な考えはあなたのファイルシステム上のいくつかのディレクトリにあなたのディストリビューションのベースOSツリーを作成することです.そして、そのディレクトリ内のコマンドを実行することができます.その木はしばしば「chroot tree」と呼ばれています(そして、それらと一緒に働くための基本的なコマンドは呼ばれます)chroot ).
完全な配布設備を行うことに加えて、これらのchroot木もより軽量な使用、すなわち様々なタイプのコンテナに役立ちます.
さまざまなLinuxディストリビューションをブートストラップする簡単な例を以下に示します:

ジェンツー


このブートストラッピングのコンセプトはGentooにとって非常に自然であり、実際には公式のインストール手順です.
stage 3 tarアーカイブをダウンロードするだけです.https://www.gentoo.org/downloads/ ), をアンパックします:
wget https://bouncer.gentoo.org/fetch/root/all/releases/amd64/autobuilds/20220412T191925Z/stage3-amd64-openrc-20220412T191925Z.tar.xz
tar xzvf stage3-amd64-openrc-20220412T191925Z.tar.xz

アーチリナックス


アーチは同様の方法でブートストラップすることができます、あなたはダウンロードして、archlinuxブートストラップtarballを抽出することができますhttps://archlinux.org/download/ ) 公式の鏡から(そしてそこから)
wget https://mirror.fcix.net/archlinux/iso/2022.04.05/archlinux-bootstrap-2022.04.05-x86_64.tar.gz
tar xzvf archlinux-bootstrap-2022.04.05-x86_64.tar.gz
あるいは、インストールスクリプトをインストールすることもできます.
pacstrap -d /target_dir base
または、すでにPacmanを持っている場合
pacman -r /target_dir -Syy

Debianベースの分布


DebianベースのDistrosも呼ばれるツールを介してブートストラップのための素晴らしいサポートを持ってdebootstrap .
すなわち、Debian 11 ( Bullseye )のminbase variantをブートストラップするには、次のようにします.
debootstrap --variant=minbase bullseye /target_dir
debotstrap は一般的な依存関係を持つシェルスクリプトです/bin/sh , wget , ar と基本的なLinux/Unixのツールは、もしあなたのディストリビューションREPOでそれを持っていない場合でも、それは非常に簡単にインストールすることです.

アルパイン


他のディストリビューションからAlpine Linuxをブートするには、静的にコンパイルされたAPKツールを使用できます.http://dl-cdn.alpinelinux.org/alpine/):
wget http://dl-cdn.alpinelinux.org/alpine/v3.15/main/x86_64/apk-tools-static-2.12.7-r3.apk
tar zxf apk-tools-static-*.apk
のように実行します.
./sbin/apk.static --arch $(arch) -X http://dl-cdn.alpinelinux.org/alpine/latest-stable/main/ -U --allow-untrusted --root /target_dir --initdb add alpine-base

RPMベースのdistros


RPMベースのdistrosはブートストラップの最悪の候補ですが、それは可能です.
過去には、RPMベースのディストリビューションに類似したツールがありました.febootstrap , しかし、それは新しいツールに変異したsupermin . これを使用するか、既存のRPMベースのディストリビューションからDNF/Yumを使用します.
dnf --releasever=30 --installroot=/target_dir groupinstall core

次の手順


そのベースツリーを持っていれば、そのディレクトリ( rootとして)にchrootすることができます.
chroot /target_dir
すべてうまくいけば、ターゲットのディストリビューションからルートシェルプロンプトを取得する必要があります.
次のページでは、なぜこれが重要なのか、ここからどこに行けるのかを見ていきます.Debianを例にします.
注:これは理解の簡単なwikiから(WIP)のトピックのスナップショットです.最新の(より整形済みの)バージョンをここで読むことができます.Bootstrapping Linux Distributions
すべての提案(および反応)を歓迎します.