Just wanted to share my experience getting Dragora 2.2 running on a USB drive.
So I don't have a specific question but figured maybe this could be useful to other people who might be trying to do the same thing or something similar. It might come up in some searches. I used the same approach as I had done with CRUX back in September of 2016. https://lists.crux.nu/pipermail/crux/2016-September/005188.html I didn't really know exactly how to do it, but bumped around a bit and eventually got it going. Getting Dragora onto the USB drive went smoothly. I let it know the partition to install to and so the Dragora files were copied there. I didn't have Dragora install GRUB as I already had GRUB set up when I installed OpenSUSE on another partition. So then when I tried to use GRUB to boot that parition it failed, as it couldn't access it. So to get it to work I first tried using the busybox (v1.22.1) and other files that I used for CRUX. I created the initramfs with cpio and let GRUB know where to find the initramfs file on the partition. Once I got a shell I figured I could try to mount the relevant partition. When I booted it up though it didn't work. There seemed to be some kind of incompatibility between the kernel and busybox. So then I tried using the busybox (v1.19.4) and other files from the Dragora installation USB thumb drive. I again created the initramfs using cpio. In the case of the CRUX initramfs for the CRUX installation system it turns out that init is a shell script, but in the case of Dragora init is a symbolic link and so in Dragora installation startup processing is done in /etc/rc.d/rc.S which then draws from /etc/profile. For making my initramfs I tried commenting out most of the lines of code in /etc/rc.d/rc.S. I guess I was just looking for a minimal initialization so that I could mount the relevant partition and then do switch_root as I had with CRUX. I think I commented out everything. It still booted up and I got a shell. I was also still able to mount the relevant partition (unlike with CRUX I didn't need to compile into the kernel modules for reading a USB drive). But then there wasn't any switch_root in the version of busybox (v1.19.4) for Dragora 2.2. I thought that maybe chroot would have similar functionality so I tried that: exec /sbin/chroot /newroot /sbin/init But it didn't work. So I tried downloading a more recent version of busybox from the busybox site. (v1.21.1). I could see that that version has switch_root when I ran it in openSUSE, and when I tried it in the initramfs it still booted up fine and I got a shell prompt. I wasn't sure what setup I needed before doing the switch_root. I tried going with very little, but it didn't work. So I tried going with a setup similar to CRUX where init is a shell script instead of a symbolic link as in the Dragora installation. In the init file as a shell script I put in basically the same processing as had been in the Dragora /etc/rc.d/rc.S (although for my particular setup I didn't do anything with RAID or LVM as I don't have those). After doing that setup I then mount the relevant partition. Then I undo all of that setup which was done prior to the mounting step. Then I do the switch_root which goes to the init on the Dragora partition. (I can include the init shell script that I currently have to boot Dragora at the end of this email, so of course, one would need to modify it for another particular setup) There was one more wrinkle to work out. When I did the installation it turned out that the USB drive was /dev/sdc. The thumb drive was /dev/sdb and the hard drive itself was /dev/sda. When it booted it looked for /dev/sdc which didn't exist because there was no thumb drive and the USB drive was /dev/sdb. All I had to do was change /etc/fstab so that it was /dev/sdb instead of /dev/sdc. I was able to get Xfce running and it seems to run pretty fast. With the focus on simplicity I figured that might be the case. So right now I'm composing this email in Gmail using IceCat running on Dragora. David Friedman P.S. Here is the init script. I do not think I need all of those sleeps, but I put them in there in the course of testing. This came about from taking different parts from Dragora and also from CRUX. #!/bin/bash # # mkdir -p /bbin /bin/busybox --install -s /bbin PATH=/bbin:/bin:/sbin export PATH echo "Mounting proc..." mount -t proc proc /proc sleep 2 echo "Mounting sys..." mount -t sysfs sysfs /sys sleep 2 echo "Mounting tmpfs..." mount -vn -t tmpfs tmpfs /run -o mode=0755 sleep 2 echo "Mounting devtmpfs..." mount -vn -t devtmpfs devtmpfs /dev sleep 2 echo "Mounting devpts..." mkdir -p --mode=0755 /dev/pts mount -vn -t devpts devpts /dev/pts -o mode=0620,gid=4 sleep 2 echo "Starting udev daemon: /sbin/udevd --daemon" udevd --daemon sleep 2 udevadm trigger --type=subsystems udevadm trigger --type=devices rm -f /etc/mtab* ln -s /proc/mounts /etc/mtab echo "Now about to attempt mount of /dev/sdb2..." sleep 3 mkdir /newroot mount /dev/sdb2 /newroot sleep 1 echo "Stopping udev daemon..." udevadm control --exit sleep 1 echo "Unmounting devpts..." umount /dev/pts sleep 1 echo "Unmounting devtmpfs..." umount /dev sleep 1 echo "Unmounting tmpfs..." umount /run sleep 1 echo "Unmounting sys..." umount /sys sleep 1 echo "Unmounting proc..." umount /proc sleep 1 echo "Now doing switch_root..." exec /bbin/switch_root /newroot /sbin/init echo "Something went wrong...going to a shell..." exec /bin/bash
