Bryan Smith wrote:
> I.e., We should only be covering GRUB/GRUB2, and especially the -EFI
> differences, _today_, let alone even back in 2014 when RHEL7 shipped
> with GRUB2-EFI.
> ...
> As I further stated, we should put our resources into covering both
> nVME boot [1d] too

So, just to focus on those sections, plus a few more ...  ;)



 o [C2v4] "EFI shell, gdisk, parted not included. More appropriate in
LPIC-1 update."

LPIC-1 v4 has already shipped, correct?  I didn't see it in there.
[101] [102], and the Wiki just makes the passing mention [C1v4]

So ... might I suggest LPIC-2 v4, and then move to LPIC-1 v5 later?
I'll cover this under the "Lilo" portion, after nVME (NAND SSD like
NVRAM) ...



 o [C2v4] "more SSSD"

NAND SSDs using AHCI (whether SATA or PCIe) do _not_ change at all.
Unless, of course, we want to get into all the hardware SFFs like M.2
and various connectors.  ;)

AHCI is compatible all the way back to the legacy, 8-bit Winchester
ST506 disk interface of the original IBM PC.  It's been moved forward
to the 16-bit PC/AT Programmed I/O (PIO), including with Integrated
Drive Electronics (IDE) and faster PIO modes (including trademarked
ones, like Western Digital's Enhanced IDE, which added master/slave),
then even the generic [PC/]AT Attachment (ATA) specifications that
added then first Direct Memory Access (DMA), 32-bit blocking, etc...
that we now know today with both parallel ATA and Serial ATA (SATA).

The AHCI is just a virtual 32-device "bus" for interfacing with all
that ST506 legacy.

Where NAND SSDs _change_ is when one uses nVME [1].

nVME is _not_ ST506 compatible.  That means ...

- It _breaks_ 16-bit BIOS Int13h Disk Services, period, end-of-story
- So ... it won't work on uEFI using Compatibility Support Modules (CSM)

At the same time ... the "3 requirements" ...

- Native 64-bit uEFI Storage Services _with_ nVME support
- Boot loader (e.g., GRUB-EFI) w/64-bit uEFI Storage support
- OS kernel (e.g., Linux 3.3+) with nVME device and commanding support

nVME is 100% _incompatible_ with AHCI and the ST506 legacy, as it's
more like read-only (with buffered write) NVRAM, than platter [1a]

So, "Objectives" ...

1)  Know to differentiate between SCSI-like AHCI and nVME

2)  Know the Linux /dev/nvme* enumeration for its specific commanding
    (again, it's not an AHCI "generic block device" that uses /dev/sd*)

3)  Know the 3 requirements to boot
    (uEFI firmware w/NVMe, GRUB-EFI, Linux 3.3+ w/NVMe)



 o [C2v4] "drop lilo, (consider U-boot and other non-x86 topics)"

My "U-Boot" comment was a "devil's advocate," meaning more Linux
people today know U-Boo than LILO.  Heck, they know nVME boot more
than LILO.  ;)

I've covered 100% of the above on nVME.  Also, for aarch64 (64-bit
ARMv8), GRUB2-EFI covers it little different than for x86-64.

GRUB 2 basics are already covered in LPIC-1 v4. [C1v4]
So ... objectives for GRUB2-EFI (I'll ignore Red Hat's GRUB-EFI
backport to 0.97) ...

1a)  Know about the EFI System Partition (ESP), type EF00h, in GUID
Partition Tables (GPT) required for native 64-bit uEFI Storage Boot

1b)  Know the ESP is mounted to /boot/efi, and must be a File
Allocation Table (FAT) file system.

Note #1 (not for exam):  The uEFI spec states FAT12/16 for removable
media, FAT32 for fixed disk, and most uEFIs implement all for all.
Most OSes support all, but install differently.

Note #2 (not for exam):  It can be FAT12, 16 or 32, with various OS
installers creating FAT16 (e.g., Red Hat Anaconda) and FAT32 (e.g.,
Windows x64 Vista/7/2008+).  Sometimes the latter is created by
Windows, even if the former exists.  FAT32 with 4KiB logical sectors
(not emulated 512B on 4KiB physical, but when logical = physical)
require 260MiB mininum.

Note #3 (not for exam):  On GPT disk labels, Windows x64 requires (as
in, to stop writing "hidden sectors" elsewhere) a Microsoft Reserved
Partition (msftres), type 0C01h, of 128MiB, ideally as partition #2
after the ESP, unless the disk is 16GiB or smaller (then only 32MiB).

2a)  Know the purpose of the grubx64.efi and shim.efi in the ESP (/boot/efi).

Note #1:  I don't think we need to get into secure boot and the MOK
(Machine Owner Key) Manager (mokmanager), which is used by the
shim.efi.

2b)  Know the different "targets" of 16-bit BIOS Int13h GRUB v. 64-bit
uEFI Storage GRUB

2c)  Know that grubx64.efi is now used for native 64-bit uEFI
_Network_ Services to boot via PXE, instead of PXELinux (part of
SYSLINUX, along w/ISOLinux, etc...).

Network boot in uEFI does _not_ use 16-bit BIOS Int13h Disk Services
"emulation" for character device (byte-by-byte, very _slow_), but a
new, dedicated "block" service that GRUB2-EFI supports (much faster).

Note #1:  uEFI Network boot requires a _different_ DHCP option to be
passed than for BIOS-based PXE.

3)  Know about the EFI framebuffer (efifb), as 16-bit BIOS Int10h
Video Services, including VESA BIOS Extension (VBE) modes, are _not_
available in uEFI (_no_ vga=xxx).

Details:  Although there are some GPU-specific drivers for Kernel Mode
Set (KMS), the "efifb" is the "ultimate fallback" as there is _no_
legacy Int10h Video and _no_ memory mapped console in B0000h as there
is _no_ BIOS and _no_ 20-bit address Real86 mode as uEFI forces 48-bit
addressing (52-bit PAE) "Long Mode" that only allows Protected386 and
Long Mode (no Real86 compatibility, unlike Protected386).

Side Note:  This bites _everyone_ in the rear when they try to use
"vga=xxx" modes and try to use "vesa framebuffer" settings, but are
native uEFI booting.



 o [C2v4] "introduction (or more) to FreeIPA"

IPA Client is cake, uses SSSD, and is probably ideal for LPIC-1 v5.

IPA Server is also cake, at least before covering replication (which
should be more LPIC-3 w/389 Server).

So, objectives ...

1a)  SSSD, which IPA Client/Libraries/Tools use, and are all openldap-libs based

Note:  IPA, based on newer 389 w/OpenLDAP Libraries (openldap-libs),
no longer use Netscape Security Services (NSS) from Netscape/iPlanet,
although may require libnss instead of libssl (OpenSSL).

1b)  SSSD enforces Root CA Validation and other, Security Best Practices

This includes pam_sss differing from pam_ldap prior, while still based
on openldap-libs.  In fact, it's SSS  that's just using a new
openldap-libs default, while pam_ldap is based on old code.

Note:  This is the #1 issue I see, people using pam_ldap and _not_
having a valid Root CA for their certificates.  SSSD then seems
"broken," when their security was broken.  An override must be thrown
(cannot remember it from memory).

2a)  Understand the "provider" entries and stanzas of sssd.conf

Know what an sssd.conf file looks like, both the ...
 [sssd] general stanza section, including the ...
 services = (services) entries (at least nss and pam), plus
 domains = (provider), and those individual ...
 [(provider] stanza sections

Understand how it offers both Kerberos and LDAP providers, with
similar entries to krb5.conf and ldap.conf in their respective
stanzas, but the all important

2b)  SSSD entries in NSS and PAM are "sss"

If SSSD has "providers" for both Kerberos and LDAP, include "ldap" and
"krb" in neither /etc/nsswitch.conf nor /etc/pam.d/* files.

Note #1:  You still want to configure krb5.conf and ldap.conf for
OpenLDAP Client/Tools and Kerberos k* binaries.

Note #2:  This confuses people, but tools like "authconfig" can
provide "legacy" services with some "legacy" options.  You want to use
a "pure" SSSD configuration when using SSSD providers for Kerberos,
LDAP, etc...

2c)  SSSD also provides a Winbindd replacement

SSSD (1.10+) also provides a Winbindd replacement, meaning you want to
use Winbindd in neither NSS nor PAM, if enabled in SSSD.  The SSSD
implementation is actually multi-domain aware, and even works with
IPAv3+ Cross [Kerberos] Realm Trusts (including External AD Forest
Trusts).

Note #1:  SSSD's UID/GID enumeration was written primarily by the
Samba team, especially those employed by Red Hat, especially to
enumerate deterministic UIDs/GIDs across multiple AD domains, trees
and forests (no conflicts).  The SSSD/IPA approach takes as a
completely different directly from Samba v4 AD Services, the latter
which acts as a member AD server, hence why Red Hat doesn't ship the
Samba v4 AD package, but uses External AD Forest Trusts for
interoperability (IPA outside AD).

Note #2:  Long-story-short, POSIX and Windows systems differ in
schema, and by definition, AD and IPA like Windows and UNIX/Linux,
respectively, will always differ in schema, because AD does not allow
schema to differ in the same AD Forest (collection of Domain Trees),
which is why Samba v4 AD only offers Windows schema.

Note #3:  As of Windows Server 10, even Microsoft agrees this is a
better approach, and has yanked IDMU (IdM for UNIX), so AD cannot
store IETF2307bis POSIX attributes any more.  I.e., Microsoft says to
either enumerate UIDs/GIDs (via SSSD/Winbindd/3rd party, not ideal,
but required when AD doesn't have IDMU), get a costly (CAL-based) 3rd
party option (insert various projects, the ones that do more than the
"free" enuemration), or ... just run IPAv3+ and manage UNIX/Linux
attributes outside of an AD Forest, with cross-trusts with AD
Forest(s).  MCPs want the last, they don't want to deal with POSIX,
and Microsoft has listened.  I.e., IPA is the future.  ;)

2d)  SSSD has its own caching in sssd.conf

Do not use nscd or nslcd with SSSD, when SSSD is providing caching of
credentials in its own configuration.  SSSD's AD
multi-domain/tree/forest UID/GID enuemration is also more
deterministic than Winbindd's.


3)  IPA Services

Understand IPA is managed via web-based administration and its own
ipa-* commands, while being openldap-client and k* command
compability.

IPA Client (and Server) requires SSSD, period, and is cake to setup.

IPA provides ...
 - Full DNS zoning for domain, including SRV records (like AD)
Identity (the "I") ...
 - LDAP w/IETF RFC2307bis schema (POSIX -- not NTuser as in AD)
   This schema is _fixed_, not "variable" like a general LDAP
   (this its blessing/curse, don't need to know LDAP, but no flexibility)
 - MIT Kerberos v5, including system and user principal keytabs
   optionally NFS for NFS4 GSSAPI, aka sec=krb5[ip]
 - OpenSSL certificates for systems, and certificate management
 - Store of public SSH keys
 - Version 3+ (IPAv3+) provides cross-realm trusts
   E.g., AD Forest interoperability, even some Global Catalog (GC) support
   (I can go into the 5 "roles" of AD Domain/Forest DCs, and how IPA
works with some)
Policy and Audit (the "PA" portion)
 - Any SELinux policies
 - Any sudoers files
 - Any automounter maps
 - Several other POSIX maps (and new ones)
 - Select logging concentration
 - etc...

I'm open to discussing what we can cover in the ipa-* tools, setup and
basic operations, where they differ from openldap-* tools.



  o [C2v4] "add xzImage to kernel image names if it ever gets used"

Objective(s):

- Be aware of the "LZMA/LZMA2" compressor, including .xz files and the
xzImage kernel.

The new ".xz" file extension has been appearing as it is just a new
algorithm of the Lempel-Ziv-Markov (LZM) lineage.  It has also been
made popular by the open source program 7-Zip, which uses it inside
its archives (like PKZip), instead of on an archive (like tar -- ergo,
.tar.gz) and is increasingly being used by Red Hat and others for its
binary compression and performance -- especially compared to
Block-Wheeler Transform, BWT, popularized by bzip2, which has a heavy
performance/memory footprint cost.



  o [C2v4] "update 204.2 (adjusting storage devices) to include NVMe
and AHCI (with IDE/PIO coverage) - make Bryan do it? :)"

Covered above.  ;)


-- bjs

 [101] https://www.lpi.org/study-resources/lpic-1-101-exam-objectives/
 [102] https://www.lpi.org/study-resources/lpic-1-102-exam-objectives/

 [C1v4] http://wiki.lpi.org/wiki/LPIC-1_Objectives_V4
 "cover UEFI in LPIC-1 instead of LPIC-2
  explicitly mention GUIDs w/GPT"

 [C2v4] http://wiki.lpi.org/wiki/LPIC-2_Objectives_V4

 [1] https://en.wikipedia.org/wiki/NVM_Express
 [1a] https://en.wikipedia.org/wiki/NVM_Express#Comparison_with_AHCI


--
Bryan J Smith  -  http://www.linkedin.com/in/bjsmith
E-mail:  b.j.smith at ieee.org  or  me at bjsmith.me
_______________________________________________
lpi-examdev mailing list
lpi-examdev@lpi.org
http://list.lpi.org/cgi-bin/mailman/listinfo/lpi-examdev

Reply via email to