編集者注:Red Hat Enterprise Linuxインストールメディアの変更はサポートされているプロセスではありませんが、この便利な回避策が役立つ場合があります。ご使用の環境で検討する可能性のある詳細およびその他のオプションについては、RedHatカスタマーポータルでこのソリューションを参照してください。
誰もがRedHatEnterprise Linux(RHEL)をインストールする必要がある場所への高速ネットワーク接続を持っているわけではありません。顧客は、インストールメディアを減らして、低速のネットワークでの配信を高速化する方法をよく尋ねます。カスタムの小さなRHELインストールISOを構築する手順を説明します。デフォルトのRHEL7.8ISOのサイズは4GBを超えています。これらの手順は、サイズが1GBで小規模なRHELインストールをサポートするRHEL7.8ISOを作成する方法を示しています。
ステップ1:目的のパッケージセットを使用してRHEL7.8システムを構築する
任意のインストール方法を使用して、RHEL7.8を目的の状態にインストール/構成します。グラフィカルインストーラーを使用して、「最小」パッケージオプションでビルドしました。再起動後、インストールされているすべてのRPMパッケージのリストを作成して、そのリストをソースとして使用して、カスタマイズされた小さなISOを構築できるようにします。このRPMのソースリストにより、新しい小さなISOには、インストールに必要なパッケージのみが含まれるため、インストールに必要なISOの全体的なサイズが削減されます。
ステップ2では、ビルドRPMリストがパッケージリストのソースとして使用されます。
# rpm -qa > rpmlist.txt
rpmlist.txt
をコピーします 手順2でISOビルドシステムディレクトリに移動します。
ステップ2:小さなISOを作成する
次の手順では、小さなISOディレクトリ構造を構築し、手順1で提供されたRPMリストからコンテンツをコピーしてから、インストールに使用する小さなISOファイルを生成します。
1. RHEL7.8バイナリISOをダウンロードします:
https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.8/x86_64/product-software
2.ループマウントして、その内容を操作する場所にコピーできるようにします。
# mkdir /mnt/rhel7.8-master
# mount -o loop rhel-server-7.8-x86_64-dvd.iso /mnt/rhel7.8-master
3.作業ディレクトリ構造を作成し、マスターISOコンテンツをコピーします。
# mkdir /mnt/rhel7.8-small
# cp -aR /mnt/rhel7.8-master/* /mnt/rhel7.8-small/
4.既存のパッケージをすべて削除します:
# chmod u+w /mnt/rhel7.8-small/Packages
# rm -rf /mnt/rhel7.8-small/Packages/*
5.すべてのアドオンを削除します(オプション):
# chmod -R u+w /mnt/rhel7.8-small/addons
# rm -rf /mnt/rhel7.8-small/addons/*
6.手順1で生成したRPMリストテキストファイルからRPMリストを/mnt/rhel7.8-small/Packages/
にコピーします。 :
# for i in `cat rpmlist.txt`; do cp /mnt/rhel7.8-master/Packages/$i* /mnt/rhel7.8-small/Packages/; done
7. ISOを作成します:
次のISOツールをインストールします:
# yum install genisoimage isomd5sum syslinux
# chmod -R u+w /mnt/rhel7.8-small/isolinux
# cd /mnt/rhel7.8-small
# mkisofs -o ../rhel7small.iso -b isolinux/isolinux.bin -J -R -l -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e images/efiboot.img -no-emul-boot -graft-points -V "RHEL-7.8 Server.x86_64" -jcharset utf-8 .
8. MD5の合計をISOに埋め込みます:
# implantisomd5 rhel7small.iso
9. ISOイメージをUSBブートイメージと互換性があるように変換します:
# isohybrid -uefi rhel7small.iso
ステップ3:Satellite6コンテンツビューから最新のRPMでISOを更新する
Satellite 6をお持ちの場合は、yumdownloader
を使用できます サテライトコンテンツビューから更新されたコンテンツをダウンロードするユーティリティ。これにより、最新のコンテンツで更新された小さなISOが生成され、導入後すぐにシステムにパッチを適用する必要がなくなります。
yumdownloader
をインストールします 、更新されたコンテンツをダウンロードし、新しい更新された小さなISOを作成します。
1. yum-utils
をインストールします プラグイン:
# yum install yum-utils
2.Satellite6コンテンツビューから最新のRPMをダウンロードします。これは、システムが現在登録されており、Satellite6の更新されたコンテンツビューにサブスクライブされていることを前提としています。
# mkdir /mnt/downloads
# cd /mnt/downloads
手順1で作成したRPMリストをforループのソースとして使用して、x86_64アーキテクチャパッケージのみをダウンロードし、i686パッケージをすべて除外するようにします。
# for i in `cat rpmlist.txt | sed -e 's/\([^.]*\).*/\1/' -e 's/\(.*\)-.*/\1/'`;do yumdownloader -x *i686 --archlist=x86_64 $i; done
3.更新されたRPMをPackagesディレクトリ構造にコピーしてから、RPMメタデータを再作成します。
# chmod -R u+w /mnt/rhel7.8-small/Packages
# rm -rf /mnt/rhel7.8-small/Packages
# cp /mnt/downloads/* /mnt/rhel7.8-small/Packages
# cd /mnt/rhel7.8-small
# chmod -R u+w /mnt/rhel7.8-small/repodata
# createrepo -g repodata/*comps*.xml . --update
4.更新されたISOを作成します:
# cd /mnt/rhel7.8-small
# mkisofs -o ../rhel7small-updated.iso -b isolinux/isolinux.bin -J -R -l -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e images/efiboot.img -no-emul-boot -graft-points -V "RHEL-7.8 Server.x86_64" -jcharset utf-8 .
5. MD5の合計をISOに埋め込みます:
# implantisomd5 rhel7small.iso
6. ISOイメージをUSBブートイメージとして互換性があるように変換します:
# isohybrid -uefi rhel7small-updated.iso
まとめ
要約すると、パッケージの数を目的のインストールに必要な数だけに減らすことで、インストールメディアのISOファイルのサイズを大幅に縮小できます。このサイズの縮小により、遅いネットワーク接続速度を処理する場合に、より迅速な展開またはステージング時間を実現できます。
[無料のオンラインコース:Red HatEnterpriseLinuxの技術概要。 ]