blob: c63f9bc1b3ac9ce7c44553040314a8baec10c01f (
plain) (
tree)
|
|
<!DOCTYPE html>
<html dir="ltr" lang="en">
<head>
<meta charset='utf-8'>
<title>1.4. Prepare Reboot</title>
</head>
<body>
<a href="index.html">Core OS Index</a>
<h1>1.4. Prepare for Reboot</h1>
<p>Follow this instructions with active chroot,
first <a href="configure.html#chroot">mount partitions</a>
and before chroot mount follow file systems;</p>
<pre>
$ sudo mount --bind /dev $CHROOT/dev
$ sudo mount -vt devpts devpts $CHROOT/dev/pts
$ sudo mount -vt tmpfs shm $CHROOT/dev/shm
$ sudo mount -vt proc proc $CHROOT/proc
$ sudo mount -vt sysfs sysfs $CHROOT/sys
</pre>
<p>Now you can chroot;</p>
<pre>
$ sudo chroot $CHROOT /usr/bin/env -i \
HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin \
/bin/bash --login
</pre>
<h2 id="linux">1.4.1. Linux Kernel</h2>
<p>c9-ports have two kernels, linux libre and linux blob.
Port linux-libre kernel is a true source based kernel that
respects your freedoms, is x86_64 but not generic configured,
with all drivers as modules or correct graphic driver.
Port linux-blob contain blobs and loads firmware.</p>
<pre>
# cd /usr/ports/c9-ports/linux-libre
# pkgmk -d
# pkgadd /usr/ports/packages/linux-libre#4.9.9-3.pkg.tar.gz
</pre>
<h2 id="dracut">1.4.2. Dracut - Initramfs</h2>
<p>Install dracut;</p>
<pre>
# cd /usr/ports/c9-ports/dracut
# pkgmk -d
# pkgadd /usr/ports/packages/dracut#044-2.pkg.tar.gz
</pre>
<p>Review configuration file;</p>
<pre>
# PUT YOUR CONFIG IN separate files
# in /etc/dracut.conf.d named "<name>.conf"
# Equivalent to -H
hostonly="yes"
# Mount / and /usr read-only by default.
ro_mnt="no"
# Equivalent to -m "module module module"
dracutmodules+="dash kernel-modules rootfs-block udev-rules usrmount base fs-lib shutdown"
# Equivalent to -a "module"
add_dracutmodules+="caps debug"
# Equivalent to -o "module"
#omit_dracutmodules+="systemd systemd-bootchart systemd-networkd systemd-initrd"
# SEE man dracut.conf(5) for options
</pre>
<p>Run dracut to create init ram filesystem for
port linux-blob kernel;</p>
<pre>
# dracut -v /boot/initramfs-4.9.9-blob.img 4.9.9-blob
</pre>
<h2 id="grub">1.4.3. Configuring Grub2</h2>
<p>Create grub file in /etc/default/grub with values;</p>
<pre>
GRUB_DISABLE_LINUX_UUID=false
GRUB_ENABLE_LINUX_LABEL=false
</pre>
<p><a href="http://www.gnu.org/software/grub/manual/grub.html">Grub Manual</a>,
install grub on MBR of disk sdb;</p>
<pre>
# grub-install /dev/sdb
Installation finished. No error reported.
</pre>
<p>If you are installing on removable media;</p>
<pre>
# grub-install --removable /dev/sdb
Installation finished. No error reported.
</pre>
<p>grub-mkconfig generates grub.cfg, it will try to discover
available kernels and attempt to generate menu entries for
them;</p>
<pre>
# grub-mkconfig -o /boot/grub/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-4.9.9-grsec
done
#
</pre>
<p>Check /boot/grub/grub.cfg, if is wrong add menu to
/etc/grub.d/40_custom, replace correct msdos partition
from grub-prob output and correct UUID from fstab or blkid</p>
<pre>
# grub-probe --target=hints_string /
</pre>
<p>To add rw as default edit /etc/grub.d/10_linux file, current
version change line 138 to;</p>
<pre>
echo '$message'
linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} rw ${args}
</pre>
<h2 id="checkup">1.4.4. Checkup</h2>
<p>If you have qemu installed you can see if it boots, in this
example sdb is usb external drive;</p>
<pre>
# qemu-system-x86_64 -kernel /boot/vmlinuz-linux -initrd /boot/initramfs-linux.img -append root=/dev/sdb /dev/sdb2
</pre>
<h3>Debug Grub</h3>
<h3>Debug initram</h3>
<pre>
/usr/lib/dracut/skipcpio /boot/initramfs-4.9.9-blob.img | gunzip -c | cpio -i -d
36875 blocks
</pre>
<a href="index.html">Core OS Index</a>
<p>This is part of the c9-doc Manual.
Copyright (C) 2016
c9 team.
See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
for copying conditions.</p>
</body>
</html>
|