前言:
今天各位老铁们对“winpeubuntu”大约比较关切,咱们都需要剖析一些“winpeubuntu”的相关资讯。那么小编也在网上汇集了一些关于“winpeubuntu””的相关资讯,希望同学们能喜欢,姐妹们快快来了解一下吧!有两种办法:
一种是MS的 这个我是最后才发现的,没有试。
另外一种是常见的基于Linux的。下面的是基于Linux的。
1.安装软件包
sudo apt-get install dnsmasq pxelinux syslinux-efi
如果失败了,多试几回。
2.创建所需要的目录
sudo mkdir /mnt/data/netboot/{bios,efi64}
3.拷贝文件
memdisk
sudo cp /usr/lib/syslinux/memdisk /mnt/data/netboot/
for BIOS boot:
cd /mnt/data/netboot/bios
sudo cp /usr/lib/PXELINUX/pxelinux.0 ./
sudo cp /usr/lib/syslinux/modules/bios/{ldlinux,vesamenu,libcom32,libutil}.c32 ./
for UEFI 目前没有成功,在下载WINPE ISO后就重启了。
cd /mnt/data/netboot/efi64
sudo cp /usr/lib/SYSLINUX.EFI/efi64/syslinux.efi ./
sudo cp /usr/lib/syslinux/modules/efi64/ldlinux.e64 ./
sudo cp /usr/lib/syslinux/modules/efi64/{vesamenu,libcom32,libutil}.c32 ./
4.pxelinux.cfg
#link bios and efi64's menu configuraiton dir to the same dir.
sudo mkdir /mnt/data/netboot/pxelinux.cfg
cd /mnt/data/netboot/
sudo ln -rs pxelinux.cfg bios
sudo ln -rs pxelinux.cfg efi64
5. pxelinux.cfg/default
sudo mousepad /mnt/data/netboot/pxelinux.cfg/default
下面是default的内容, ::表示这是tftp的根目录
UI vesamenu.c32
label 1
menu label ^1) install windows
KERNEL ::memdisk
INITRD ::boot/win10/winpe_win10_amd64.iso
APPEND iso raw
6.配置dnsmasq
raspberry pi的地址也要是192.168.1.x 要不然在PXE boot时会有找不到boot server的错误
sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
可以把下面的直接拷到/etc/dnsmasq.conf
port=0 //disable DNS
interface=eth0
dhcp-range=192.168.1.0,proxy //192.168.1.0 is submask
enable-tftp
tftp-root=/mnt/data/netboot
pxe-service=x86PC, "PXELINUX BIOS",bios/pxelinux
log-queries
log-facility=/var/log/dnsmasq.log
如果是用UEFI可以改成:
pxe-service=x86PC, "PXELINUX BIOS",efi64/syslinux.efi 但是我的在最后加载winpe iso重启了,没有成功。
完成了上面的1-5,就实现了PXE Boot Server。根据windows和Linux的不同,需要准备不同的文件,然后把它们放到/mnt/data/netboot/boot/win10 or /mnt/data/netboot/boot/ubuntu这些对应的目录中。然后就可以在pxelinux.cfg/default中添加label.
如果是windows,可以用windows ADK工具生成winpe_win10_amd64.iso
下载并安装 Windows ADK
下载适用于 Windows 10 版本 2004 的 Windows ADK
下载适用于 ADK 版本 2004 的 Windows PE 加载项
安装后,就可以Create bootable WinPE media
Start theDeployment and Imaging Tools Environmentas an administrator.
copype amd64 C:\WinPE_amd64
用dism工具修改wim。加上一些自动运行的脚本。也可以不修改。
MakeWinPEMedia /ISO C:\WinPE_amd64 C:\WinPE_amd64\WinPE_amd64.iso
用 ubuntu or Raspberry PI 的samba创建共享目录。
sudo mousepad /etc/samba/smb.conf
在最底部加上下面的内容:
[image]
path=/mnt/data/image 这是我用来放window c盘的wim镜像的。
valid users = pi, root
read only =yes
write list = root
遇到的问题:
1.Winpe中访问共享目录
net use z: \\192.168.1.100\image 这个访问Raspberry Pi会成功,但如果换成ubuntu的就会有58 error
对于ubuntu,需要指定domain\user:原因可能是系统中的user属于不同的domain.
net use z: \\192.168.1.100\share /user:WORKGROUP\username *
2. windows系统的capture和deploy
可以用dism工具去capture C盘,然后重做系统。
1) capture
boot到winpe,在用net use z: \\xxxxx 建立映射网络共享目录到z:后,可以直接capture
本机的C盘到网络上的共享目录
DISM /Capture-Image /ImageFile:Z:\mydrivec.wim /CaptureDir:C:\ /Name:"Windows"
这样就得到机器的C盘的镜像。
2)deploy
准备一个diskpart.txt分区文件,可参见上面的微软文档。
select disk 0
clean
convert gpt
....
用diskpart对当前机器的硬盘重新分区。
diskpart /s diskpart.txt
然后就可以把mydrivec.wim deploy到C盘。这个的速度取决于你的共享目录的速度。
我的网络是千兆的交换机和网线。
在RaspberryPI 3B+ (90M读取速度的micro SD)上用了8分多钟才deploy了5G的mydrivec.wim。
用虚拟机中的ubuntu的话,用了5分钟。
DISM /apply-image /imagefile:Z:\mydrivec.wim /index:1 /ApplyDir:C:\
写入启动信息,不然不能windows不能正常启动。
bcdboot c:\windows /s I: /f UEFI
I是你的efi分区的letter.
参考:
beta-tester/RPi-PXE-Server 这个好像有一个支持很多操作系统的*.sh.
扩展:
无盘启动Raspberry PI. Network boot your Raspberry Pi
Network boot your Raspberry Pi
标签: #winpeubuntu