{"id":232,"date":"2020-08-18T19:23:47","date_gmt":"2020-08-18T20:23:47","guid":{"rendered":"http:\/\/www.linux-tutorial.info\/?page_id=77"},"modified":"2020-08-22T19:26:02","modified_gmt":"2020-08-22T20:26:02","slug":"this-is-the-page-title-toplevel-67","status":"publish","type":"page","link":"http:\/\/www.linux-tutorial.info\/?page_id=232","title":{"rendered":"LILO-The Linux Loader"},"content":{"rendered":"\n<title>LILO -The Linux Loader<\/title>\n<question id=\"\" type=\"mc\" text=\"What is 'LILO'?\" \/>\n<question id=\"\" type=\"tf\" text=\"A limitation of LILO is that it can only boot Linux.\" \/>\n<concept id=\"\" description=\"LILO was the first wide-spread Linux boot loader.\" \/>\n<p>\nIn the <site id=64>section on the boot process<\/site>, we briefly discussed the\nLinux <glossary>boot<\/glossary> loader LILO. (Short for <i>LI<\/i>nux <i>LO<\/i>ader). This is basically a set\nof instructions to tell the operating system how to boot. These instructions include\nwhat operating system to boot and from what partition, as well as a number of different\noptions. If LILO is installed in your <glossary>master boot record<\/glossary>, it can be used to boot basically any <glossary>operating system<\/glossary> that you can install on that hardware. For example,\non my machine, I have had LILO boot various Windows versions, SCO Unix, Sun Solaris, and, of course,\nLinux. Actually, most of the work was done by the boot loader of the respective operating system,\nbut LILO was used to load start the boot process.\n<\/p>\n<p>\nIn this section we are going to talk about some of the basics of LILO from a user&#8217;s\nperspective. In the section on <site id=92>Installing your Linux kernel<\/site>, we&#8217;ll go into\nmore details of configuring and installing LILO.\n<\/p>\n<p>\nWhen your system reaches the point where LILO is executed, you are usually given the prompt:\n<p>\n<screenoutput>\nLILO:\n<\/screenoutput>\n<p>\nBy simply pressing the enter key, LILO will execute it&#8217;s default instructions, which\nusually means loading and executing a Linux <glossary>kernel<\/glossary>. However, starting Linux is not a\nrequirement. In the before time, (loooong ago) when I typically worked on Windows, rather than Linux, I\nhad LILO as my boot loader, but it booted Windows 95 by default. Either I pressed the\nenter key at the LILO prompt or simply waited until LILO had reached the configured\ntimeout (which I configured to be 10 seconds).\n<\/p>\n<question id=\"\" type=\"mc\" text=\"What key do your press at the LILO to see all of the available options?\" \/>\n<p>\nIn order to boot different operating systems, you need to be able to tell LILO what to\nboot. This is done by simply inputting the appropriate text at the LILO prompt. This text\nis configured in the LILO configuration file (<file type=\"\">\/etc\/lilo.conf<\/file>).\nA problem often arises three months later\nwhen you have forgotten what text you used. Fortunately, to get a list of available options,\nall you need to do is press the TAB key, which will display the different texts. For example,\nI had three, which were labeled &#8220;win95&#8221;, &#8220;linux&#8221; and &#8220;linuxgood&#8221;. The win95 was the default\n(before I knew better), linux started my current <glossary>kernel<\/glossary> and linuxgood was a kernel that I\nhad compiled with just the basic options that I knew worked and I used it as a failsafe\nshould something go wrong when\ninstalling a new <glossary>kernel<\/glossary>. Interestingly enough, SuSE added their own\nLILO entry\nin the meantime, which they simply called &#8220;failsafe&#8221; with the same purpose as my entry.\n<\/p>\n<p>\nIn addition to accepting the tag, or label, for a specific entry, you can pass\nconfiguration options to LILO\ndirectly at the prompt. One thing I commonly pass is the location of the root filesystem.\nI used to have a couple of different Linux distributions on my system, particularly when a new\nversion came out.I would install the new version on a different partition to make sure things\nworked correctly. I could then\nboot from either the new or old kernel and select which root filesystem I wanted. This\nmight be done like this:\n<\/p>\n<p>\n<commandexample>linux root=\/dev\/hda6<\/commandexample>\n<p>\nHere <device>\/dev\/hda6<\/device> is the partition where my root filesystem is.\nNote that LILO does not do anything with these options, instead they are passed to the\n<glossary>kernel<\/glossary>. LILO is not\nvery smart, but knows enough to pass anything given it at the LILO prompt to the kernel.\nYou can also\npass options to tell the kernel that the root filesystem is read-only\n(<filecontents type=\"\">root=\/dev\/hda6,ro<\/filecontents>)\nor read-write (<filecontents type=\"\">root=\/dev\/hda6,rw<\/filecontents>).\n<\/p>\n<p>\nAnother useful option is the keyword &#8220;single&#8221;. This tells the <glossary>kernel<\/glossary> to boot into\n&#8220;single-user mode&#8221;, which\nis also referred to as &#8220;maintenance mode&#8221;. As the names imply, only a single user can log\ninto the system\nand it is used to perform system maintenance.\n<\/p>\n<p>\nIf it runs into problems while booting, LILO will provide you information about what went\nwrong (albeit not as obviously as you might hope). When loading, the letters of &#8220;LILO&#8221; are\nnot printed all at\nonce, but rather as each phase of the boot process is reached. Therefore, you can figure\nout where the boot process\nstopped by how much of the word LILO is displayed.  The following table shows you the\nvarious stages and what possible problems could be.\n<\/p>\n<table>\n  <tr>\n    <td class=\"standard\"><b>Characters<\/b><\/td>\n    <td class=\"standard\"><b>Description<\/b><\/td>\n  <\/tr>\n  <tr>\n    <td class=\"standard\">none<\/td>\n    <td class=\"standard\">LILO has not yet started. Either it was not installed or the partition is not\nactive<\/td>\n  <\/tr>\n  <tr>\n    <td class=\"standard\">L <i>errorcode<\/i><\/td>\n    <td class=\"standard\">The first stage boot loader has been loaded and started. However, the\n    second stage boot\n    loader cannot be loaded. The <i>errorcode<\/i> typically indicates a media problem, such as a\n    hard disk error or incorrect hard disk geometry.<\/td>\n  <\/tr>\n  <tr>\n    <td class=\"standard\">LI<\/td>\n    <td class=\"standard\">The second stage boot loader was loaded, but could not be executed. Either a\ngeometry mismatch has occurred or boot\/boot.b was moved without running the map installer.\n    <\/td>\n  <\/tr>\n  <tr>\n    <td class=\"standard\">LIL<\/td>\n    <td class=\"standard\">Second stage boot loader starts, but cannot load the descriptor table from the\nmap file. Typcially a media failure or by a geometry mismatch.<\/td>\n  <\/tr>\n  <tr>\n    <td class=\"standard\">LIL?  <\/td>\n    <td class=\"standard\">Second stage boot loader loaded at an incorrect address. Typically caused by\n    a geometry mismatch or by moving \/boot\/boot.b without running the map installer.<\/td>\n  <\/tr>\n  <tr>\n    <td class=\"standard\">LIL- <\/td>\n    <td class=\"standard\">Descriptor table is corrupt. Typically caused by either a geometry\n    mismatch or by moving \/boot\/boot.b without running the map installer.<\/td>\n  <\/tr>\n    <tr>\n    <td class=\"standard\">LILO<\/td>\n    <td class=\"standard\">Everything successfully loaded and executed. <\/td>\n  <\/tr>\n<\/table>\n<b>Table &#8211; LILO boot stages and possible problems.<\/b>\n","protected":false},"excerpt":{"rendered":"<p>LILO -The Linux Loader In the section on the boot process, we briefly discussed the Linux boot loader LILO. (Short for LInux LOader). This is basically a set of instructions to tell the operating system how to boot. These instructions &hellip; <a href=\"http:\/\/www.linux-tutorial.info\/?page_id=232\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-232","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"http:\/\/www.linux-tutorial.info\/index.php?rest_route=\/wp\/v2\/pages\/232","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.linux-tutorial.info\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/www.linux-tutorial.info\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/www.linux-tutorial.info\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.linux-tutorial.info\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=232"}],"version-history":[{"count":1,"href":"http:\/\/www.linux-tutorial.info\/index.php?rest_route=\/wp\/v2\/pages\/232\/revisions"}],"predecessor-version":[{"id":599,"href":"http:\/\/www.linux-tutorial.info\/index.php?rest_route=\/wp\/v2\/pages\/232\/revisions\/599"}],"wp:attachment":[{"href":"http:\/\/www.linux-tutorial.info\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=232"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}