Booting Ubuntu 16.04 ISO from FOG; /dev/sr0: No medium found
-
@Tom-Elliott
It seems I made the disastrous decision to assume that the variable I saw online in another post was a FOG default-created and set variable, so I’ve been using it assuming it had been assigned the correct IP. I made that assumption because the first menu item I created, the original Ubuntu ISO, had worked, so I was just reusing what I had “working”.I changed the code to just the IP, because of that DNS issue and your question, and now I can successfully boot the extracted ISOs. Now I have a slew of other things to deal with therein, but at least now I’m there.
Mint and Ubuntu (extracted) need some work to get running, but Hiren’s runs perfectly,
-
@Fitzzz Post your working configuration, please?
-
Hi,
Did you manage to get this to go? I am in the same situation. I’ve tried both extracting and just using the ISOs. Looks like I can boot hiren but no luck with any version of Ubuntu tried 12.04 as someone said that worked differently.
Dan,
-
@bumlard That does work differently.
-
-
I’ve adapted this from the Fog Wiki page (which I had already TRIED to use), to what’s below… I get warning fsck not present so skipping file system. Mount, can’t find /root in /etc/fstab
mounting /dev on /root/dev failed no such file or directory.
My version in advanced section: (Hiren works fine but guess it doesn’t load drivers etc)
:ultimate
initrd http://${fog-ip}/${fog-webroot}/iso/HirenBootCD.iso
chain memdisk iso raw ||
goto MENU
:ubuntu16.04_64
set path /fog/service/ipxe/16.04_64
set nfs_path /var/www/html/fog/service/16.04_64
kernel http://10.60.54.224/fog/service/ipxe/16.04_64/casper/vmlinuz
initrd http://10.60.54.224/fog/service/ipxe/16.04_64/casper/initrd.lz
boot ||
goto MENU -
@bumlard For the first menu item in your below post, using the iso file itself for initrd will not work, iPXE doesn’t know what to do with it and doesn’t speak that language. You will need to extract the contents of the ISO to a web directory and path to the correct init.
-
@Wayne-Workman That makes me more confused as the Hiren (Ultimate) menu actually boots and works fine.
With regards to my issue with Ubuntu, what is it that the environment variables for set path and set nfs_path actually do, I’ve extracted ubuntu into the folder as shown called 16.04_64. Can you suggest how my config should look? I’m stumped!
Thanks in advance.
-
@bumlard said in Booting Ubuntu 16.04 ISO from FOG; /dev/sr0: No medium found:
what is it that the environment variables for set path and set nfs_path actually do,
They are just variables that the person who wrote the tutorial wanted to use to make changes easier in the future for himself.
I’d suggest un-doing the ubuntu stuff you’ve done with this, and starting over. I found a guide on the net here: http://www.howtogeek.com/61263/how-to-network-boot-pxe-the-ubuntu-livecd/
That tutorial is really confusing because the guy is creating an NFS share inside of the /tftpboot directory. FOG already has an NFS share that works fine, we’ll use that.
Mount the ISO to just
/images/mounts/ubuntu16
using fstab.
Assuming your iso is here:/images/iso/ubuntu16.iso
the fstab entry would look like this:/images/iso/ubuntu16.iso /images/mounts/ubuntu16 udf,iso9660 user,loop 0 0
After doing that, run the commands to make the directory and mount the ISO:
mkdir /images/mounts mount /images/mounts/ubuntu16`
Then you should be able to browse through the iso inside /tftpboot/ubuntu16 and see the files.
Then copy the kernel (from the mounted directory) & init to the tftpboot directory, this is because the kernel needs to be accessible to iPXE. Should be similar to this for the copy:
mkdir /tftpboot/ubuntu16 #Makes a directory in tftpboot for organization cp /images/mounts/ubuntu16/casper/vmlinuz /tftpboot/ubuntu16 #copies the ubuntu kernel to the directory we just made cp /images/mounts/ubuntu16/casper/initrd.lz /tftpboot/ubuntu16 #copies the init into the /tftpboot/ubuntu16 directory.
Then the FOG iPXE menu entry would look something like this:
KERNEL ubuntu16/vmlinuz APPEND root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/images/mounts/ubuntu16 initrd=ubuntu16/initrd.lz
Notice above, the little pieces I modified from the tutorial. First, when iPXE is executing this stuff/ it’s already inside of /tftpboot so we leave that part off. The kernel is pointed to ubuntu16/vmlinuz which on the fog server is actually /tftpboot/ubuntu16/vmlinuz and the root directory was appended to use NFS, netboot is NFS, and the NFS root is fog-ip/images/mounts/ubuntu16. You do not have to replace fog-ip this is a variable, it gets populated with the server’s IP on execution.
Now, I didn’t test any of this at all, I’m just writing this before I head to work. there’s probably a typo or two, everything in Linux is case sensitive. Let us know how it goes.
-
@Wayne-Workman Thanks very much for your help.
It turns out that you need to fill out this part CORRECTLY and with the ACTUAL path and not the MISTYPED wrong one as I had!! Whoops!! Check check and check again,
This is the part that my ineptitude caused all the issues:
First in your /etc/exports add this line: /var/www/fog/iso/15.04_64 * ro,sync,no_wdelay,insecure_locks,no_root_squash,insecure)
-
@bumlard cool. You’ll find over time there’s a million ways to approach a goal in Linux.
-
You are trying to boot the I.S.O. over the network.
The way I recommend you do this for pxe access in your company is to extract the content of the iso to a folder of your choosing then give proper access to the folder for the fog server using the exports file.
examples can be provided if im understanding what your trying to do?