本文中安装黑群晖用到的硬件设备为暴风二期
虽然本文写的是群晖7.1,但是对于6.1、6.2,除了修改vid和pid时对应的文件内容不一样外,其他所有流程都是一致的
本文建立在读者已经有一定Linux基础的前提下,如何使用和退出vim
之类的问题不会涉及
一、准备工作
- 一个U盘
- 一台Linux电脑,有无桌面环境不重要,什么发行版不重要(虚拟机应该也行,但你需要知道如何把U盘直通给虚拟机里的系统)
- 引导文件下载,系统文件下载(链接: https://pan.baidu.com/s/1VnGkEPI8OujT6QqRa-d07A 提取码: h3nv)
- 搞明白U盘的英文品牌名和型号之类的信息(如:SanDisk、Kingston),这个不是必须的,但是弄明白这后面操作会方便很多
二、引导U盘制作
由于使用Linux做引导U盘全程是在命令行下操作,因此我下面的描述均为输入+输出的结构
1. 查看U盘的vid和pid
输入:lsusb
输出:
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 0bda:c821 Realtek Semiconductor Corp. Bluetooth Radio
Bus 001 Device 003: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 001 Device 006: ID 046a:00ca Cherry GmbH USB 2.0 Hub
Bus 001 Device 004: ID 17ef:6087 Lenovo
Bus 001 Device 007: ID 0781:5571 SanDisk Corp. Cruzer Fit
Bus 001 Device 002: ID 14cd:8601 Super Top 4-Port hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
找到自己的U盘,通过U盘的品牌和型号来确定哪个是U盘,我的U盘是闪迪的,因此通过“SanDisk Corp. Cruzer Fit”来确定这一行就是我U盘的信息,前面的是vid(0781),后面的是pid(5571)。
如果你不知道U盘品牌或者无法准确区分哪个是U盘,那么就先不插U盘执行lsusb
,把输出的内容记录下来,再插上U盘执行lsusb
,多出来的那一行就是你的U盘。
2. 查看U盘的设备号
输入:sudo fdisk -l
输出:
Disk /dev/loop0: 172.98 MiB, 181358592 bytes, 354216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sda: 238.49 GiB, 256060514304 bytes, 500118192 sectors
Disk model: SK 256GB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 12B4F1FC-CC46-40E7-9AE1-F476DB7C48A9
Device Start End Sectors Size Type
/dev/sda1 2048 1050623 1048576 512M EFI System
/dev/sda2 1050624 500117503 499066880 238G Linux filesystem
Disk /dev/sdb: 14.93 GiB, 16005464064 bytes, 31260672 sectors
Disk model: Cruzer Fit
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x724ec7ef
Device Boot Start End Sectors Size Id Type
/dev/sdb1 * 2048 31260671 31258624 14.9G c W95 FAT32 (LBA)
Disk代表硬盘,通过容量和Disk model判断哪个是U盘,我的是/dev/sdb
Device代表分区,如果有分区的话,记录下来,我的是/dev/sdb1
3.删除分区
如果通过上一步查询出来有分区,需要将分区删除
查看U盘是否挂载,输入df -h
输出:
df: /run/user/1000/doc: Operation not permitted
Filesystem Size Used Avail Use% Mounted on
udev 1.8G 0 1.8G 0% /dev
tmpfs 372M 2.1M 370M 1% /run
/dev/sda2 234G 50G 172G 23% /
tmpfs 1.9G 5.2M 1.9G 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 511M 3.4M 508M 1% /boot/efi
/dev/loop0 173M 173M 0 100% /run/wine
tmpfs 372M 20K 372M 1% /run/user/1000
/dev/sdb1 15G 254M 15G 2% /media/xxx/UNRAID
从上面找设备号/dev/sdb
后面带数字的,如果找到了,就是挂载了。我的就被自动挂载了,文件系统是/dev/sdb1
umount /dev/sdb1
准备删除
输入sudo fdisk /dev/sdb
输入d
如果只有一个分区,会直接删除,如果有多个分区会提示输入分区编号,每次输入一个,多次删除即可,最后输入w
进行保存
删除分区后,建议将U盘拔插一次,避免下一步出现莫名其妙的错误。
3. 写入img
开始写入,输入:
sudo dd if=/你的实际路径/xxx.img of=/dev/sdb bs=4M
等待写入完成,查看写入情况,输入:sudo fdisk -l
输出:
Disk /dev/sdb: 14.93 GiB, 16005464064 bytes, 31260672 sectors
Disk model: Cruzer Fit
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x1ef471e9
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 133119 131072 64M 83 Linux
/dev/sdb2 133120 319487 186368 91M 83 Linux
/dev/sdb3 319488 327679 8192 4M 83 Linux
可以看到Device部分,已经有3个分区了(有些时候是两个,不太清楚为什么),注意/dev/sdb1(64M那个),下一步要用到。
4. 修改vid、pid
挂载U盘,可能你的系统已经帮你自动挂载了,df -h
查看一下
Filesystem Size Used Avail Use% Mounted on
udev 1.8G 0 1.8G 0% /dev
tmpfs 372M 2.1M 370M 1% /run
/dev/sda2 234G 50G 172G 23% /
tmpfs 1.9G 5.2M 1.9G 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 511M 3.4M 508M 1% /boot/efi
/dev/loop0 173M 173M 0 100% /run/wine
overlay 234G 50G 172G 23% /var/lib/docker/overlay2/b220553329618635a1ec793d64e4d4214cd5fcfa6e25993e1c85825aaa8a3988/merged
overlay 234G 50G 172G 23% /var/lib/docker/overlay2/fb0c3316cac2ec0215f611b0c97317276cbdae84d08b7b6db5b162531666d63d/merged
overlay 234G 50G 172G 23% /var/lib/docker/overlay2/f2e3b093e08c6163858478d72378af8ab9069ee7378b98e5e8e89cc3e2aaec60/merged
tmpfs 372M 20K 372M 1% /run/user/1000
/dev/sdb1 63M 34M 30M 53% /media/liyang/436C-B718
/dev/sdb2 89M 10M 74M 12% /media/liyang/6e79e2b6-ad9a-4f16-a017-baf3a1bd2408
如果看到了设备号后面加数字,就说明已经挂载了,我的已经自动挂载了,因此我就不用挂载了,如果没有自动挂载,执行下面的命令手动挂载
输入:
mount /dev/sdb1 /mnt/sdb1
/mnt/sdb1不是固定的,随便写一个存在的文件夹地址就行。
看清楚/dev/sdb1
对应的挂载点,准备修改,输入
sudo vim /media/liyang/436C-B718/boot/grub/grub.cfg
群晖7.1的文件内容如下:(做了一部分简化)
# 删掉了一些没用的东西
menuentry 'RedPill DS3615xs v7.1.0-42661 (USB, Verbose)' {
savedefault
set root=(hd0,msdos1)
echo Loading Linux...
linux /zImage withefi earlyprintk syno_hw_version=DS3615xs console=ttyS0,115200n8 netif_num=1 pid=0x5571 earlycon=uart8250,io,0x3f8,115200n8 syno_port_thaw=1 mac1=001132DA580C sn=1740LWN008763 vid=0x0781 elevator=elevator loglevel=15 HddHotplug=0 DiskIdxMap=0002 syno_hdd_detect=0 vender_format_version=2 syno_hdd_powerup_seq=0 log_buf_len=32M root=/dev/md0 SataPortMap=22
echo Loading initramfs...
initrd /rd.gz /custom.gz
echo Starting kernel with USB boot
}
menuentry 'RedPill DS3615xs v7.1.0-42661 (SATA, Verbose)' {
savedefault
set root=(hd0,msdos1)
echo Loading Linux...
linux /zImage withefi earlyprintk syno_hw_version=DS3615xs console=ttyS0,115200n8 netif_num=1 pid=0x5571 earlycon=uart8250,io,0x3f8,115200n8 synoboot_satadom=1 syno_port_thaw=1 mac1=001132DA580C sn=1740LWN008763 vid=0x0781 elevator=elevator loglevel=15 HddHotplug=0 DiskIdxMap=0002 syno_hdd_detect=0 vender_format_version=2 syno_hdd_powerup_seq=0 log_buf_len=32M root=/dev/md0 SataPortMap=22
echo Loading initramfs...
initrd /rd.gz /custom.gz
echo Starting kernel with SATA boot
}
主要修改menuentry 'RedPill DS3615xs v7.1.0-42661 (USB, Verbose)'
和menuentry 'RedPill DS3615xs v7.1.0-42661 (SATA, Verbose)'
中的内容
分别修改两个代码段中的vid和pid,如果你有全白或半白的mac和sn,也可以一起改了。
修改DiskIdxMap= SataPortMap= SasIdxMap=参数,如何修改看这里
https://wp.gxnas.com/10940.html
如果你用的是6.1或6.2的引导,可以直接在此文件中搜一下vid和pid,一眼就能看到,非常明显。
至此,引导盘制作完成。
三、安装系统
不详细说了,网上有的是,做好引导盘后剩下的流程都是一样的。
- 将U盘插入黑群晖机器,开机
- 找到群晖IP
- 安装
这里有一个坑,如果你的硬盘之前装过群晖,那么很可能会提示你恢复系统,恢复的话就可能变成死循环,我的解决方法是将机身自带的SSD,插入的硬盘通过PE格式化一下。