Booting ISO issue / Mount /dev/cdrom
-
Hey guys, (Tom & Junkhacker)
So I am having an issue finding some info, I have my .iso added to the menu and it will pull/push the .iso into RAM but after the iso starts running I get a “Mount /dev/cdrom” error. Would anyone link me info on how to fix this or a work around / whatever you wanna call it lol, or what am I doing wrong/missing and/or how you would go about fixing this.
.iso added to the main menu as fog.ddu (Dell Update Utility)
initrd http://${fog-ip}/iso/dell-1950_update-utility.ISO chain memdisk iso raw
Error I am getting
Thanks
-
You’re most likely going to need to do this differently. Look through this article - there are several examples: https://wiki.fogproject.org/wiki/index.php?title=Include_any_ISO_in_the_FOG_Bootmenu
-
I agree with Wayne.
What is going on is the iso image kernel has it hard coded to connect to the physical cdrom (which doesn’t exist because the kernel was pxe booted). You will need to unpack the iso image and then look for the syslinux config files.
I’m in the process of downloading the liniso.iso for the 1950 to see what the iso image looks unpacked.
-
Your task may be somewhat difficult with this image. It may be easier to just boot from cdrom and forget about pxe booting this iso image.
But if you want to keep working on it. There is a folder on that iso image called isolinux. In there is the syslinux.cfg file. That will give you different options to boot this iso image. You will need the SA.1 (kernel) and SA.2 (initrd) from that directory and place them in the /var/www/html/fog/service/ipxe directory on the fog server.
The next bits you will need to work out for the fog menu to send the right commands to the kernel to boot. We can get you started on that, but the heavy lifting will be up to you.
Below is an excerpt from that syslinux.cfg file that looks promising. Booting the kernel and inits are only part of the issue, you also need access to the other files and scripts on that cdrom. It appears you can extract that iso to a NFS share and provide the kernel with a path to the nfs share.
Modify this if dtk files are on a nfs share. # the mount command will become... # mount -t $share_type -o $share_opts $share_location /opt/dell/toolkit/systems/ label network-nfs kernel SA.1 append initrd=SA.2 ramdisk_size=##RAMDISK_SIZE## Stage3_type=cdrom DEBUG=0 quiet BUILD=955 vmalloc=256M share_type=nfs share_location=<ip address>:/path/to/share share_script=<name/relative path to script to execute> share_opts=nolock selinux=0
-
Thinks guys and yeah I know in a way it would be some what “easier” to just run off of a CD but I have about 50 some odd servers I need to run this ISO on and just burning CD’s will not work.
@Wayne-Workman said in Booting ISO issue / Mount /dev/cdrom:
You’re most likely going to need to do this differently. Look through this article - there are several examples: https://wiki.fogproject.org/wiki/index.php?title=Include_any_ISO_in_the_FOG_Bootmenu
As I was doing some googling I did find this and was going to give it a try!
@george1421 said in Booting ISO issue / Mount /dev/cdrom:
I agree with Wayne.
What is going on is the iso image kernel has it hard coded to connect to the physical cdrom (which doesn’t exist because the kernel was pxe booted). You will need to unpack the iso image and then look for the syslinux config files.
I’m in the process of downloading the liniso.iso for the 1950 to see what the iso image looks unpacked.
Yep I see that now and Here is a link to the ISO I have , I hop it will help?!
@george1421 said in Booting ISO issue / Mount /dev/cdrom:
Your task may be somewhat difficult with this image. It may be easier to just boot from cdrom and forget about pxe booting this iso image.
But if you want to keep working on it. There is a folder on that iso image called isolinux. In there is the syslinux.cfg file. That will give you different options to boot this iso image. You will need the SA.1 (kernel) and SA.2 (initrd) from that directory and place them in the /var/www/html/fog/service/ipxe directory on the fog server.
The next bits you will need to work out for the fog menu to send the right commands to the kernel to boot. We can get you started on that, but the heavy lifting will be up to you.
Below is an excerpt from that syslinux.cfg file that looks promising. Booting the kernel and inits are only part of the issue, you also need access to the other files and scripts on that cdrom. It appears you can extract that iso to a NFS share and provide the kernel with a path to the nfs share.
Modify this if dtk files are on a nfs share. # the mount command will become... # mount -t $share_type -o $share_opts $share_location /opt/dell/toolkit/systems/ label network-nfs kernel SA.1 append initrd=SA.2 ramdisk_size=##RAMDISK_SIZE## Stage3_type=cdrom DEBUG=0 quiet BUILD=955 vmalloc=256M share_type=nfs share_location=<ip address>:/path/to/share share_script=<name/relative path to script to execute> share_opts=nolock selinux=0
As well here is syslinux.cfg
default 1 prompt 1 timeout 100 display message.txt label 1 kernel SA.1 append initrd=SA.2 root=/dev/ram0 rw DEBUG=0 share_type=cdrom loglevel=1 BUILD=955 init=/init selinux=0 edd=off share_script=drm_files/apply_bundles.sh label 2 kernel SA.1 append initrd=SA.2 root=/dev/ram0 rw DEBUG=9 share_type=cdrom loglevel=1 BUILD=955 force_mediacheck=1 init=/init selinux=0 edd=off # Modify this if dtk files are on a nfs share. # the mount command will become... # mount -t $share_type -o $share_opts $share_location /opt/dell/toolkit/systems/ label network-nfs kernel SA.1 append initrd=SA.2 ramdisk_size=##RAMDISK_SIZE## Stage3_type=cdrom DEBUG=0 quiet BUILD=955 vmalloc=256M share_type=nfs share_location=<ip address>:/path/to/share share_script=<name/relative path to script to execute> share_opts=nolock selinux=0 label debug kernel SA.1 append initrd=SA.2 ramdisk_size=##RAMDISK_SIZE## Stage3_type=cdrom BUILD=955 vmalloc=256M DEBUG=9 share_type=cdrom selinux=0 # Modify this if dtk files are on a smbfs share. # the mount command will be..... # mount -t $share_type -o $share_opts //$share_location /opt/dell/toolkit/systems/ label network-smbfs kernel SA.1 append initrd=SA.2 ramdisk_size=##RAMDISK_SIZE## Stage3_type=cdrom BUILD=955 vmalloc=256M DEBUG=9 share_type=smbfs share_location=//<ip address>/sharename share_script=<name/relative path to script to execute> share_opts=<share options eg username, password, or domain> selinux=0 label network-tftp kernel SA.1 append initrd=SA.2 ramdisk_size=##RAMDISK_SIZE## Stage3_type=cdrom BUILD=955 vmalloc=256M DEBUG=9 share_type=tftp share_location=<share dir> share_script=<name/relative path to script to execute> tftp_ip=<ip address of tftp server> selinux=0 #label mediacheck # kernel SA.1 # append initrd=SA.2 ramdisk_size=##RAMDISK_SIZE## Stage3_type=cdrom BUILD=955 DEBUG=0 quiet dsa_force_mediacheck=1 # Modify this if dtk files are on modified dtk CD. # the mount command will be.... # mount /dev/cdroms/cdrom0 /opt/dell/toolkit/systems/ label cdrom kernel SA.1 append initrd=SA.2 ramdisk_size=##RAMDISK_SIZE## Stage3_type=cdrom BUILD=955 vmalloc=256M DEBUG=0 mem=15G quiet share_type=cdrom share_script=<name/relative path to script to execute> selinux=0 label 3 localboot 0x80 # This file could be modified to suite your network configuration. # The variables share_type, share_location and share_script are available # an environment variables in the root shell. These variables are used # to mount the share containing all the dtk components. # Choose and modify network-nfs if you have a network share where you have # dtk files. # Choose and modify network-smbfs if you have a network share where you have # dtk files. Pleaes note the syntax differenc b/w nfs and smbfs for # the share_location. # Choose and modify cdrom if you have the dtk files on the cdrom itself # After modifying the required section please set the default(the first # line in this file)to this section.
Think you for the info and I hope with your help we can get this working in a few days or sooner, I will be looking in on this post everyday and report back what I have done and how far I have got.
-
@fmslick said in Booting ISO issue / Mount /dev/cdrom:
Thinks guys and yeah I know in a way it would be some what “easier” to just run off of a CD but I have about 50 some odd servers I need to run this ISO on and just burning CD’s will not work.
Just 50? I would definitely use the optical disk in that case.
-
@Wayne-Workman 50 is the test, I plan on making this work with other servers and + this is a good way for me to get my hands on a few thing I don’t know and up my skills
-
@fmslick Most legitimate servers have an iDRAC or iLO that will allow you to directly boot an ISO file. You shouldn’t even need fog to do this - FOG will really overcomplicate this. UCS servers from cisco have an especially fancy management interface.
-
@Wayne-Workman All the servers I am testing with are Dell 1950 III , do you have a link to where I can read up on? (if you don’t mind and think you)
-
@fmslick This looks like a good place to start: http://www.dell.com/support/article/us/en/04/SLN148589/how-to-setup-and-manage-your-drac-5-and-bmc-for-dell-poweredge-9g-and-10g-servers?lang=EN
-
Future readers - and @fmslick - please bear in mind I am recommending in this particular instance to use DRAC instead of FOG because these are servers that already have DRAC and the ability to boot from an ISO using their DRAC card. If the case was with an end-user’s workstation, we would go the FOG route.
-
@Wayne-Workman Think
-
I’m looking at this as a puzzle, so I’m only speculating on how this could be done.
- On the fog server create the following file path /images/iso/dell1950
- Extract the contents of the cdrom to the fog server file path you just created in step 1
- Copy the following files from /images/iso/dell1950/isolinux to /var/www/html/fog/service/ipxe
- This last part is to create a fog iPXE menu to boot this kernel.
Menu Item: iso.dell1950
Description: Dell 1950 something cdrom
Parameters:
kernel SA.1 initrd=SA.2 ramdisk_size=400000 Stage3_type=cdrom DEBUG=0 quiet BUILD=955 vmalloc=256M share_type=nfs share_location=<fog_server_ip>:/images/iso/dell1950e share_script=drm_files/apply_bundles.sh share_opts=nolock selinux=0
imgfetch SA.2
boot || goto MENUMenu Show with: Registered Hosts
-
@george1421 said in Booting ISO issue / Mount /dev/cdrom:
I’m looking at this as a puzzle, so I’m only speculating on how this could be done.
- On the fog server create the following file path /images/iso/dell1950
- Extract the contents of the cdrom to the fog server file path you just created in step 1
- Copy the following files from /images/iso/dell1950/isolinux to /var/www/html/fog/service/ipxe
- This last part is to create a fog iPXE menu to boot this kernel.
Menu Item: iso.dell1950
Description: Dell 1950 something cdrom
Parameters:
kernel SA.1 initrd=SA.2 ramdisk_size=400000 Stage3_type=cdrom DEBUG=0 quiet BUILD=955 vmalloc=256M share_type=nfs share_location=<fog_server_ip>:/images/iso/dell1950e share_script=drm_files/apply_bundles.sh share_opts=nolock selinux=0
imgfetch SA.2
boot || goto MENUMenu Show with: Registered Hosts
Well that is a start, it will boot and start to run but skips over starting the drm_files/apply_bundles.sh
EDIT:
I found the issue, there was a type’o of “delle” in your line " share_location=<fog_server_ip>:/images/iso/dell1950e " … I fixed the type’o and now I have Permission denied but got that fixed… thanks for the help m8 -
@fmslick So do you have it working? Not sure based on your edit.
As for the type-o… if it was perfect what would you have learned??
If you have it worked out good job.
-
@george1421 Yes I have it working, now I am working on moving the files off my fog server and on to a file server. I like to do things the hard way anyhow you make a point on the type-o lol.
Thank you -
@fmslick said in Booting ISO issue / Mount /dev/cdrom:
I am working on moving the files off my fog server and on to a file server
There was also guidance for using both nfs as well as CIFS (windows) share depending on the file server you intend to use. The use of the fog server is not a requirement of this setup.
But great!! Case solved!!