Booting SystemRescueCd


Boot from a removable device

To boot from a CD-ROM or USB device make sure that the computer firmware (BIOS or UEFI settings) is configured to boot the right device and that the priority is correct.

To start SystemRescueCd, insert the CD or USB in the drive, and power on or reset your computer, or press a key to select an alteritive boot device when it starts.

Current boot options

The following boot options are supported in SystemRecueCd-6.x:

Press TAB to add additional options on syslinux and press “e” in grub.

  • setkmap=xx defines the system to configure the keyboard layout where xx corresponds to a keyboard map code. For example setkmap=de will configure the German keyboards layout during the boot process. You can also set the keyboard layout by running a command such as setkmap de from the shell after boot time, and you can run setkmap with no parameter in the terminal on a running SystemRecueCd to get a list of all supported keymaps.
  • copytoram causes SystemRecueCd to be fully loaded into memory. This corresponds to the docache option in previous verisons. A slower start but once complete, the system will be more responsive and also it will not require the original device to run. It means you can actually work on the device where SystemRescueCd is installed. This requires 2GB of memory to cache the system.
  • rootpass=password123: Sets the root password of the system running on the livecd to password123. That way you can connect from the network and ssh on the livecd and authenticate using this password. For security reasons it is recommended to use the alternative rootcryptpass option instead of rootpass so the password is not visible as clear text.
  • rootcryptpass=xxxx: Sets the root password of the system running on the livecd to so can can connect to the system remotely via ssh and use the password to authenticate on the livecd. The password must be encrypted using a command line such as the following one: python3 -c 'import crypt; print(crypt.crypt("password123", crypt.mksalt(crypt.METHOD_SHA256)))' You need to provide the whole encrypted password as printed by the python command including the $5$ or $6$ prefix and the salt. The encrypted password contains dollars so you should check if your boot loader needs espaping characters to preserve these special characters. You should check that /proc/cmdline contains the value that you passed if you have doubts.
  • checksum will trigger a verification of the squashfs cheksum during the boot so you know if the file has been corrupted.
  • archisolabel=xxxx Set the filesystem label where SystemRecueCd files reside. In other words the system will try to find SystemRecueCd files on a filesystem having the label specified so it is important for it to locate on which device SystemRecueCd files are located. This is set to SYSRESCCD-X.Y.Z or SYSRCDXYZ by default where XYZ corresponds to the SystemRecueCd version (eg: the label is SYSRCD601 for version 6.0.1)
  • archisobasedir=xxxx Set the base directory where all SystemRecueCd files reside and it is set to sysresccd by default. In other words the system will try to find SystemRecueCd files in a directory named sysresccd which is located at the root of the filesystem.
  • cow_label=xxxx Set the filesystem label where upperdir/workdir files for overlayfs must be stored. By default this option is not set and changes made on SystemRescueCd files are lost after a reboot. In other words you can use a linux filesystem to persist all modifications made on SystemRescueCd when it runs such as new bookmarks in firefox, application configuration files, etc. You have to provide the label of the filesystem that needs to be used to store these changes. All these changes will be isolated in a directory prefixed by persistent unless you override this using cow_directory
  • cow_directory=xxxx Name of the directory where to store changes made on the system. You must have specified a cow device for this change to take effect.
  • img_label=xxxx Set the filesystem label where SystemRecueCd ISO image is located. This is only used when booting SystemRecueCd using the loopback option from Grub2.
  • img_loop=xxxx Set the path to the SystemRecueCd ISO image within the filesystem so the boot process can mount it and find the squashfs filesystem. This is only used when booting SystemRecueCd using the loopback option from Grub2.

Please read the archiso documentation for more advanced boot options and PXE boot in particular.

Legacy boot options

The following options are supported in SystemRescueCd versions up to 5.x

General legacy boot options

  • docache: causes SystemRecueCd to be fully loaded into memory. This corresponds to the copytoram option in recent verisons. A slower start but once complete, the system will be more responsive and also it wont require the original device to run. It means you can actually work on the device where SystemRescueCd is installed. This requires 2GB of memory to cache the system.
  • root=/dev/xdnp: the root option boots an existing linux system. For example, if you have linux Gentoo installed on /dev/sda6, use rescue32 root=/dev/sda6 to start it. Keep in mind that you must use a 64bit kernel if your system is made of 64bit programs. This option works with LVM volumes. Use rescue32 root=/dev/VolGroup00/LogVol00. Support is also provided for root=auto, which scans all the block devices for a linux system. The first linux system found will be started. So root=auto lets you start the system installed from the CD-ROM in case you have problem with your boot loader or kernel. It’s also possible to specify a partition using its filesystem label or filesystem uuid. If the label of the partition where linux is installed is mylinux, then boot it using rescue32 root=LABEL=mylinux. Similarly root=UUID=b3d3bec5-997a-413e-8449-0d0ec41ccba7. Read root=device option for more details.
  • initscript=service:action: This option allows one to start/stop a service at boot time. For instance if you need the samba service to be started, you can boot with: initscript=samba:start. This does the same thing as /etc/init.d/samba start. Use this option a multiple of times for different services. All the actions that are supported by an initscript can be used.
  • backstore=xxx: SystemRescueCd-5.x comes with support for the backing-stores. A backing-store saves all the changes you can make. so that you keep these changes the next time you boot. By default, sysresccd automatically scan removable devices (eg: USB sticks) at boot time and uses the first backing-store it finds. A backing-store is not mandatory and if the scan fails, it will store the files which have changed in memory. To disable the disks scan at boot time specify backstore=off on the boot command line. If you want to save your backing-store file on a harddisk, boot with backstore=alldev to scan all devices (not just removable devices). The default location for a backing-stores file is any file named sysrcd.bs located at the root of a disk which is often a USB stick. Change the path by using backstore=/sysrcd/mybackstore.bs. See backing-stores.
  • isoloop=xxx: Grub2 provides a feature to boot from an ISO image which is stored on the hard disk. If you put a copy of systemrescuecd-x86-x.y.z.iso on a partition that Grub2 can read then you can boot SystemRescueCd directly from the ISO image stored on your hard drive. This is very convenient if you frequently update SystemRescueCd and you want to boot it directly from Grub2. Grub2 knows what an ISO image is and it will load the kernel image (rescue32/rescue64) and the initramfs (initram.igz) from the ISO into memory. It will then do its normal job and execute the kernel. The SystemRescueCd init script must then be aware that its sysrcd.dat file is in an ISO and not directly on the partition. For that reason, this isoloop=xxx boot option is required so you must use it in your grub.cfg. This option specifies the path of the ISO image in the partition that grub considers as its root partition. It’s important to understand that the path of the ISO image may be different from the path on your linux system. If you have a separate boot partition mounted on /boot and if you copy this ISO image to /boot/sysrcd/systemrescuecd-x86-x.y.z.iso then the option has to be isoloop=/sysrcd/systemrescuecd-x86-x.y.z.iso. This is because the boot partition is what Grub2 will consider as its root partition during the boot process. Please read the section about isoloop for more details.

Hardware, drivers and troubleshooting options

  • dodebug: Enables verbose messages in linuxrc
  • doload=xxx: loads needed kernel modules, multiple comma separated occurrences are permitted (example: doload=3c59x,e1000)
  • noload=xxx: prevents loading kernel modules, multiple comma separated occurrences are permitted (example: noload=3c59x,e1000). Use this option if you have a problem when the system loads a particular module.
  • nonet: this will disable the network auto detection at startup
  • scandelay=x: pauses x seconds during the startup to allow slow devices to initialize. This is required when you boot a USB device. A delay of only few seconds should be enough.
  • doxdetect: The auto-configuration is normally done in X.Org itself and mkxf86config is disabled by default. This option forces the system to run the mkxf86config startup script and to run the hardware auto-detection from this script. Use this option if you have problems with the graphical environment configuration. This option replaces the option noxdetect that was useful in previous versions.
  • nodetect: prevents generic hardware auto-detection. Use this option if you have problems with the hardware auto-detection.
  • nomodeset: Do not load the Kernel-Mode-Setting video driver. You can use that option if you are experiencing problems with your screen during the boot process (just after modules are being loaded).
  • dostartx: load the X.Org graphical environment.
  • forcevesa: Forces X.Org to use the safe VESA driver instead of the best video driver detected for your video card. Use this option if you cannot get the graphical environment working with the default options.
  • forcevesa=xxx: The startx command will load the Xvesa server instead of Xorg, and use the screen resolution given as parameter (eg: 1024x768, 1280x1024x32).
  • all-generic-ide: In case of problems related to your hard disk, try to enable this option (eg rescue32 all-generic-ide)
  • nodmraid: Disable dmraid, for some motherboards with built-in RAID controller.
  • nomdadm: Disable mdadm, for software RAID.
  • acpi-off / noapic / irqpool: use these options if you have problem when the kernel boots: if it hangs on a driver or if it crashes, …
  • lowmem: For systems with smaller memory, some daemons are not started including sshd and nfsd.
  • skipmount=/dev/xxx: The system mounts all the storage devices at boot time to find the sysrcd.dat file. If your hard disk is broken it should not be mounted. Boot with skipmount=/dev/sda1 skipmount=/dev/sda2 to ignore these two partitions.

Network configuration and remote access

  • nonm: to disable the Network-Manager service that conflicts with the standard network command line tools such as ifconfig and ip. You can use this option if you want to configure the network using these commands. This option is not necessary when SystemRescueCd is booting from the network since the service is automatically stopped in that case.
  • dodhcp: to request a DHCP server provide network attributes including an IP address, gateway… If there are multiple interfaces on the computer it will run the dhcp client on all of them by default, when no argument is specified with this option. SystemRescueCd allows you to optionally specify which interfaces should be configured with dhcp. This way you can combine static and dynamic addresses in the automatic Ethernet configuration. For example you can now use options like that: dodhcp=eth0,eth2 eth1=192.168.128.1/24 to use dhcp for eth0 and eth2 and a static address on eth1.
  • nodhcp: never run the dhcp client in the initramfs boot script. May be useful if you use PXE boot on a computer with several ethernet interfaces.
  • ethx=ipaddr/cidr: Sets the static IP address of all the ethernet interfaces on the system. The /cidr extension is mandatory. For instance, if you use option ethx=192.168.0.1/24 on a machine with two ethernet adapters, both eth0 and eth1 will be configured with 192.168.0.1.
  • eth0=ipaddr/cidr: This option is similar to ethx=ipaddr/cidr but it configures only one interface at a time. To configure the network on a server that has two interfaces, use, for example: eth0=192.168.10.1/24 eth1=192.168.20.1/24.
  • dns=ipaddr: Sets the static IP address of the DNS nameserver you want to use to resolve the names. For instance dns=192.168.0.254 means that you want to use 192.168.0.254 as the DNS server.
  • gateway=ipaddr: Sets the static IP address of the default route on your network. For instance gateway=192.168.0.254 means that the computer can connect to a computer outside of the local network via 192.168.0.254.
  • dhcphostname=myhost: Sets the hostname that the DHCP client will send to the DHCP server. This may be required if the default hostname cannot be used with your DHCP configuration.
  • rootpass=123456: Sets the root password of the system running on the livecd to 123456. That way you can connect from the network and ssh on the livecd and give 123456 password as the root password.
  • vncserver=x:123456: The vncserver boot option forces the system to configure the VNC-server and to start it automatically at boot time. You have to replace x with the number of displays you want, and 123456 with your password. The password must be between 6 and 8 characters, else the boot option will be ignored. In other words the vncserver=2:MyPaSsWd option will give you access to two displays (display=1 on tcp/5901 and display=2 on tcp/5902). Display 0 is reserved for X.Org. This option accepts a password longer than 8 chars (between 5 and 12 chars)
  • nameif=xxx: You can specify what interface name to give to a particular interface using the mac address. Here is how you can specify which interface is using which mac address on a machine with two network interfaces: nameif=eth0!00:0C:29:57:D0:6E,eth1!00:0C:29:57:D0:64. Be careful, you have to respect the separator (comma between the interfaces and exclamation marks between the name and the mac address). You can also use the magic keyword BOOTIF when you boot from pxelinux. The pxeboot loader will set BOOTIF to the name of the interface used to boot. You can then use something like nameif=eth0!BOOTIF if you want the boot interface to be called eth0 on a computer with several Ethernet interfaces.

Network boot using PXE

SystemRescueCd provides several options for booting from the network using PXE. These options can be combined with other network boot options such as ethx (cf previous section). Refer to PXE network booting to get a global overview of SystemRescueCd and PXE and Manage remote servers using PXE

The second stage downloads the kernel and the initramfs using DHCP/TFTP.

The third stage of the PXE boot process acquires the root files system.

Several protocols are available.

  • netboot=tftp://ip/path/sysrcd.dat: from a TFTP server. The filesystem is loaded into memory. As a consequence computers with less than 800MB of memory won’t be able to boot this way. The system will continue to work if the network is disconnected after the boot process.
  • netboot=http://ip:port/path/sysrcd.dat: from a Web server. The file system is loaded into memory. Computers with smaller memory won’t be able to boot this way. The the system continues to work if the network is disconnected after the boot process.
  • netboot=nfs://ip:/path: mount an NFSv3 directory. The NFS url must be the path of the directory that contains sysrcd.dat. Only NFSv3 can be used, NFSv4 is not supported. NFS allows computers with smaller memory to boot SystemRescueCd from the network. After the boot process, continued network connection is required or you will loose access to the root file system.
  • netboot=nbd://ip:port: connect to an NBD server configured with sysrcd.dat on ip:port. NBD is easier to configure than NFS (only one TCP port involved) and it allows computers with smaller memory to boot SystemRescueCd from the network. After the boot process, the network connection continues to be required to access the root file system.

For information on activating speakup, see the speakup info page

SystemRescueCd comes with the loadsrm boot option that allows you to control which SRM modules are going to be loaded.

  • loadsrm=off: Do not load any SRM module
  • loadsrm=*.srm: Load all SRM modules (works only for block devices)
  • loadsrm=module1.srm,module2.srm: Load explicit files (required for HTTP/NFS boot)

Options provided for autorun

  • ar_source=xxx: place where the autorun are stored. It may be the root directory of a partition (/dev/sda1), an nfs share (nfs://192.168.1.1:/path/to/scripts), a samba share (smb://192.168.1.1/path/to/scripts), or an http directory (http://192.168.1.1/path/to/scripts).
  • autoruns=[0-9]: comma separated list of the autorun scripts to be run. For example autoruns=0,2,7 the autorun scripts autorun0, autorun2, autorun7 are run. Use autoruns=no to disable all the autorun scripts with a number.
  • ar_ignorefail: continue to execute the scripts chain even if a script failed (returned a non-zero status)
  • ar_nodel: do not delete the temporary copy of the autorun scripts located in /var/autorun/tmp after execution
  • ar_disable: completely disable autorun, the simple autorun script will not be executed
  • ar_nowait: do not wait for a keypress after the autorun script have been executed.

For more details, please read the page about autorun

Booting from the network via PXE

It is also possible to boot SystemRescueCd from the network. Since the installation is not simple, there is a dedicated page to PXE network booting

Booting from the Windows partition

It is possible to install SystemRescueCd on an NTFS / FAT filesystem used by Windows. Hence you do not have to repartition your disk, and you can even boot SystemRescueCd if there is no CDRom drive or USB port on your computer.


Documentation
Manual (EN)
LVM Guide
Disk partitioning
Networking

Project
Git repository
Bug reports