COMP 3000 Lab 4 2010
All of the following should be done with an Ubuntu 10.04 distribution or equivalent. We recommend experimenting in a virtual environment because some of the exercises could make your system unbootable. (In fact, take a snapshot of your working system before starting these exercises so you can easily revert.)
Questions
- Change the grub command line at boot to limit the total available RAM to 256M. You'll need to get to select an entry and edit it from within grub.
- Add a new grub menu item which limits the standard kernel to 256M.
- Add a second virtual disk and make it bootable: put the kernel and initial ram disk on it and then install grub. Can you boot off of this disk? What does it do?
- Examine the standard kernel's initial ram disk (initrd). What program is first run in this environment? What does it do?
- Modify the standard initial RAM disk so it pauses for 10 seconds and prints a message to the console on boot.
- What programs does upstart start on boot?
Hints
Please add your hints below to help your fellow students!
Pro-tip
sudo update-grub (important!!! guess what it does!!!
Kernel command line options
GRUB configuration
- On Ubuntu the user configuration is stored in /etc/default/grub, while system grub configuration is in /etc/grub.d. The main grub files are stored in /boot/grub. You can update grub's config with the update-grub command.
- to limit RAM, go to /etc/default/grub, and change default boot options so that mem=256M is included.
How GRUB works
Making a disk bootable
Examining RAM disks
- Ubuntu (Debian) store initial RAM disks in the cpio format. 'zcat <file> | cpio -i' will extract its contents.
Upstart/init
Upstart "jobs" are config (.conf) files in /etc/init that require one of two options an "exec" line or a "script"
The exec line allows the upstart to just simply execute a script elsewhere, while script allows you to shell script in the upstart job.
A special upstart job is rc.conf which maintains the original runlevel init.d scripts. You will see that rc.conf simply executes all the /etc/init.d scripts.
See more on upstart jobs at http://upstart.ubuntu.com/getting-started.html
For those using the newer versions of Ubuntu and thus using Grub2 https://help.ubuntu.com/community/Grub2