Next revision | Previous revision |
howtos:slackware_admin:booting_install_from_hdd [2012/10/24 12:47 (UTC)] – created bormant | howtos:slackware_admin:booting_install_from_hdd [2013/05/23 12:33 (UTC)] (current) – [GRUB-legacy] whiz |
---|
This article shows how to boot the Slackware installation environment from a hard drive instead of the usual installation media. | This article shows how to boot the Slackware installation environment from a hard drive instead of the usual installation media. |
| |
The Slackware installation environment is a small live Linux system with busybox, partitioning and another useful utilities, and the ''setup'' program. It starts automatically when you boot your system from Slackware install media: CD, DVD, USB stick or PXE. | The Slackware installation environment is a small live Linux system with busybox, partitioning and some other useful utilities, and the ''setup'' program. It starts automatically when you boot your system from Slackware install media: CD, DVD, USB stick or PXE. |
| |
In order to boot the Slackware installation environment without creating install media you need an image of this boot environment, a suitable Linux kernel, and a boot loader. | In order to boot the Slackware installation environment without creating install media you need an image of this boot environment, a suitable Linux kernel, and a boot loader. |
| |
| With grub2 you can also boot from the iso file by adding it to the grub menu. |
===== Image of the Environment ===== | ===== Image of the Environment ===== |
All software you can use after booting Slackware installation media resides in an [[wp>initrd|initial ramdisk image]]. You can find it as ''/isolinux/initrd.img'' on any installation media or at the same location on any of the Slackware mirrors. | All software that you can use after booting the Slackware installation media resides in an [[wp>initrd|initial ramdisk image]]. You can find it as ''/isolinux/initrd.img'' on any installation media or at the same location on any of the Slackware mirrors. |
| |
===== Linux Kernel ===== | ===== Linux Kernel ===== |
| |
===== Boot Loader ===== | ===== Boot Loader ===== |
There are many boot loaders around. Slackware uses SYSLINUX to boot from the install media, installs LILO to boot the installed system, and provides a GRUB-legacy package in ''/extra'' (32 bit only). Many distributions use GRUB (renamed from GRUB2) as their main boot loader. If you use a Linux system you probably already have a suitable one. You need to put the ''bzImage'' and ''initrd.img'' files in a suitable place and instruct the boot loader to boot them. \\ Note that some parameters are passed to the kernel in ''/isolinux/isolinux.cfg'', you need them to properly configure your boot loader. | There are many boot loaders around. Slackware uses SYSLINUX to boot from the install media, installs LILO to boot the installed system, and provides a GRUB-legacy package in ''/extra'' (32 bit only). Many distributions use GRUB (renamed from GRUB2) as their main boot loader. If you use a Linux system you probably already have a suitable one. You need to put the ''bzImage'' and ''initrd.img'' files in a suitable place and instruct the boot loader to boot them. \\ Note that some parameters are passed to the kernel in ''/isolinux/isolinux.cfg''; you need them to configure your boot loader properly. |
==== LILO ==== | ==== LILO ==== |
Add to ''/etc/lilo.conf'' something like: <file> | Add to ''/etc/lilo.conf'' something like: <file> |
initrd /boot/swsetup/initrd.img | initrd /boot/swsetup/initrd.img |
</file> | </file> |
<note>(hd0,1) means the //second partition// (this is not a typo, first partition has number 0 here) on the //first drive// (i.e. ''/dev/sda2''). You can find the right value in the "''root''" command in the section used to boot your system; or else consult with [[http://www.gnu.org/software/grub/manual/legacy/grub.html|GRUB-legacy manual]]. </note> | <note>(hd0,1) means the //second partition// (this is not a typo, GRUB-legacy numbers partitions from 0) on the //first drive// (i.e. ''/dev/sda2''). You can find the right value in the "''root''" command in the section used to boot your system; or else consult with [[http://www.gnu.org/software/grub/manual/legacy/grub.html|GRUB-legacy manual]]. </note> |
<note>If you use a separate partition for ''/boot'', then you must remove "/boot" from any pathnames.</note> | <note>If you use a separate partition for ''/boot'', then you must remove "/boot" from any pathnames.</note> |
| |
| |
| ==== Boot ISO with GRUB2 ==== |
| Add to ''/etc/grub.d/40_custom'': <file> |
| menuentry "Slackware 14 install (DVD)" { |
| insmod loopback |
| insmod iso9660 |
| set isofile="/slackware64-14.0-install-dvd.iso" |
| loopback loop (hd0,2)$isofile |
| linux (loop)/kernels/huge.s/bzImage load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 SLACK_KERNEL=huge.s |
| initrd (loop)/isolinux/initrd.img |
| } |
| </file> |
| <note>(hd0,2) means "//the second partition on the first drive//" (i.e. ''/dev/sda2''). You can find the right value in the "''set root''" command of the menu entry used to boot your system, or else consult with [[http://www.gnu.org/software/grub/manual/grub.html|GRUB manual]]. </note> |
| Then update grub with: <file> |
| grub-mkconfig -o /boot/grub/grub.cfg |
| </file> |
| <note>On Slackware before running grub-mkconfig you have to run ln -s /dev/sda2 /dev/root |
| where for sda2 you have to enter your root device. |
| </note> |
===== Test It ===== | ===== Test It ===== |
Reboot your system and select SwSetup at boot prompt. | Reboot your system and select SwSetup at boot prompt. |
Then continue as usual. | Then continue as usual. |
| |
Slackware setup automatically finds an ISO image if it is named as ''slackwar*-install-dvd.iso''. \\ | Slackware setup (starting with version 13.0) automatically finds an ISO image if it is named as ''slackwar*-install-dvd.iso''. |
| |
You can also mount your image manually. | You can also mount your image manually. |
* Before starting ''setup'' or later from another console (use <key>Alt</key>+<key>F#</key> to switch to a different console number "#"), execute <code> | * Before starting ''setup'' or later from another console (use <key>Alt</key>+<key>F#</key> to switch to a different console number "#"), execute <code> |