用IPXE启动个Ubuntu桌面

有了上篇IPXE的启动方法,我们来启动一个Ubuntu来玩:

简单的修改boot2.php即可:

 1  case '\ec:f4:bb:d9:96:40':
 2    $ip="172.16.36.2:172.16.37.254:255.255.254.0:myhost-16-36-2";
 3    $ipa=explode(':',$ip);
 4    echo "ifopen net0\n";
 5    echo "set net0/ip $ipa[0]\n";
 6    echo "set net0/netmask $ipa[2]\n";
 7    echo "set net0/gateway $ipa[1]\n";
 8    echo "set net0/dns $dns\n";
 9    echo "kernel http://172.16.8.1/ks/ubuntu/vmlinuz.efi root=/dev/nfs boot=casper netboot=nfs nfsroot=172.16.11.6:/root/ubuntu ip=172.16.36.2::172.16.37.254:255.255.254.0:renhe-16-36-2:eno1 ro\n";
10    echo "initrd http://172.16.8.1/ks/ubuntu/initrd.lz\n";
11    echo "boot\n";
12    break;

注意:变的就是kernelinit那两行,netboot支持nfs和cifs,不支持http啊,试了半天!另外ip那一行,如果是动态的,ip=dhcp,如果是静态的,格式如下:

ip=客户端ip:服务器端ip:网关:掩码:主机名:网卡

服务器端ip不填,主机名也可以不填。

首先我们要去下个ISO

1wget http://mirrors.163.com/ubuntu-releases/16.04/ubuntu-16.04-desktop-amd64.iso  

然后把vmlinuz.efi和initrd.lz弄出来,放到[http://172.16.8.1/ks/ubuntu ]目录下

1mount -o loop ubuntu-16.04-desktop-amd64.iso /mnt/iso  
2cp /mnt/iso/casper/vmlinuz.efi /var/www/html/ks/ubuntu  
3cp /mnt/iso/casper/initrd.lz /var/www/html/ks/ubuntu  

然后建立nfs,把iso里的东西都弄到nfs共享里去:

1mkdir -p /export/ubuntu  
2vi /etc/exports  
3/export/ubuntu *(rw,sync,no_subtree_check,fsid=0,no_root_squash)
4
5yum install -y nfs-utils rpcbind  
6service nfs start  

ok,启动pxe,就看到桌面了。 image-20240118135302316


IPXE Kickstart安装CentOS的方法
IPXE远程运行sysrecuecd系统
comments powered by Disqus