summaryrefslogtreecommitdiffstats
path: root/docs/howtos/grub_boot_installer.html
blob: 9cd05accb7e2d63c83a59a828e309e6417e3f6e0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">

	<style type="text/css">
		body {
			background:#fff;
			color:#000;
			font-family:sans-serif;
			font-size:1em;
		}
	</style>

	<title>Libreboot documentation: installing GNU/Linux</title>
</head>

<body>
	<header>
		<h1>Boot a GNU/Linux installer on USB</h1>
		<aside>Or <a href="../index.html">back to main index</a></aside>
	</header>
	<h2>How to boot from USB</h2>
	<p>
		Connect the USB drive. Check dmesg:<br/>
		<b>$ dmesg</b>
		</p>
		<p>
		Check that it wasn't automatically mounted. If it was, unmount it. For example:<br/>
		<b>$ sudo umount /dev/sdb1</b><br/>
		<b># umount /dev/sdb1</b>
		</p>
		<p>
		dmesg told you what device it is. Overwrite the drive, writing your distro ISO to it with dd. For example:<br/>
		<b>$ sudo dd if=gnulinux.iso of=/dev/sdb bs=8M; sync</b><br/>
		<b># dd if=gnulinux.iso of=/dev/sdb bs=8M; sync</b>
		</p>
		<p>
		Boot it in GRUB using the "Parse ISOLINUX config (USB)" option (it's in default libreboot grub.cfg, at least).
		</p>
		<p>
		If the ISOLINUX parser won't work, then press C to get to GRUB command line.<br/>
		<b>ls</b><br/>
		Get the device from above output, eg (usb0). Example:<br/>
		<b>cat (usb0)/isolinux/isolinux.cfg</b><br/>
		Either this will show the ISOLINUX menuentries for that ISO, or link to other .cfg files, for example /isolinux/foo.cfg.<br/>
		If it did that, then you do:<br/>
		<b>cat (usb0)/isolinux/foo.cfg</b><br/>
		And so on, until you find the correct menuentries for ISOLINUX.
		</p>
		<p>
		Now look at the ISOLINUX menuentry. It'll look like:<br/>
		<pre>
	  kernel /path/to/kernel
	  append PARAMETERS initrd=/path/to/initrd MAYBE_MORE_PARAMETERS
		</pre>
		GRUB works the same way, but in it's own way. Example GRUB commands:<br/>
		<b>linux (usb0)/path/to/kernel PARAMETERS MAYBE_MORE_PARAMETERS</b><br/>
		<b>initrd (usb0)/path/to/initrd</b><br/>
		<b>boot</b><br/>
		Of course this will vary from distro to distro. If you did all that correctly, it should now be booting the ISO
		the way you specified.
	</p>

	<h1>Troubleshooting</h1>

	<p>
		Most of these issues occur when using libreboot with coreboot's 'text mode' instead of the coreboot framebuffer.
		This mode is useful for booting payloads like memtest86+ which expect text-mode, but for GNU/Linux distributions
		it can be problematic when they are trying to switch to a framebuffer because it doesn't exist.
	</p>

	<p>
		In most cases, you should use the vesafb ROM's. Example filename: libreboot_ukdvorak_vesafb.rom.
	</p>

	<h2>parabola won't boot in text-mode</h2>

	<p>
		Use one of the ROM images with vesafb in the filename (uses coreboot framebuffer instead of text-mode).
	</p>

	<h2>debian-installer (trisquel net install) graphical corruption in text-mode</h2>
	<p>
		When using the ROM images that use coreboot's &quot;text mode&quot; instead of the coreboot framebuffer,
		booting the Trisquel net installer results in graphical corruption because it is trying to switch to a framebuffer which doesn't
		exist. Use that kernel parameter on the 'linux' line when booting it:<br/>
		<b>vga=normal fb=false</b>
	</p>

	<p>
		Tested in Trisquel 6 (and 7). This forces debian-installer to start in text-mode, instead of trying to switch to a framebuffer.
	</p>

	<p>
		If selecting text-mode from a GRUB menu created using the ISOLINUX parser, you can press E on the menu entry to add this.
		Or, if you are booting manually (from GRUB terminal) then just add the parameters.
	</p>

	<p>
		This workaround was found on the page: <a href="https://www.debian.org/releases/stable/i386/ch05s04.html">https://www.debian.org/releases/stable/i386/ch05s04.html</a>.
		It should also work for gNewSense, Debian and any other apt-get distro that provides debian-installer (text mode) net install method.
	</p>

<hr/>

	<p>
		Copyright &copy; 2014 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
		This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
		A copy of the license can be found at <a href="../license.txt">../license.txt</a>.
	</p>

	<p>
		This document is distributed in the hope that it will be useful,
		but WITHOUT ANY WARRANTY; without even the implied warranty of
		MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../license.txt">../license.txt</a> for more information.
	</p>

</body>
</html>