Difference between pages "FLOP:SquashFS sync" and "Install/pt-br/BootLoader"

(Difference between pages)
(describe the procedure & advantages)
 
(Created page with "=== Instalar um Bootloader === These install instructions show you how to use GRUB to boot using BIOS (old-school) or UEFI (new-school). As of boot-update-1.7.2, now in Porta...")
 
Line 1: Line 1:
{{FLOP
+
=== Instalar um Bootloader ===
|Created on=2015/02/27
+
|Summary=An alternate syncing method using SquashFS Images and deltas. Meant for stable systems where frequent updates aren't necessary, offering reduced bandwidth and disk space use, and improved speed.
+
|Author=Mgorny,
+
|Reference Bug=FL-2138
+
}}
+
== Problems with the current syncing method ==
+
Currently the official syncing method for Funtoo systems is git. While it's quite good, it has a few downsides:
+
* it places a lot of small files on the underlying filesystem — usually requiring a dedicated, small file-efficient filesystem,
+
* the git metadata increases disk space use even further, especially after multiple syncs,
+
* rare syncs imply transferring intermediate changes that may no longer be useful to end user.
+
  
While this is acceptable for hackers, it may be undesired for stable systems that are updated rather rarely and should be easy to set up.
+
These install instructions show you how to use GRUB to boot using BIOS (old-school) or UEFI (new-school). As of boot-update-1.7.2, now in Portage, the steps are very similar.
  
== Suggested system ==
+
First, emerge <code>boot-update</code>. This will also cause <code>grub-2</code> and {{c|efibootmgr}} to be merged, since they are dependencies:
=== Procedures ===
+
Funtoo provides daily repository snapshots as SquashFS images. Aside to complete today's snapshot, it provides one or more deltas from ''n'' day-old snapshot to the today's snapshot. All of those files are provided via HTTP(S).
+
  
User fetches the today's snapshot on first sync. Afterwards, if he updates within the supported ''m''-day period, he only fetches a single delta and uses it to update the snapshot.
+
<console>
 +
(chroot) # ##i##emerge boot-update
 +
</console>
  
=== Advantages ===
+
Then, edit <code>/etc/boot.conf</code> using {{c|nano}} and specify "<code>Funtoo Linux genkernel</code>" as the <code>default</code> setting at the top of the file, replacing <code>"Funtoo Linux"</code>.  
The most important advantages of this system are:
+
* SquashFS allows to fit the whole repository in a single file, fitting any filesystem,
+
* SquashFS is both fast and space-efficient,
+
* deltas allow for fast and bandwidth-efficient updates.
+
  
=== Mirror impact ===
+
<code>/etc/boot.conf</code> should now look like this:
A single complete SquashFS image is around ~100 MiB large. A single day delta is around 10 MiB, and raises to ~30 MiB for 3-week period and 50 MiB for >3 months.
+
  
{{FLOPFooter}}
+
<pre>
 +
boot {
 +
generate grub
 +
default "Funtoo Linux genkernel"
 +
timeout 3
 +
}
 +
 
 +
"Funtoo Linux" {
 +
kernel bzImage[-v]
 +
}
 +
 
 +
"Funtoo Linux genkernel" {
 +
kernel kernel[-v]
 +
initrd initramfs[-v]
 +
params += real_root=auto
 +
}
 +
 
 +
"Funtoo Linux better-initramfs" {
 +
kernel vmlinuz[-v]
 +
initrd /initramfs.cpio.gz
 +
}
 +
</pre>
 +
 
 +
If you are booting a custom or non-default kernel, please read <code>man boot.conf</code> for information on the various options available to you.
 +
 
 +
==== Old School (BIOS) MBR ====
 +
 
 +
When using "old school" BIOS booting, run the following command to install GRUB to your MBR, and generate the {{c|/boot/grub/grub.cfg}} configuration file that GRUB will use for booting:
 +
 
 +
<console>
 +
(chroot) # ##i##grub-install --target=i386-pc --no-floppy /dev/sda
 +
(chroot) # ##i##boot-update
 +
</console>
 +
 
 +
==== New School (UEFI) Boot Entry ====
 +
 
 +
If you're using "new school" UEFI booting, one run of the following sets of commands, depending on whether you are installing a 64-bit or 32-bit system. This will add GRUB as a UEFI boot entry.
 +
 
 +
For x86-64bit systems:
 +
 
 +
<console>
 +
(chroot) # ##i##grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id="Funtoo Linux [GRUB]" --recheck /dev/sda
 +
(chroot) # ##i##boot-update
 +
</console>
 +
 
 +
For x86-32bit systems:
 +
 
 +
<console>
 +
(chroot) # ##i##grub-install --target=i386-efi --efi-directory=/boot --bootloader-id="Funtoo Linux [GRUB]" --recheck /dev/sda
 +
(chroot) # ##i##boot-update
 +
</console>
 +
 
 +
==== First Boot, and in the future... ====
 +
 
 +
OK -- you are ready to boot!
 +
 
 +
You only need to run <code>grub-install</code> when you first install Funtoo Linux, but you need to re-run <code>boot-update</code> every time you modify your <code>/etc/boot.conf</code> file or add new kernels to your system. This will regenerate {{c|/boot/grub/grub.cfg}} so that you will have new kernels available in your GRUB boot menu, the next time you reboot.

Revision as of 17:47, February 27, 2015

Instalar um Bootloader

These install instructions show you how to use GRUB to boot using BIOS (old-school) or UEFI (new-school). As of boot-update-1.7.2, now in Portage, the steps are very similar.

First, emerge boot-update. This will also cause grub-2 and efibootmgr to be merged, since they are dependencies:

(chroot) # emerge boot-update

Then, edit /etc/boot.conf using nano and specify "Funtoo Linux genkernel" as the default setting at the top of the file, replacing "Funtoo Linux".

/etc/boot.conf should now look like this:

boot {
	generate grub
	default "Funtoo Linux genkernel" 
	timeout 3 
}

"Funtoo Linux" {
	kernel bzImage[-v]
}

"Funtoo Linux genkernel" {
	kernel kernel[-v]
	initrd initramfs[-v]
	params += real_root=auto 
} 

"Funtoo Linux better-initramfs" {
	kernel vmlinuz[-v]
	initrd /initramfs.cpio.gz
}

If you are booting a custom or non-default kernel, please read man boot.conf for information on the various options available to you.

Old School (BIOS) MBR

When using "old school" BIOS booting, run the following command to install GRUB to your MBR, and generate the /boot/grub/grub.cfg configuration file that GRUB will use for booting:

(chroot) # grub-install --target=i386-pc --no-floppy /dev/sda
(chroot) # boot-update

New School (UEFI) Boot Entry

If you're using "new school" UEFI booting, one run of the following sets of commands, depending on whether you are installing a 64-bit or 32-bit system. This will add GRUB as a UEFI boot entry.

For x86-64bit systems:

(chroot) # grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id="Funtoo Linux [GRUB]" --recheck /dev/sda
(chroot) # boot-update

For x86-32bit systems:

(chroot) # grub-install --target=i386-efi --efi-directory=/boot --bootloader-id="Funtoo Linux [GRUB]" --recheck /dev/sda
(chroot) # boot-update

First Boot, and in the future...

OK -- you are ready to boot!

You only need to run grub-install when you first install Funtoo Linux, but you need to re-run boot-update every time you modify your /etc/boot.conf file or add new kernels to your system. This will regenerate /boot/grub/grub.cfg so that you will have new kernels available in your GRUB boot menu, the next time you reboot.