diff options
author | 2017-08-29 15:07:29 +0300 | |
---|---|---|
committer | 2017-08-29 15:07:29 +0300 | |
commit | 79d0f6e96ce952f85b02c4279f8b40ea3927e487 (patch) | |
tree | 980b2afa10428374b4afc3f57e5698a9fdce1f3f | |
parent | Bug report entry (diff) | |
download | GSE-79d0f6e96ce952f85b02c4279f8b40ea3927e487.tar.gz GSE-79d0f6e96ce952f85b02c4279f8b40ea3927e487.tar.bz2 GSE-79d0f6e96ce952f85b02c4279f8b40ea3927e487.zip |
Updated guides
-rw-r--r-- | Guide-Builder (renamed from Guide) | 5 | ||||
-rw-r--r-- | Guide-Controller | 54 |
2 files changed, 57 insertions, 2 deletions
@@ -2,8 +2,9 @@ The system builder is consisted from a number of scripts that take atvantage of Gentoo features to build a system that is prepared for stateless boot and function. To read more about the project, read the gse.5 under docs directory + To build a system, run: - - cd /path/to/"gse git dir"i/bin + - cd bin (it's under the projects git directory) 1) ./gse --base=base_arg --option1 --option2 --option3 To read more about command line options from gse.1 under docs directory 2) ./gse @@ -11,5 +12,5 @@ To build a system, run: Whatever the method of build is, at the end you will end up with a stage3 tarball under dist.d inside the project's directory. -TBU +The above image will be used by the initramfs functions (controller) to fetch it, extract, configure it and boot it at the end. diff --git a/Guide-Controller b/Guide-Controller new file mode 100644 index 0000000..47b02a5 --- /dev/null +++ b/Guide-Controller @@ -0,0 +1,54 @@ +# Guide for controller build + +The controller is a set of functions and scripts inside the initramfs image which is a product created by dracut package +To read more about the controller's concep read man gse.5, while to read more about the controllers options read man ctfse.1 +Both of those man pages are under t he docs directory inside the project's git directory + +Note: Before you attempt to build the controller, your system (the one you use for the build) must support (include) the following packages: + - sys-apps/pciutils + - sys-fs/btrfs-progs + - sys-fs/cryptsetup + - app-crypt/gnupg + - sys-block/open-iscsi + - sys-block/nbd + - net-fs/nfs-utils + - net-nds/rpcbind + - dev-libs/openssl + - app-admin/syslog-ng + - sys-fs/device-mapper + - net-misc/dhcp + - sys-apps/iproute2 + +The above packages are required for the dracut modules to function. A guid and detailed list about those can be found at: https://wiki.gentoo.org/wiki/Dracut + + +To build the controller, run + - Create a kernel image with the modules and builtins you wish + - Build the controller: + - cd bin + - ./gse --build-controller --opt1 --opt2 --opt3 ... + +The created image will be saved inside dist.d directory. To use this image you need to create a bootable device. +The device can be any physical medium that can be made bootable and support bootloader functions. + +The methos based on the drive's interface variate +You can find a guide about configuring the devices for boot at the Gentoo wiki: https://wiki.gentoo.org/wiki/Handbook:AMD64/Full/Installation#Introduction_to_block_devices +And you can find more informations about grub(if you choose grub as the bootloader) at: https://www.gnu.org/software/grub/manual/grub.html + +When you have a bootable medium there are only 4 steps left. + 1) Move the kernel & controller image to the bootable medium + 2) Update the grub.cfg entries to link on those images + 3) Pass the following parameters at grub.cfg kernels cmdline: + - root=LABEL=SYSFS + - rd.neednet=1 + - ip=dhcp + Example: linux /vmlinuz-4.12.5-gentoo root=LABEL=SYSFS rd.neednet=1 ip=dhcp + 4) Create 2 partitions on the device/s you want with the following labels: SYSFS BACKUPFS + Example: mkfs.ext4 -L SYSFS /dev/sdb4 && mkfs.ext4 -L BACKUPFS /dev/sdc2 + + There are 2 more Labels that can be created on 2 extra partitions, but those are not essential for the boot process. + Those are: BOOTFS and USERDATAFS. The BOOTFS should be given at the bootloaders partition while the USERDATAFS at any drive that you wish to use for storage. + The USERDATAFS label provides an extra security layer from the controller, since all controller's actions are shielded on a device with such a label. + +When done, plug the bootable medium to a machine and boot it. If everything was done as should, the process should fetch an image, configure it and boot it. + |