Colorado State University
Computer Science Department
Original slides from Dr. James Walden at Northern Kentucky University.
Direct Boot
Chainloading
My /etc/default/grub
:
GRUB_DEFAULT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=4 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX=""
Edit, then update-grub
.
How can GRUB_DISTRUBTOR possibly do shell stuff at boot-time?!
(hd0,0)
First partition of first hard disk
(hd1,2)
Third partition of second hard disk.
/boot/vmlinuz-VERSION
/boot/initrd.img-VERSION
to memory.
initrd
and mounts as /sysroot
.
/sysroot
.
systemd
, init
, upstart
, or whatever’s in fashion.
Numeric arguments
single
also specifies single user mode
Root device options
root=
specifies which root device to use
ro
, rw
specify access type
Console options
console=ttyS1,9600
will use serial console
Hardware options
See bootparam for many more.
There has to be an initial process that gets things going. It must:
Historically, Linux systems have used the System V init
to accomplish this.
init
does NOT monitor or restart services after boot.
If a service dies, it dies. So sad!
init
has several competitors, including:
initng
runit
upstart
systemd
systemd
is quite popular. It is now the default startup mechanism
for Debian, Fedora, Red Hat, SUSE, and Ubuntu. We will discuss only systemd
.
Command | Purpose |
---|---|
systemctl start name | Start a service right now. |
systemctl stop name | Stop a service right now. |
systemctl restart name | Restart a service (stop+start). |
systemctl reload name | Reload configuration (config file changed). |
systemctl status name | How’s it going? |
systemctl enable name | Start this service at each boot. |
systemctl disable name | Do not start service at each boot. |
systemctl is-active name | What services are active? |
systemctl list-units --type service --all | What services exist? |
Old init Runlevel | Systemd Target | Description |
---|---|---|
0 | poweroff.target | Halt the system. |
1, s, single | rescue.target | Single user mode |
3 | multi-user.target | Multi-user, non-graphical login via console or the network |
5 | graphical.target | Same as previous plus graphical login |
6 | reboot.target | Reboot |
emergency.target | Emergency shell |
Switch to a different target: systemctl isolate
name
systemd
by booting into shell
init=/bin/bash
argument to kernel.
rw
option as well.
% wherep shutdown halt poweroff reboot lrwxrwxrwx 1 root root 16 Jun 9 07:40 /sbin/shutdown -> ../bin/systemctl lrwxrwxrwx 1 root root 16 Jun 9 07:40 /usr/sbin/shutdown -> ../bin/systemctl lrwxrwxrwx 1 root root 16 Jun 9 07:40 /sbin/halt -> ../bin/systemctl lrwxrwxrwx 1 root root 16 Jun 9 07:40 /usr/sbin/halt -> ../bin/systemctl lrwxrwxrwx 1 root root 16 Jun 9 07:40 /sbin/poweroff -> ../bin/systemctl lrwxrwxrwx 1 root root 16 Jun 9 07:40 /usr/sbin/poweroff -> ../bin/systemctl lrwxrwxrwx 1 root root 16 Jun 9 07:40 /sbin/reboot -> ../bin/systemctl lrwxrwxrwx 1 root root 16 Jun 9 07:40 /usr/sbin/reboot -> ../bin/systemctl
/usr/lib/systemd/system/crond.service:
[Unit] Description=Command Scheduler After=auditd.service nss-user-lookup.target systemd-user-sessions.service time-s ync.target ypbind.service [Service] EnvironmentFile=/etc/sysconfig/crond ExecStart=/usr/sbin/crond -n $CRONDARGS ExecReload=/bin/kill -HUP $MAINPID KillMode=process [Install] WantedBy=multi-user.target
Modified: 2015-08-30T15:27 User: Guest Check: HTML CSSEdit History Source |
Apply to CSU |
Contact CSU |
Disclaimer |
Equal Opportunity Colorado State University, Fort Collins, CO 80523 USA © 2015 Colorado State University |