-
Configure an iSCSI target on a Pi
- install ubuntu server https://ubuntu.com/download/iot/raspberry-pi-2-3 using belena etcher
- log in via ssh
user:ubuntu pw:ubuntu- enabled by default on ubuntu server. change password sudo apt update && sudo apt upgrade -ysudo susudo apt -y install targetcli-fb- plug in s usb drive and as su
fdisk -l fdisk /dev/sdathen commandsdto delete current paritionnto start new, then keep defaults. Then exit withw- reboot or run
partprobe targetclicd /backstores/blockcreate disk /dev/sda1/iscsicreate iqn.2019-09.local.ubuntu:server/iscsi/iqn.2019-09.local.ubuntu:server/tpg1/aclscreate iqn.2019-09.local.ubuntu:pi3b1changepi3b1to the name of your clientcd iqn.2019-09.local.ubuntu:pi3b1set auth userid=pi3b1set auth password=raspberry/iscsi/iqn.2019-09.local.ubuntu:server/tpg1/lunscreate /backstores/block/diskexitss -napt | grep 3260`LISTEN 0 256 0.0.0.0:3260 0.0.0.0:*
-
Install BerryBoot on an SD card for each pi.
- format an SD as Fat32, partition table should be MBR/MSDOS
- Copy the conents of the berryboot zip to the root folder
- add
vncinstall ipv4=192.168.88.88/255.255.255.0/192.168.88.1 datadev=isci qmap=gbto the end of the cmdline.txt - changing IPs as appropriate, do not put it on a newline. - edit iscsi.sh as apporopriate and add
/sbin/iscsistart -i "iqn.2019-09.local.ubuntu:pi3b1" -g 1 -t "iqn.2019-09.local.ubuntu:server" -a "192.168.0.7" -u "pi3b1" -w "password"toiscsi.shusing the iqns and settings used in 1 - now if all is working you may find you boot into an empty boot menu with all options greyed out. If this is the case continue
- edit
cmdline.txtonce more this time deletedatadev=iscsifor now. reboot berryboot - this time you should boot into the berryboot set up - click through the menus, set up the iscsi manually.
- It should add a new disk sda1, select this a format the disk
- then it take you to a bootmenu editor with the correct amount of free space availible. Install any OS from the menu.
- It will reboot and will fail, edit cmdline.txt once more and replace
datadev=<some long hexadecimal>withdatadev=iscsiand reboot. - You should now be in the bootmenu with the single OS you installed and a valid button through to the bootmenu editor.
-
Add new OS
- copy a chosen OS from https://berryboot.alexgoldcheidt.com/images/, extract to a fat32 formatted USB. Connect the USB to the client pi and then long press
Add OSand then add from USB stick.
- copy a chosen OS from https://berryboot.alexgoldcheidt.com/images/, extract to a fat32 formatted USB. Connect the USB to the client pi and then long press
-
Switch between OSs/projects easily with this methodology -(currently untested)
-
Edit OS root files by doing the following
- Get the partition layout of the image
$ sudo fdisk -lu /var/lib/iscsi_disks/disk01.img
...
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
Device Boot Start End Sectors Size Id Type
/var/lib/iscsi_disks/disk01.img1 2048 262143 260096 127M e W95
/var/lib/iscsi_disks/disk01.img2 262144 20971519 20709376 9.9G 83 Linu
-
Calculate the offset from the start of the image to the start of the large partition
-
Sector size * Start = (in the case) 512 * 262144 = 134217728
-
Make a mount point
sudo mkdir /mnt/iscsiDisk01/
sudo mkdir /mnt/OS1/
- Mount it on /dev/loop98 using the offset
sudo losetup -o 134217728 /dev/loop98 /var/lib/iscsi_disks/disk01.img
- Now the partition resides on /dev/loop0. You can fsck it, mount it etc
sudo fsck -fv /dev/loop98
sudo mount -rw /dev/loop98 /mnt/iscsiDisk01
- Now you can browse
cd /mnt/iscsiDisk01/images
-
NB. So far just dropping images into
/mnt/iscsiDisk01/images/doesn't seem to work - although I haven't yet tried images from https://berryboot.alexgoldcheidt.com/images/ -
Now mount an image
sudo mount -rw Debian_Stretch_Raspbian_2018.11.img192 /mnt/OS1
cd /mnt/OS1/
-
Make any changes
-
Unmount
cd /
sudo umount /mnt/OS1
sudo umount /mnt/iscsiDisk01
sudo losetup -d /dev/loop98
+---+ +---+
|SSD| |SSD|
| | | |
+------+ +-----------------------+ | | | |
|ISP | | | +---+ +---+
|Router| | 8 port switch | | |
|In | +------+ | | | |
|Modem | |GlInet| | | +----+ +----+ +----+ ++--++
|Mode | |Router| | | |pi 1| |pi 2| |pi 3| |pi 4|
| | |?POE | |4 non poe 4 poe ports | |3B | |3B | |3B+ | |4B |
| | |VPN | | | |Hole| |OSMC| |DATA| |NAS |
+--+--++ +-+--+-+ +--+-+-+-+---+-+-+-+----+ +--+-+ +--+-+ +--+-+ +--+-+
| | | | | | | | | | | | | | | |
| +-----+ +-------+ | | | | | | +----------+ | | |
| | | | | | +-------------------+ | |
| v | v | +----------------------------+ |
v AP | TV +-------------------------------------+
WAN |
v
x86 Laptop Server
Made on ASCIFLOW
Issues
- Headless set up is tricky.
The vncinstall ipv4=192.168.88.88/255.255.255.0/192.168.88.1above enables VNC for berryboot. However this does not garuntee that any OS booted will be headless. Even though berryboot's/boot/folder becomes the/boot/of the OS adding asshfile does not seem to carry through - There doesn't seem to be a way to add one's own OS to the system yet. I have tried the long press
add OSbutton ->add from usbbut it didn't recognise the USB (I havent checked the format yet).
https://www.berryterminal.com/doku.php/berryboot/headless_installation