友人の皆さん、ご挨拶!
今日、私がArch Linuxを愛する理由を説明しません。あなたはすべてを自分で見るでしょう。
挑戦する
-ルートパーティションがSambaサーバーからネットワーク経由でマウントされるようにArch Linuxをインストールする
解決策
この問題を解決するには、次のものが必要です。
-Arch Linux(またはLiveCD)がインストールされている
-AURのmkinitcpio-mount-hook(http://aur.archlinux.org/packages.php?ID=40372)
-さらに2つの小さなフック:mount.cifsおよびmount.loop
-extra / devtools(mkarchrootを含む)
-core / mkinitcpio-nfs-utils(このパッケージには、IPアドレスを取得するためのユーティリティとスクリプトが含まれています)
-収集スクリプト
1.そして、後者から始めます。
build.sh
最初のコマンドで、chroot環境を作成し、ベースグループmkinitcpio-nfs-utilsからパッケージをインストールします。ここで、必要に応じて他のパッケージを追加できます。 2番目のコマンドは、initrcpioのcifsおよびループデバイスのサポートを追加します。 3番目のコマンドは、ルートパーティションをマウントする機能を拡張します。 4番目は、initcpioからの物理ハードドライブサポートを無効にし、cifs、ループ、および拡張マウント用のフックを接続します。 5番目のコマンドは、フォールバックのinitcpioイメージを無効にします。これは必要ありません。 アセンブリ中に自動検出を使用しません。 6番目のコマンドは、ネットワークが作業の完了時に事前に切断されないように、新しいシステムを構成します。 そして最後のチームは、すでにネットワークサポート、cifs、ループ、高度なマウントを備え、ローカルハードドライブをサポートしていないinitcpioを再構築します。
2.次の2つのファイルには、cifs(samba)とループ(ディスクイメージのマウント)の操作に必要なinitcpioモジュールが含まれています。
mount.cifs
マウントループ
これはすでにchrootとinitcpioをアセンブルするには十分ですが、ディスクイメージにchrootを配置する必要があります。 これは、Sambaサーバーでのacl、symlinks、およびhardlinksのサポートについて困惑しないようにするために必要です。 ディスクイメージの利点は、LinuxだけでなくWindowsもサーバーとして使用できることです。
3. 1Gbファイルを作成し、たとえばext4の下でフォーマットして、/ tmp / chrootにマウントします。
4.これで、すでにbuild.shを実行できます。 スクリプトの実行後、/ tmp / chroot / boot / vmlinuz26および/tmp/chroot/boot/kernel26.imgファイルをコピーして(これらはまだ便利です)、イメージをアンマウントする必要があります。
5.それだけですか? はい、それだけです。 まあ、ほとんどすべて。 これをすべてロードする方法を見つけることは今なお残っています。 これを行うには、次のものが必要です。
1)/tmp/arch.imgを取得して、Sambaサーバーに配置します。
2)ブート方法(CD-ROM、PXE、Grub、または想像できるその他の方法)を決定します。
3)/ tmp / chroot / boot / vmlinuz26および/tmp/chroot/boot/kernel26.imgをロード先にコピーします。
ダウンロードオプション :
# grub
kernel /boot/vmlinuz26 ip=::::::dhcp mounts=cifs,root cifs_dev=//SERVER_IP/share cifs_target=/cifs cifs_type=cifs cifs_opts=username=guest root_dev=/cifs/arch.img root_type=ext4
initrd /boot/kernel26.img
# isolinux/pxelinux
kernel vmlinuz26
append initrd=kernel26.img ip=::::::dhcp mounts=cifs,root cifs_dev=//SERVER_IP/share cifs_target=/cifs cifs_type=cifs cifs_opts=username=guest root_dev=/cifs/arch.img root_type=ext4
注 :ユーザー名= guestのパラメーターに注意してください。 誰もがディレクトリにアクセスできるようにしたくない場合は、username = guestの代わりに特定のアカウントとパスワードを指定できます。
結果
次のように起動するシステムを取得しました。
1)vmlinuz26はkernel26.imgでローカルに起動されます(これらのファイルはハードディスク、CD、tftpサーバーにあります)。
2)ネットワークディレクトリ// SERVER_IP / shareを/ cifsディレクトリにマウントします。
3)/cifs/arch.imgをルートパーティションとしてマウントすると、システムは起動し続けます。
ほぼ同じ方法で、nfsにイメージを配置できます。 この実験は、イメージファイルが読み取り専用でマウントされ、変更がtmpfsに書き込まれるときにaufsでも実行されましたが、残念ながら、現在のカーネルではaufsサポートが除外されています。