wiki:InitrdClienteSecondFileSystem/en

Version 5 (modified by trac, 7 years ago) (diff)

--

OpenGnSys Client

Goal

  1. Be able to boot from:
    • Any external device (USB, CD, DVD)
    • A cache partition
    • A NIC using any protocol: NFS, SMB, CIFS...
  2. Add or update software using standards packages manager.
  3. Software installed in client does not affect their boot (specially in PXE mode)
  4. Independently the amount of clients, separate their booting time

Description

  1. The "client operating system" is composed by:
    • First stage: a kernel and a initrd.
    • Second stage: root filesystem (with all needed apps).
  2. First stage elements are loaded by a bootloader. It will use a specific bootloader(e.g. isolinux, grub, grub4dos, gpxe) depending on the container (CD, DVD, USB, cache partition, network).
  3. OpenGnSys starter in initrd (boot=oginit) will detect where the root filesystem is located (second stage). It will mix the root filesystem with this new initrd filesystem.

More info "Using UnionFS: BusyBox? and SquashFS together" http://lwn.net/Articles/219827/

Kernel 1.0.2 beta01 Parameters

Kernel Standard Parameters

  • KERNEL ogclient/ogvmlinuz
  • initrd=ogclient/oginitrd.img
  • For graphical boot with plymouth
    • quiet
    • spash
  • Use framebuffer for browser and plymouth
    • vga=788
  • irqpoll
  • acpi=on
  • Configure NIC
    • ip=dhcp
    • ip=

Kernel Special Parameter for OpenGnSys Process

boot=oginit

Specific parameters if use boot=oginit

  • oginit=init|/bin/bash
    • Tell to OG client, when oginit process is finished that start up the indicated process.
    • By default init.
    • The process init call to (/opt/opengnsys/etc/preinit/default.sh)
  • og2nd=sqfs|img
    • Format of rootfs file (root system) that use ogvmlinuz and oginitrd.img
    • There are two formats: sqfs (only read img file and the only one that it is installed). The img (modified file from OG Server and available only for developers)
  • ogprotocol=smb|nfs|local
    • Access protocol to remote resources of OpenGnSys.
    • Local for CDROM, USB from ISO. labelparticionusbUNETBOOTIN=ogClient
    • Local for file.sqfs in cache.
  • ogactiveadmin=true|false
    • true: Funcionality mode of browser with active shell root and access to share resource ogrepo (images) in write mode.
    • false: Browser without shell, and the write access only is autorized if the operation is from web application and never form the clients shell.
  • ogdebug=true|false
    • Debugger mode in the booting process of the client.
    • Enable control points to access to shell and manually check the process state.
  • ognetmodule=name_module
    • Special module of NIC. Currently it is not necessary, oginitrd.img check all existing modules.
  • ogdns=ip
    • DNS IP
  • ogupdateinitrd=true
    • Active local cache from client computer as kernel container (ogvmlinuz) and initrd(oginitrd.img) of the PXE client OpenGnSys operating system. The second stage of the boot (access to remote rootfs) will be on the repository server.
    • Automatically, it manage the updating of these files by rebooting with the new kernel and/or initrd.
    • It is needed that the container tftpboot have in the root the own files md5. oginitrd.img.sum ogvmlinuz.sum.
Mounts points for PXE ogclient

# By default all the OG services are located in next-server (ROOTSERVER) (parameter of DHCP service)

# If we want to indicate that REPO (/opt/opengnsys/images) it is on other computer, we should to use the ogrepo parameter.

  • Mounts points based on Og resources distribution.
    • ogrepo=ip # access to repository images container assigned to the client.(read-write by mode)
    • ogshare=ip # access to container where it is client configuration, engine, scripts, interface adm, bin (read)
    • oglog=ip # access to log container (write)
    • oglive=ip # access to second filesystem containter of PXE client (read)
  • Using the mounts depending on whether the variables are assigned:
    • OGSERVERIMAGES="${ogrepo:-$ROOTSERVER}"
    • OGSERVERSHARE="${ogshare:-$ROOTSERVER}"
    • OGSERVERLOG="${oglog:-$ROOTSERVER}"
    • OGSERVERLIVE="${oglive:-$OGSERVERIMAGES}"
  • Summary:
    • If you do not define any different resource, all it is installed in ogAdmSever (it must have the tftpboot service).
    • If you define one ogreo: images will be on indicated ogrepo, boot-tools so will in ogrepo and everything else on ogAdmServer (it must have the tftpboot service)
    • If you define ogrepo and oglive: Si definimos un ogrepo, y un oglive: cada uno de estos montajes hacia la correspondiente ip, y lo demás al ogAdmServer.

More Info