slackware-current/isolinux
Patrick J Volkerding e100944d49 Fri Jul 27 21:01:22 UTC 2018
Hey folks, my first order of business here needs to be a huge thank you to
everyone who has donated at https://paypal.me/volkerdi to help keep this
project going. As most of you are already aware by now, the financal situation
here at Slackware HQ has not been great for many years, including not getting
any pay for the last two years and forcing me (and my family) to live very
frugally while I continued to work on the project hoping I'd figure out a way
to actually monitize it by the time that Slackware 15.0 is ready for release.
I'm not trying to cast any blame regarding the situation. Really, I can only
blame myself for not trying to build my own ship years ago when things began
to not really work out. I'm still looking into sustainable funding options
such as Patreon or Liberapay (or perhaps both), and I'm open to other ideas.
I'm no longer in immediate danger of going broke, and I'm no longer
entertaining the notion of joining my friends at the local potato chip factory
in order to pay my bills. :) My family is grateful and humbled by the support
we've received. Hope we'll be able to keep this project going for a long time.
Also, I realize that the website lacks updates and needs attention and I will
need to find some time to devote to that. I've never been much of a website
designer, and the slackware.com site is basically left over from work done by
former Walnut Creek / BSDi employees. I've never seen able to make much sense
of the SQL backend. The interface to edit and post articles is clunky (and
I'm not sure the PHP for that even works any more). When I've posted articles
in recent years, I've done so by editing the main page already processed from
PHP into HTML, which is pretty darn messy as I'm sure you can imagine. I tend
to prioritize the distribution itself over other demands on my time - that's
clearly a lot to do with how things ended up the way they did.
So, I guess that's the report for now. Lots more work to do and not enough
time to do it in... that part I don't see changing moving forward. :)
Thanks very much again. I'll do my best to keep you all posted.
  - Pat
a/file-5.34-x86_64-1.txz:  Upgraded.
a/kernel-firmware-20180727_b01151b-noarch-1.txz:  Upgraded.
a/kernel-generic-4.14.58-x86_64-1.txz:  Upgraded.
a/kernel-huge-4.14.58-x86_64-1.txz:  Upgraded.
a/kernel-modules-4.14.58-x86_64-1.txz:  Upgraded.
d/gcc-8.2.0-x86_64-1.txz:  Upgraded.
d/gcc-brig-8.2.0-x86_64-1.txz:  Upgraded.
d/gcc-g++-8.2.0-x86_64-1.txz:  Upgraded.
d/gcc-gfortran-8.2.0-x86_64-1.txz:  Upgraded.
d/gcc-gnat-8.2.0-x86_64-1.txz:  Upgraded.
d/gcc-go-8.2.0-x86_64-1.txz:  Upgraded.
d/gcc-objc-8.2.0-x86_64-1.txz:  Upgraded.
d/kernel-headers-4.14.58-x86-1.txz:  Upgraded.
d/libtool-2.4.6-x86_64-9.txz:  Rebuilt.
  Recompiled to update embedded GCC version number.
k/kernel-source-4.14.58-noarch-1.txz:  Upgraded.
   CRASH_DUMP n -> y
   KEXEC n -> y
  +KEXEC_JUMP y
  +PROC_VMCORE y
l/babl-0.1.54-x86_64-1.txz:  Upgraded.
l/gegl-0.4.6-x86_64-1.txz:  Upgraded.
l/libart_lgpl-2.3.21-x86_64-2.txz:  Removed.
  This actually hasn't been needed by any Slackware package since koffice in
  KDE3, and this particular version won't work with the Trinity Desktop
  Environment, which is essentially a fork of KDE 3.5 updated to compile and
  run with modern libraries and development tools. I can't see much point in
  keeping it around. Thanks to _gin.
n/NetworkManager-1.12.2-x86_64-1.txz:  Upgraded.
n/dhcpcd-7.0.7-x86_64-1.txz:  Upgraded.
x/libinput-1.11.3-x86_64-1.txz:  Upgraded.
extra/tigervnc/tigervnc-1.9.0-x86_64-1.txz:  Upgraded.
isolinux/initrd.img:  Rebuilt.
kernels/*:  Upgraded.
usb-and-pxe-installers/usbboot.img:  Rebuilt.
2018-07-28 09:00:34 +02:00
..
sbootmgr Slackware 13.0 2018-05-31 22:41:17 +02:00
f2.txt Slackware 14.1 2018-05-31 22:57:36 +02:00
iso.sort Slackware 13.0 2018-05-31 22:41:17 +02:00
isolinux.cfg Slackware 14.1 2018-05-31 22:57:36 +02:00
message.txt Fri Jul 27 21:01:22 UTC 2018 2018-07-28 09:00:34 +02:00
README.TXT Mon May 28 19:12:29 UTC 2018 2018-05-31 23:39:35 +02:00
README_SPLIT.TXT Slackware 13.0 2018-05-31 22:41:17 +02:00
setpkg Mon May 28 19:12:29 UTC 2018 2018-05-31 23:39:35 +02:00

HOW TO MAKE A BOOTABLE SLACKWARE DVD ISO IMAGE

To make a bootable Slackware install DVD, get into the top level Slackware
directory (The one with ChangeLog.txt in it) and issue a command like this
to build the ISO image in /tmp:

xorriso -as mkisofs \
  -iso-level 3 \
  -full-iso9660-filenames \
  -R -J -A "Slackware Install" \
  -hide-rr-moved \
  -v -d -N \
  -eltorito-boot isolinux/isolinux.bin \
  -eltorito-catalog isolinux/boot.cat \
  -no-emul-boot -boot-load-size 4 -boot-info-table \
  -isohybrid-mbr /usr/share/syslinux/isohdpfx.bin \
  -eltorito-alt-boot \
  -e isolinux/efiboot.img \
  -no-emul-boot -isohybrid-gpt-basdat \
  -m 'source' \
  -volid "SlackDVD" \
  -output /tmp/slackware-dvd.iso \
  .

On my system, here's the command I'd use to burn the resulting DVD ISO:

growisofs -speed=2 -dvd-compat -Z /dev/sr0=slackware-dvd.iso

If your burner is not /dev/sr0, replace the device with the one your
system uses.

I find discs burned at 2x are more reliable than ones burned at higher
speeds, but you may see completely different results depending on media
and burner type.  The -dvd-compat option is also used so that a complete
lead-out is written to the media for maximum compatibility.

To write the ISO image to a USB stick use a command such as this (replace
/dev/sdX with the device name for your USB stick):

dd if=/tmp/slackware-dvd.iso of=/dev/sdX bs=1M

Or, you can burn directly from the Slackware tree to a DVD(-/+)R(W):

xorriso -as mkisofs \
  -iso-level 3 \
  -full-iso9660-filenames \
  -R -J -A "Slackware Install" \
  -hide-rr-moved \
  -v -d -N \
  -eltorito-boot isolinux/isolinux.bin \
  -eltorito-catalog isolinux/boot.cat \
  -no-emul-boot -boot-load-size 4 -boot-info-table \
  -isohybrid-mbr /usr/share/syslinux/isohdpfx.bin \
  -eltorito-alt-boot \
  -e isolinux/efiboot.img \
  -no-emul-boot -isohybrid-gpt-basdat \
  -m 'source' \
  -volid "SlackDVD" \
  -output - \
  . \
  | xorrecord -v dev=/dev/sr0 speed=2 fs=8m blank=as_needed -

Note that the source code directory will not be included on these DVD
images in order to keep them under the limit for a single-layer disc.
If you are using double layer DVD media and want to burn the complete
tree to your disc, remove the -m option line from the command.


HOW TO MAKE A SET OF BOOTABLE / INSTALLABLE CDROMS

This is a little bit more tricky.  Step one will be to split the tree into
portions that will fit on the media that you plan to burn to.  The first
disc must contain these directories:

/isolinux/
/kernels/
/slackware/

You'll need to make other /slackware/ directories on discs 2, 3, and maybe
more, moving some of the disc series from disc 1 to other discs to make
things fit.  It is also possible to split a series to make more efficient
use of the CD media.  See the README_SPLIT.TXT example and instructional
file in this directory for details about how to set that up.

The rest of the splitting up of discs is left as an exercise for the reader.

To make the first (bootable) ISO, a command like this is used within the
directory where the disc tree is.  Let's say the directory is 'd1' and you
wish to output the ISO image in /tmp:

cd d1
xorriso -as mkisofs \
  -iso-level 3 \
  -full-iso9660-filenames \
  -R -J -A "Slackware Install 1" \
  -hide-rr-moved \
  -v -d -N \
  -eltorito-boot isolinux/isolinux.bin \
  -eltorito-catalog isolinux/boot.cat \
  -no-emul-boot -boot-load-size 4 -boot-info-table \
  -isohybrid-mbr /usr/share/syslinux/isohdpfx.bin \
  -eltorito-alt-boot \
  -e isolinux/efiboot.img \
  -no-emul-boot -isohybrid-gpt-basdat \
  -volid "SlackCD1" \
  -output /tmp/slackware-install-1.iso \
  .

Making a non-bootable disc is similar.  Just omit a few options:

cd d2
xorriso -as mkisofs \
  -iso-level 3 \
  -full-iso9660-filenames \
  -R -J -A "Slackware Install 2" \
  -hide-rr-moved \
  -v -d -N \
  -volid "SlackCD2" \
  -output /tmp/slackware-install-2.iso \
  .

To burn an ISO image to CD-R(W), the cdrecord command is used.  For complete
instructions, see the man page ('man cdrecord').  On my own machine where
the burner is /dev/cdrw, disc one would be burned with the following command:

cat /tmp/slackware-install-1.iso | cdrecord -v dev=/dev/cdrw speed=10 fs=8m -tao -eject -data -

As before, it's possible to burn from the disc trees without the intermediate
step of creating iso images by piping the output directly to cdrecord:

cd d1
xorriso -as mkisofs \
  -iso-level 3 \
  -full-iso9660-filenames \
  -R -J -A "Slackware Install 1" \
  -hide-rr-moved \
  -v -d -N \
  -eltorito-boot isolinux/isolinux.bin \
  -eltorito-catalog isolinux/boot.cat \
  -no-emul-boot -boot-load-size 4 -boot-info-table \
  -isohybrid-mbr /usr/share/syslinux/isohdpfx.bin \
  -eltorito-alt-boot \
  -e isolinux/efiboot.img \
  -no-emul-boot -isohybrid-gpt-basdat \
  -volid "SlackCD1" \
  -output - \
  . | cdrecord -v dev=/dev/cdrw speed=10 fs=8m -tao -eject -data -


-----

NOTES:
  The isolinux/isolinux.boot file will be created on the disc;  it's not
  supposed to be in the source tree.  I mention this only because so many
  people report the "missing" isolinux/isolinux.boot file as a bug.

  The "-boot-load-size 4" is actually not large enough to hold the isolinux
  boot loader, but many BIOS implementations are broken and will *only*
  accept "4".  Evidently many newer, more correct BIOS implementations
  expect this and will continue to load the boot loader file until the
  EOF is reached.  Anyway, previous uses of larger values were correct, but
  led to the Slackware ISO not booting on some machines which contained
  broken BIOS implementations.  It is my hope that by using the incorrect
  value of 4 sectors that the ISO will boot on most (if not all) machines
  that are supposed to be able to boot from an ISO image.

  I don't know how to create a bootable Slackware ISO on operating systems
  other than Linux, but it should be easy to burn the Linux-created ISO with
  most CD burning software on any operating system.

Enjoy!

 -P.