Abstract: From CentOS 7.5, DVD image for altarch i686 version isn't provided; only NetInstall, Minimal and Everything. This page attempts to recreate an ISO image which fits on DVD from published CentOS-7-i386-Everything-yymm.iso . (2018.05)
Keywords: CentOS-7-i386-DVD-1908.iso, CentOS 7.7 i686 DVD image
$Id: dvd.html,v 1.1 2019/01/01 09:46:41 kabe Exp kabe $
Download CentOS-7-i386-Everything-yymm.iso from a Altarch i386 mirror site. It will be about 7.8GB, which won't fit on a single-layer DVD.
Mount the Everything.iso onto /media/cdrom
, then
copy over everything, except Packages/
, to work directory,
./DVD1
.
$ sudo mount -o ro,loop CentOS-7-i386-Everything-1908.iso /media/cdrom $ mkdir ./DVD1 $ tar -C /media/cdrom --exclude Packages -cf - . | tar -C ./DVD1 -xvpf - $ rm -f `find ./DVD1 -name TRANS.TBL`
Extract all packages installable from anaconda installer menu using
getpackages
script.
This script isn't fast; it takes about 50 minutes on 3GHz i686 machine.
$ yum --disablerepo=\* --enablerepo=c7-media clean all $ sh getpackages > get.out
The getpackages
scripts will
emit cp -p
commands for the needed packages.
Use it to copy over packages from
/media/cdrom/Packages
to ./DVD1/Packages/
.
$ mkdir ./DVD1/Packages $ cat get.out | (export DESTDIR=`pwd`/DVD1/Packages/; cd /media/cdrom/Packages/; sh -x)
(optional) If you are going to run lorax
against the newly created ./DVD1
,
you will want anaconda installer related packages too.
Use getpackages-anaconda
script
to extract cp -p
commands, and copy over packages
to ./DVD1/Packages
.
$ sh getpackages-anaconda > get-anaconda.out $ cat get-anaconda.out | (export DESTDIR=`pwd`/DVD1/Packages/; cd /media/cdrom/Packages/; sh -x)
From CentOS 7.6 onward, steps above will create 4.8GB ./DVD1/
,
which doesn't fit on single-layer DVD.
You have to selectively erase some packages.
Candidates for erasure:
rm `ls DVD1/Packages/gimp-help-??-2* | grep -v -- -ja-`
createrepo
Use createrepo
to rebuild the ./DVD1/repodata/
.
You must rename repodata/sha256sum-c7-x86_64-comps.xml
to
SHA256-less name before running createrepo
.
$ mv ./DVD1/repodata/521f322f05f9802f2438d8bb7d97558c64ff3ff74c03322d77787ade9152d8bb-c7-x86_64-comps.xml ./DVD1/repodata/comps.xml $ rm ./DVD1/repodata/*.bz2 ./DVD1/repodata/*.gz $ createrepo -v -g repodata/comps.xml ./DVD1
DVD1.iso
imageCheck that
The resulting ./DVD1
doesn't exceed 4.7GB DVD limit.
Then, run mkisofs
against ./DVD1
to
generate ./DVD1.iso
.
The Volume Label (inst.stage2=hd:LABEL=CentOS\x207\x20i386
string in
isolinux/isolinux.cfg
.
$ du -ks ./DVD1
$ mkisofs -o ./DVD1.iso \
-b isolinux/isolinux.bin -c isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table \
-R -v -T \
-J -joliet-long \
-f \
-V "CentOS 7 i386" \
./DVD1
$ implantisomd5 ./DVD1.iso
DVD1.iso
will be the generated version of
CentOS-7-i386-DVD-yymm.iso.
Note: Pass
rd.live.check
option to the
kernel command line to checksum the media during installation,
which isn't clearly documented in dracut.cmdline(7).
Using linux mediacheck
boot commandline doesn't work
in RHEL 7 and derivatives.
kabe.sra-tohoku.co.jp