How to pxe boot cent os 7
-
@dureal99d and output of
dmesg | tail -20
? -
@Tom-Elliott said in How to pxe boot cent os 7:
dmesg | tail -20
[ 8605.032191] nfsd: last server has exited, flushing export cache
[ 8605.178847] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[ 8605.179097] NFSD: starting 90-second grace period (net ffffffff81ef3ec0)
[177245.456195] nfsd: last server has exited, flushing export cache
[177245.571541] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[177245.571572] NFSD: starting 90-second grace period (net ffffffff81ef3ec0)
[504820.256179] nfsd: last server has exited, flushing export cache
[504820.379183] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[504820.379211] NFSD: starting 90-second grace period (net ffffffff81ef3ec0)
[505766.396169] nfsd: last server has exited, flushing export cache
[505766.443252] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[505766.443281] NFSD: starting 90-second grace period (net ffffffff81ef3ec0)
[512189.424200] nfsd: last server has exited, flushing export cache
[512189.469462] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[512189.469507] NFSD: starting 90-second grace period (net ffffffff81ef3ec0)
[512652.019883] FS-Cache: Loaded
[512652.045276] FS-Cache: Netfs ‘nfs’ registered for caching
[512652.087294] NFS: Registering the id_resolver key type
[512652.087309] Key type id_resolver registered
[512652.087310] Key type id_legacy registered -
@Tom-Elliott Should i be trying to mount this share locally or on another machine?
-
@dureal99d you could try readding the -t nfs
-
@Tom-Elliott also can you run
yum -y install portmap nfs-utils nfs4-acl-tools
-
@Tom-Elliott yum doesn’t apply to me I’m on Ubuntu 16.04.1. it does offer for me to install it should I? @Tom-Elliott I have installed yum. and am executing the program you have told me too.
-
@Wayne-Workman said in How to pxe boot cent os 7:
@dureal99d The syntax is:
ln -s <source> <destination>
You should remove the left/right carrots when running the command.
If all the ISOs are in /opt/bootimgs the command would be:
ln -s /opt/bootimgs /var/www/html
Of course, apache needs access to this new directory also. It’s fine to set ownership of
/opt/bootimgs
to apache:root or 777 or something.And your resultant web path to these files would then be:
http://<IP>/bootimgs/whatever
How would I give apache permissions to the new folder?
I set the folder as chmod 777 and can now write into the folder on the local machine. but when I try to load any distro I now get the dreaded permissions denied on nfs mount. and the nfs is exported.
-
@Tom-Elliott I have successfully mounted the nfs on my remote machine. on my other linux machine i did not have the nfs system installed once i did wala it mounted. however i cant write to it its read only. and when i boot the linux ditro it all goes good utill its time to mount the nfs then i get a permissions denied error
-
@dureal99d If you want to make it writeable you need to say so in the NFS exports file:
/images *(ro,sync,no_wdelay,no_subtree_check,insecure_locks,no_root_squash,insecure,fsid=0) /images/dev *(rw,async,no_wdelay,no_subtree_check,no_root_squash,insecure,fsid=1) /var/www/fog/service/ipxe *(ro,sync,no_wdelay,insecure_locks,no_root_squash,insecure) /opt/bootimgs *(rw,sync,no_wdelay,insecure_locks,no_root_squash,insecure)
See I put
rw
where it saidro
in the config you posted last.Can you please post a picture of the permissions error you see on boot?
-
@Sebastian-Roth I can care less about being able to write to it, i just want the permissions to be granted when linux distros try to mount and yess ill post the pic.
-
@dureal99d Now that you have clead up your exports file it seems like you need to add those again. Please change your last entry to
/opt/bootimgs/16.04.1_64 *(rw,sync,no_wdelay,insecure_locks,no_root_squash,insecure)
and see if it boots up. -
OK lets step back and regroup here. Lets do the following
- Insert the Centos 7 dvd into your FOG server’s cdrom drive
- Key in the following commands into your fog server’s console as root:
# we are going to put all of our boot images into the web server and issue the files # with apache and cut out all of this NFS crud mkdir /var/www/html/bootimg # connect to the centos dvd to the /mnt directory mount -o loop /dev/cdrom /mnt #show me there is content there ls /mnt # Create a destination directory for the centos installer files mkdir /var/www/html/bootimg/centos7x64 # Copy the content of the dvd to the proper location cp -r /mnt/* /var/www/html/bootimg/centos7x64 # Change the access level for world read chmod -R 755 /var/www/html/bootimg/centos7x64 # Unmount the dvd drive since we already have the files umount /mnt
- Now in the FOG Configuration->iPXE New Menu Entry enter the following:
Menu Item: Centos7PXEInst
Description: Install Centos x64
Parameters:
initrd http://${fog-ip}/bootimg/centos7x64/images/pxeboot/initrd.img
chain http://${fog-ip}/bootimg/centos7x64/images/pxeboot/vmlinuz initrd=initrd.img method=http://${fog-ip}/bootimg/centos7x64/ devfs=nomount ip=dhcp
boot || goto MENU
Menu Show with: All Hosts - Now pxe boot your target computer and select the Install Centos x64 menu item.
- You should see the installer boot and run.
This process can be replicated to other linux distributions. I just tested this, this morning on my dev fog server running 1.3.0-rc8 and it works.
As for a live boot, these settings don’t work, the installer still runs. I don’t have time right now to figure out why the live boot bits are not working.
Live OS boot
initrd http://${fog-ip}/bootimg/centos7x64/images/pxeboot/initrd.img chain http://${fog-ip}/bootimg/centos7x64/images/pxeboot/vmlinuz initrd=initrd.img root=live:http://${fog-ip}/bootimg/centos7x64/LiveOS/squashfs.img ip=dhcp rootflags="loop" rootfstype=auto ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0 boot || goto MENU
-
@Sebastian-Roth ok, I’m trying it now
-
@george1421 ok I will try it shortly
-
@Sebastian-Roth said in How to pxe boot cent os 7:
/opt/bootimgs/16.04.1_64 *(rw,sync,no_wdelay,insecure_locks,no_root_squash,insecure)
it works now, I see I had this line “nfsroot=${fog-ip}:/var/www/html/bootimgs/16.04.1_64/” wrong.
I had nfsroot=${fog-ip}:/bootimgs/16.04.1_64/ which did not work but once I seen the path @george1421 was using I realized I had nfsroot= wrong.
thank you all @Developers . all I have to do now is try the cent os method made by @george1421. I’m on that now
-
@george1421 said in How to pxe boot cent os 7:
OK lets step back and regroup here. Lets do the following
- Insert the Centos 7 dvd into your FOG server’s cdrom drive
- Key in the following commands into your fog server’s console as root:
# we are going to put all of our boot images into the web server and issue the files # with apache and cut out all of this NFS crud mkdir /var/www/html/bootimg # connect to the centos dvd to the /mnt directory mount -o loop /dev/cdrom /mnt #show me there is content there ls /mnt # Create a destination directory for the centos installer files mkdir /var/www/html/bootimg/centos7x64 # Copy the content of the dvd to the proper location cp -r /mnt/* /var/www/html/bootimg/centos7x64 # Change the access level for world read chmod -R 755 /var/www/html/bootimg/centos7x64 # Unmount the dvd drive since we already have the files umount /mnt
- Now in the FOG Configuration->iPXE New Menu Entry enter the following:
Menu Item: Centos7PXEInst
Description: Install Centos x64
Parameters:
initrd http://${fog-ip}/bootimg/centos7x64/images/pxeboot/initrd.img
chain http://${fog-ip}/bootimg/centos7x64/images/pxeboot/vmlinuz initrd=initrd.img method=http://${fog-ip}/bootimg/centos7x64/ devfs=nomount ip=dhcp
boot || goto MENU
Menu Show with: All Hosts - Now pxe boot your target computer and select the Install Centos x64 menu item.
- You should see the installer boot and run.
This process can be replicated to other linux distributions. I just tested this, this morning on my dev fog server running 1.3.0-rc8 and it works.
As for a live boot, these settings don’t work, the installer still runs. I don’t have time right now to figure out why the live boot bits are not working.
Live OS boot
initrd http://${fog-ip}/bootimg/centos7x64/images/pxeboot/initrd.img chain http://${fog-ip}/bootimg/centos7x64/images/pxeboot/vmlinuz initrd=initrd.img root=live:http://${fog-ip}/bootimg/centos7x64/LiveOS/squashfs.img ip=dhcp rootflags="loop" rootfstype=auto ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0 boot || goto MENU
@george1421 This worked like a charm. Cent os boots, I have to do the net install type but it boots and is able to be installed.
Thank you all.
Side note, this should work for fedora? yet fedora is refusing to boot. I think because fedora does that live boot thingy. gices this error >>dracut: FATAL: No or empty root=argument dracut: Refusing to continue. yet this thread is solved.
-
@dureal99d The live boot bits that didn’t work for centos was from a fedora pxe boot guide. That is all I did and then just translated what was needed for the structure that fog uses. You will get much faster boot speed with http over ftp, or tftp that is why I kept everything in the same protocol by specifying http:// when making an object reference.
Also from my instructcions I moved the files out of the fog directory where they will get clobbered when you update FOG. By putting them on the web server in a different root folder (i.e. not /fog) the fog installer scripts will not touch them. It would be very depressing if you created this monster boot menu and then have a fog upgrade eat all of your hard work.
-
@george1421 said in How to pxe boot cent os 7:
fedora pxe boot guide.
@george1421 I have moved from the files from the fog root and moved them to /opt/bootimgs/ then I created a soft link to them as suggested by @Wayne-Workman . So no more fog eating the files on every upgrade. thank you. I am going to start reading up on all these codes so I can have a better understanding for these situation.
at any rate if you find you get the time a fedora code would be nice but not all that needed. oh and i almost forgot to post this.
Working boot menu for all but “centos live” and “fedora”
Hope this helps make someone’s life a bit easier now or later
:MENU menu item --gap -- ---------------- iPXE boot menu ---------------- item mac Macrium Reflect item clonezilla Clonezilla 2015 item ubuntu6 Ubuntu 16:04.1 x64 item ubuntu6 Ubuntu 16:04.1 x32 item ubuntu Ubuntu 15:10 x64 item ubuntu Ubuntu 15:10 x32 item kubuntu6 Kubuntu 16:04.1 x64 item kubuntu6 Kubuntu 16:04.1 x32 item kubuntu Kubuntu 15:10 x64 item kubuntu Kubuntu 15:10 x32 item mint18 Linux Mint 18 "Sarah" - MATE (32-bit) item Mint18 Linux Mint 18 "Sarah" - MATE (64-bit) item mint Linux Mint 17.2 "Rafaela" - MATE (32-bit) item Mint Linux Mint 17.2 "Rafaela" - MATE (64-bit) item mint Linux Mint 17.2 "Rafaela" - Cinnamon (32-bit) item Mint Linux Mint 17.2 "Rafaela" - Cinnamon (64-bit) item BOOTCD Hirens 15.2 BOOTCD item pgon Paragon Harddisk Manager 12 item ubd Ultimate Boot Disk item ez EZ Gig IV Cloning Software item centos Centos item centos2 Centos Live item hostinfo details about this computer item shell ipxe shell item return return to previous menu choose --default return --timeout 5000 target && goto ${target} :mac initrd http://${fog-ip}/fog/service/ipxe/mac/mac.iso chain memdisk iso raw || goto MENU :clonezilla kernel http://${fog-ip}/bootimgs/clonezilla/vmlinuz initrd http://${fog-ip}/bootimgs/clonezilla/initrd.img imgargs vmlinuz boot=live username=user fetch=http://${fog-ip}/bootimgs/clonezilla/filesystem.squashfs locale=en_US.UTF-8 keyboard-layouts=NONE boot || echo failed to boot prompt goto MENU``` :ubuntu6 kernel http://${fog-ip}/bootimgs/16.04.1_64/casper/vmlinuz.efi initrd http://${fog-ip}/bootimgs/16.04.1_64/casper/initrd.lz imgargs vmlinuz.efi root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/16.04.1_64/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :ubuntu6 kernel http://${fog-ip}/bootimgs/16.04.1_32/casper/vmlinuz initrd http://${fog-ip}/bootimgs/16.04.1_32/casper/initrd.lz imgargs vmlinuz.efi root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/16.04.1_32/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :ubuntu kernel http://${fog-ip}/bootimgs/15.10_64/casper/vmlinuz.efi initrd http://${fog-ip}/bootimgs/15.10_64/casper/initrd.lz imgargs vmlinuz.efi root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/15.10_64/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :ubuntu kernel http://${fog-ip}/bootimgs/15.10_32/casper/vmlinuz initrd http://${fog-ip}/bootimgs/15.10_32/casper/initrd.lz imgargs vmlinuz root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/15.10_32/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :kubuntu6 kernel http://${fog-ip}/bootimgs/kubuntu6_64/casper/vmlinuz.efi initrd http://${fog-ip}/bootimgs/kubuntu6_64/casper/initrd.lz imgargs vmlinuz.efi root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/kubuntu6_64/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :kubuntu6 kernel http://${fog-ip}/bootimgs/kubuntu6_32/casper/vmlinuz initrd http://${fog-ip}/bootimgs/kubuntu6_32/casper/initrd.lz imgargs vmlinuz root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/kubuntu6_32/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed :kubuntu kernel http://${fog-ip}/bootimgs/kubuntu5_64/casper/vmlinuz.efi initrd http://${fog-ip}/bootimgs/kubuntu5_64/casper/initrd.lz imgargs vmlinuz.efi root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/kubuntu5_64/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :kubuntu kernel http://${fog-ip}/bootimgs/kubuntu5_32/casper/vmlinuz initrd http://${fog-ip}/bootimgs/kubuntu5_32/casper/initrd.lz imgargs vmlinuz root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/kubuntu5_32/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :mint18 kernel http://${fog-ip}/bootimgs/lm18_32/casper/vmlinuz initrd http://${fog-ip}/bootimgs/lm18_32/casper/initrd.lz imgargs vmlinuz root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/lm18_32/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :Mint18 kernel http://${fog-ip}/bootimgs/lm18_64/casper/vmlinuz.efi initrd http://${fog-ip}/bootimgs/lm18_64/casper/initrd.lz imgargs vmlinuz root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/lm18_64/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :mint kernel http://${fog-ip}/bootimgs/lm_32/casper/vmlinuz initrd http://${fog-ip}/bootimgs/lm_32/casper/initrd.lz imgargs vmlinuz root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/lm_32/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :Mint kernel http://${fog-ip}/bootimgs/lm_64/casper/vmlinuz initrd http://${fog-ip}/bootimgs/lm_64/casper/initrd.lz imgargs vmlinuz root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/lm_64/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :mint kernel http://${fog-ip}/bootimgs/lmc_32/casper/vmlinuz initrd http://${fog-ip}/bootimgs/lmc_32/casper/initrd.lz imgargs vmlinuz root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/lmc_32/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :Mint kernel http://${fog-ip}/bootimgs/lmc_64/casper/vmlinuz initrd http://${fog-ip}/bootimgs/lmc_64/casper/initrd.lz imgargs vmlinuz root=/dev/nfs boot=casper netboot=nfs nfsroot=${fog-ip}:/var/www/html/bootimgs/lmc_64/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=la mirror/country=US boot || goto failed goto start :centos initrd http://${fog-ip}/bootimgs/centos/images/pxeboot/initrd.img chain http://${fog-ip}/bootimgs/centos/images/pxeboot/vmlinuz initrd=initrd.img method=http://${fog-ip}/bootimgs/centos/ devfs=nomount ip=dhcp boot || goto MENU :centos2 initrd http://${fog-ip}/bootimgs/centos/images/pxeboot/initrd.img chain http://${fog-ip}/bootimgs/centos/images/pxeboot/vmlinuz initrd=initrd.img root=live:http://${fog-ip}/bootimgs/centos/LiveOS/squashfs.img ip=dhcp rootflags="loop" rootfstype=auto ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0 boot || goto MENU :BOOTCD initrd http://${fog-ip}/bootimgs/bootcd/hirensboot.iso || chain memdisk iso raw || boot || goto MENU :pgon initrd http://${fog-ip}/bootimgs/pgon/phdman12.iso || chain memdisk iso raw || boot || goto MENU :ubd initrd http://${fog-ip}/bootimgs/ubcd/ubcd535.iso || chain memdisk iso raw || boot || goto MENU :ez initrd http://${fog-ip}/bootimgs/ez/EZGIG438.iso || chain memdisk iso raw || boot || goto MENU :hostinfo echo This computer : || echo MAC address....${net0/mac} || echo IP address.....${ip} || echo Netmask........${netmask} || echo Serial.........${serial} || echo Asset number...${asset} || echo Manufacturer...${manufacturer} || echo Product........${product} || echo BIOS platform..${platform} || echo || echo press any key to return to Menu || prompt goto MENU :shell shell || goto MENU :return chain http://${fog-ip}/${fog-webroot}/bootimgs/boot.php?mac=${net0/mac} || prompt goto MENU Autoboot
-
@dureal99d said in How to pxe boot cent os 7:
initrd http://${fog-ip}/bootimgs/centos/images/pxeboot/initrd.img
chain http://${fog-ip}/bootimgs/centos/images/pxeboot/vmlinuz initrd=initrd.img root=live:http://${fog-ip}/bootimgs/centos/LiveOS/squashfs.img ip=dhcp rootflags=“loop” rootfstype=auto ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0
boot || goto MENU@Developers @Moderators @Senior-Developers I wanted to update this thread with my current progress. both are working bootable.
in virtualbox i had to have at least 1650 gigs of ram allocated for it to boot. anything under that and it will error out. but i expect most machines these days to have at least 3 to 4 gigs of ram so any who choose to use should be fine.
Hope this helps make someones life a bit easier.
both are fully working
live only fedora
initrd http://${fog-ip}/bootimgs/fedora/images/pxeboot/initrd.img
chain http://${fog-ip}/bootimgs/fedora/images/pxeboot/vmlinuz initrd=initrd.img root=live:http://${fog-ip}/bootimgs/fedora/LiveOS/squashfs.img devfs=nomount ip=dhcp
boot || goto MENUlive and install fedora
initrd http://${fog-ip}/bootimgs/fedora/images/pxeboot/initrd.img
chain http://${fog-ip}/bootimgs/fedora/images/pxeboot/vmlinuz initrd=initrd.img root=live:http://${fog-ip}/bootimgs/fedora/LiveOS/squashfs.img rootfstype=auto ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0
boot || goto MENU -
@Wayne-Workman Here is an updated working centos boot code that works for using your own downloaded repo as well as the online repo.
I downloaded my own repo using command <wget -r -l 0 ./LOCAL-DIR WEBSITE-URL> in Ubuntu.
once downloaded
I then copied the repo from my home directory to the /bootimgs folder.
I then modified the boot code originally provided by @george1421 from:
:centos
initrd http://${fog-ip}/bootimgs/centos/images/pxeboot/initrd.img
chain http://${fog-ip}/bootimgs/centos/images/pxeboot/vmlinuz initrd=initrd.img method=http://${fog-ip}/bootimgs/centos/ devfs=nomount ip=dhcp
boot || goto MENUto
initrd http://${fog-ip}/bootimgs/centos/images/pxeboot/initrd.img
chain http://${fog-ip}/bootimgs/centos/images/pxeboot/vmlinuz initrd=initrd.img root=live:http://${fog-ip}/bootimgs/centos/LiveOS/squashfs.img ip=dhcp repo=http://192.168.1.109/bootimgs/centosrepo/mirror.nodeshosting.com/centos/7.2.1511/os/x86_64 splash quiet – || read void
boot || goto MENUthe end result is that now I have my own home repo that works even if my machine is not connected to the internet. I assume this is good for corporate or environments where the admin is not wanting to use much data from or restrict the net.
it also makes short work of the install time.
I hope this makes someone’s life a bit more easier