转载请注明出处
1. 制作IMAGE磁盘镜像
懒人专用可以直接看第六节
-
下载unraid 6.10.2开心版-恩山无线论坛 (right.com.cn),解压后,按照
config/go
文件里面的描述进行修改,修改后的内容如下# 需要硬盘启动把下面三行注释去掉,并把更下面行里的export FLASH_GUID行去掉,硬盘分区卷标命名为UNRAID modprobe dummy_hcd modprobe g_mass_storage file=/boot/config/usb idVendor=0x1d6b idProduct=0x0104 iManufacturer=SanDisk iProduct=Ultra iSerialNumber=A11FAF09DD45C4A8 export FLASH_GUID=1D6B-0104-A11F-AF09DD45C4A8 # FLASH_GUID替换成unraid管理界面里看到的U盘GUID,也可以在启动进unraid后,通过shell终端修改/boot/config/go文件后重启生效 # export FLASH_GUID=1D6B-0104-A11F-AF09DD45C4A8 export REG_NAME=muziling LD_PRELOAD=/boot/config/BTRS.key /usr/local/sbin/emhttp &
-
将修改后的UNRAID的启动文件上传到PVE上,这里是以
/home./work
为例,将UNRAID上传到该目录下feng@pve:~/work/UNRAID$ ls bzfirmware bzfirmware.sha256 bzImage bzimage.sha256 bzmodules bzmodules.sha256 bzroot bzroot-gui bzroot-gui.sha256 bzroot.sha256 changes.txt config EFI license.txt make_bootable.bat make_bootable_linux make_bootable_mac memtest syslinux
-
用
dd
制作一个空的img镜像文件,并且格式为Fat32格式-
制作img镜像文件
feng@pve:~/work$ dd if=/dev/zero of=UNRAID.img bs=1M count=4096 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.611998 s, 1.8 GB/s
- 创建的img的大小可以根据需要更改,4096即4个G,也可以在创建完成虚拟机后再去更改大小
-
设置分区表为GPT并分区
root@pve:~/work# fdisk UNRAID.img Welcome to fdisk (util-linux 2.36.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0xc08265bd. Command (m for help): g Created a new GPT disklabel (GUID: 1AAE89AD-C608-574F-8EE7-4268C3719098). Command (m for help): n Partition number (1-128, default 1): First sector (2048-8388574, default 2048): Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-8388574, default 8388574): Created a new partition 1 of type 'Linux filesystem' and of size 4 GiB. Command (m for help): w The partition table has been altered. Syncing disks.
-
使用kpartx挂载虚拟机磁盘分区
root@pve:~/work# losetup /dev/loop0 UNRAID.img root@pve:~/work# kpartx -av /dev/loop0 add map loop0p1 (253:2): 0 8386527 linear 7:0 2048
-
格式化为Fat32格式
root@pve:~/work# mkfs.vfat -F 32 /dev/mapper/loop0p1 mkfs.fat 4.2 (2021-01-31)
-
-
在
/mnt
下新建UNRAID文件夹,并且分区/dev/mapper/loop0n1,挂载到/mnt/UNRAID
目录下,然后把上传的UNRAID安装文件复制到/mnt/UNRAID
目录下-
新建 /mnt/UNRAID 文件夹
feng@pve:~/work$ sudo rm -rf /mnt/UNRAID && sudo mkdir /mnt/UNRAID
-
挂载/dev/mapper/loop0n1到/mnt/UNRAID
root@pve:~/work# mount /dev/mapper/loop0p1 /mnt/UNRAID/
-
复制UNRAID的安装文件到/mnt/UNRAID
root@pve:~/work# cp -rf UNRAID/* /mnt/UNRAID/
-
最后
/mnt/UNRAID
的目录结构如下feng@pve:~/work$ ls /mnt/UNRAID/ bzfirmware bzfirmware.sha256 bzImage bzimage.sha256 bzmodules bzmodules.sha256 bzroot bzroot-gui bzroot-gui.sha256 bzroot.sha256 changes.txt config EFI license.txt make_bootable.bat make_bootable_linux make_bootable_mac memtest syslinux
-
-
卸载设备
root@pve:~/work# umount /mnt/UNRAID/ root@pve:~/work# kpartx -dv /dev/loop0 del devmap : loop0p1 root@pve:~/work# losetup -d /dev/loop0
-
将最后修改好的UNRAID.img文件复制到
/var/lib/vz/images
文件夹(不移动也行,为了local中方便看到,还是移动吧)feng@pve:~/work$ sudo cp UNRAID.img /var/lib/vz/template/iso/
2. 创建虚拟机
- General根据需要选择即可,点击NEXT
- 选择Do not user any media,点击NEXT
- System中Machine选择q35,BIOS选择OVMF(UEFI)
- 磁盘界面全部删除
- CPU根据需要设置,Type记得选host即可
- 内存也根据需要设置
- 网络Bridge选择PVE管理对应的口,最后创建
3. 创建虚拟机磁盘
-
方式1:使用importdisk导入
-
将img镜像导入为虚拟机磁盘
feng@pve:~/work$ sudo qm importdisk 101 /var/lib/vz/template/iso/UNRAID.img local
- 其中101 为创建虚拟机的id,根据需要修改
- local为虚拟机的位置,根据需要选择local还是local-lvm,这里因为删除了ThinPoolLV所以选的local
-
修改虚拟机的lable为
UNRAID
(UNRAID要判断磁盘的标签)feng@pve:~/work$ sudo dosfslabel /var/lib/vz/images/101/vm-101-disk-0.raw UNRAID feng@pve:~/work$ sudo dosfslabel /var/lib/vz/images/101/vm-101-disk-0.raw UNRAID
- /var/lib/vz/images/101/vm-101-disk-0.raw 为刚刚导入虚拟机磁盘的位置,/var/lib/vz/images/为存放虚拟机的文件,101虚拟机的标识号,vm-101-disk-0.raw为importdisk导入的时候硬盘的名字
- 修改完后,使用
dosfslabel
可以查看修改的磁盘的label
扩容创建的创建的磁盘
来到虚拟机界面,找到刚刚导入的虚拟机磁盘,点击编辑,将Bus/Devices修改为Sata,点击add
-
-
方式2:创建一个虚拟磁盘然后写入
-
首先判断是否安装qemu-nbd,如果没有安装,则安装qemu-utils
-
判断是否安装
qemu-nbd --version
-
安装软件包 qemu-utils
apt-get install qemu-utils
-
开启nbd(不开启没有nbd的设备)
modprobe nbd max_part=4
-
-
为虚拟机创建一个磁盘,选中创建的虚拟机,点击Hardware>add>Hard Disk,如果使用的是SSD,可以勾选SSD emulation
image.png -
挂载创建的磁盘
如果创建虚拟机的时候,虚拟机硬盘选择放在的了local-lvm,则不需要挂载,他会默认挂载在/dev/mapper下面,可以跳过此步骤,不过后续命令中注意将写入的设备从/dev/nbd0换成/dev/mapper下对应的设备
-
查看可用的nbd设备
feng@pve:~/work$ ls /dev/nbd* /dev/nbd0 /dev/nbd1 /dev/nbd10 /dev/nbd11 /dev/nbd12 /dev/nbd13 /dev/nbd14 /dev/nbd15 /dev/nbd2 /dev/nbd3 /dev/nbd4 /dev/nbd5 /dev/nbd6 /dev/nbd7 /dev/nbd8 /dev/nbd9
-
先挂载硬盘到nbd设备上,这里用的是nbd0,可以根据自己的需要进行更改
feng@pve:~/work$ sudo qemu-nbd -c /dev/nbd0 /var/lib/vz/images/103/vm-103-disk-0.qcow2
-
-
挂载好的虚硬盘有两种方式将UNRAID安装文件写入
-
方式1:使用IMG镜像写入
-
使用dd命令将URAID.img写入到挂载的设备里
root@pve:~# dd if=/var/lib/vz/template/UNRAID.img of=/dev/nbd0
-
查看写入的后的结果
root@pve:~# mount /dev/nbd0 /mnt/UNRAID/ root@pve:~# ls /mnt/UNRAID/ bzfirmware bzfirmware.sha256 bzImage bzimage.sha256 bzmodules bzmodules.sha256 bzroot bzroot-gui bzroot-gui.sha256 bzroot.sha256 changes.txt config EFI license.txt make_bootable.bat make_bootable_linux make_bootable_mac memtest syslinux
-
-
方式2:格式化后挂载
-
然后格式化设备格式,注意这里仍然只能选择vfat,否则无法启动
feng@pve:~/work$ sudo mkfs.vfat -F 32 /dev/nbd0 mkfs.fat 4.2 (2021-01-31)
-
挂载格式化后的硬盘
feng@pve:~/work$ sudo mount /dev/nbd0 /mnt/UNRAID/
-
将UNRAID的内容复制进去
feng@pve:~/work$ sudo cp -rf UNRAID/* /mnt/UNRAID/ feng@pve:~/work$ ls /mnt/UNRAID/ bzfirmware bzfirmware.sha256 bzImage bzimage.sha256 bzmodules bzmodules.sha256 bzroot bzroot-gui bzroot-gui.sha256 bzroot.sha256 changes.txt config EFI license.txt make_bootable.bat make_bootable_linux make_bootable_mac memtest syslinux
-
-
-
设置磁盘的label
feng@pve:~/work$ sudo dosfslabel /dev/nbd0 UNRAID feng@pve:~/work$ sudo dosfslabel /dev/nbd0 UNRAID
-
卸载设备:
feng@pve:~/work$ sudo umount /mnt/UNRAID feng@pve:~/work$ sudo qemu-nbd -d /dev/nbd0
-
4. 启动URAID
-
方式1:使用plopkexec启动
-
到PlopKexec - Download下载plopKexec,然后解压,找到里面的ISO文件,在PVE点击local>ISO Images,选择上传,如果没有删除local-lvm也可以上传到local-lvm,哪里空间足,上传到哪
image.png -
找到刚刚创建的虚拟机,注意使用plopKexec启动的时候,只能使用BIOS模式启动(不知道plopKexec是否有efi启动方式-_-),所以需要将BIOS改成SEASBIOS
image.png 点击Hardware>Add,添加一个CD/DVD磁盘驱动器,找到刚刚上传的plopKexec文件,点击确定
-
- 点击Options>Boot Order修改启动顺序,取消net,然后将plopKexec调到第一个,UNRAID的安装盘为第二个,取消net启动
设置完成后点击启动,即可
-
方式2:使用UEFI启动
-
将BIOS设置为OVMF,然后点击启动即可
image.png -
启动界面
image.png 启动完成
-
5. 参考文档及资源
-
参考文档
-
资源
- 懒人专用启动盘,提取码:jrkx
6. 懒人专用:使用上面的虚拟磁盘文件直接启动
-
按照上面的流程,创建一台不带硬盘的虚拟机,点击Hardware->Add->Hard Disk,随便建立一个硬盘
-
选中硬盘点击Detech
image.png 将下载的可启动硬盘文件上传到PVE,假设地址为
/root/
,将其名字修改上面创建的虚拟硬盘的名字,比如这里为vm-104-disk-0
,所以最后虚拟硬盘的名字为vm-104-disk-0.qcow2
-
将修改号名字的文件替换掉刚刚创建的虚拟机的磁盘文件,比如虚拟机的id为104,则执行
root@pve:~# rm -f /var/lib/vz/images/104/* root@pve:~# cp vm-104-disk-0.qcow2 /var/lib/vz/images/104/
-
点击然后重新双击刚刚Detech的虚拟机硬盘,进行配置
image.png 调整虚拟机的Boot Order以及Bios为OVMF即可启动
-
7. 变更日志
- 2022/6/27 创建
- 2022/6/28 由于不分区会导致启动盘的容量太小,所以增加创建img镜像时同步创建分区,不分区直接写入仍然可行