Diskless Installation Q&As
Table of Contents
Maintaining your diskless environment
Changing the ro
kernel parameter
Hanjie Liu from UMass writes:
Hi Bryan, where can I change the vtp OS to be writable?
Before you can install or update new packages or perform some other
diskless wide maintenance, the root
mount needs to be read-writeable.
In this diskless environment, this is safe to do for ONE machine at a time. You may opt to keep one of your VME Controllers or VTPs in this state if you need.
For the x86_64 distribution, I boot root
read-writable with a Virtual Machine.
The procedure below is relevant for changing other kernel commandline options, as well.
VME
For the VME, the ro
parameter on the kernel commandline is changed
from the pxelinux.cfg
IP address file. By default, the
diskless_gen.sh
makes IP address (hex) softlinks to common file
centos7.default
.
If you're only using one VME Controller, it's safe to just change the parameter in this file. For example, change:
append initrd=CentOS7-armv7-Diskless/initramfs-3.10.0-1062.9.1.el7.x86_64.img ip=dhcp root=nfs:129.57.29.97:/diskless/CentOS7/armv7/root ro vga=0x305
to
append initrd=CentOS7-armv7-Diskless/initramfs-3.10.0-1062.9.1.el7.x86_64.img ip=dhcp root=nfs:129.57.29.97:/diskless/CentOS7/armv7/root rw vga=0x305
If you're sharing this root
mount with more than one VME
Controller, change one of your IP address files into a real file
and modify that instead. For example (for ip: 192.168.1.100 filename = C0A80164):
cd /var/lib/tftpboot/linux-install/pxelinux.cfg rm C0A80164 cp centos7.default C0A80164
VTP
For the VTP, the ro
parameter on the kernel commandline is changed one of two methods:
- generate a new
env.bin
for the VTP microSD - updating the uboot environment using the serial link
For 1, You use the diskless_gen.sh
script. Change the bootcmd
parameter in the env.txt
ro
bootcmd=run tftpboot
rw
bootcmd=run tftpboot_rw
Then generate a new env.bin
by executing:
./diskless_gen.sh -e
For 2, you interrupt uBoot before it runs it's program that reads
and executes the env.bin
parameters.
- Power on (hardware) or reboot (software) the VTP
- Interrupt uBoot (through serial port program)
U-Boot 2016.01-00002-g46fc0b8-dirty (Oct 26 2016 - 14:24:01 -0400) Model: Zynq Jlab VTP Board Board: Xilinx Zynq DRAM: ECC disabled 1 GiB MMC: sdhci@e0100000: 0 reading env.bin In: serial@e0000 000 Out: serial@e0000000 Err: serial@e0000000 Model: Zynq Jlab VTP Board Board: Xilinx Zynq Net: ZYNQ GEM: e000b000, phyaddr 0, interface rgmii-id eth0: ethernet@e000b000 Hit any key to stop autoboot: 0
If you hit Enter
before the timeout, you will be presented with a uBoot prompt:
Zynq>
- Change the bootcmd with the shell command
setenv bootcmd 'run tftpboot_rw' saveenv