我按照官方网站上的说明将 Kali Linux 安装为 Live USB:
sudo dd if=kali-linux-2022.4-live-amd64.iso of=/dev/sda bs=4M conv=fsync status=progress
当我启动 Kali Linux 时,我听到两声蜂鸣声。这是非常响亮的,我觉得这是不可接受的。起初我以为是我的硬件或驱动程序有问题。然而,事实证明 Kali Linux 默认情况下就是这样的(这是噩梦)。
然后我试图找出如何摆脱这种行为。我找到了注释掉/boot/grub/config.cfg
Live USB中两行的信息:
insmod play
play 960 440 1 0 0 4 440 1
然而,事实证明,在我的主系统上,Live USB 是以只读权限安装的,并且没有办法改变这一点。
然后我决定尝试更改原始 ISO 映像中的这些行。为此,我安装了该文件:
sudo mount -o loop kali-linux-2022.4-live-amd64.iso /media/iso
将 ISO 映像的全部内容复制到目录中:
cp -r /media/iso/ kali-linux
然后我修改了文件/boot/grub/config.cfg;更新校验和文件以防万一;重建 ISO 映像:
mkisofs -o kali-linux.iso kali-linux/
接下来,我再次将ISO镜像下载到U盘:
sudo dd if=kali-linux.iso of=/dev/sda bs=4M conv=fsync status=progress
但是,经过此类操作后,无法从闪存驱动器启动:它根本不在可启动列表中。
显然,我以某种方式错误地组装了 ISO 映像。请告诉我如何正确构建它。一般来说,也许您知道一种更简单的方法来消除这种声音?
PS 我在 Linux 下工作,想知道如何通过 CLI 解决我在 Linux 上的问题。所以我提前说 - 不建议使用 Rufus :)
答案1
快速而肮脏的方法……就是hexedit
这样!将其注释掉而不更改任何字节偏移量,即使其长度相同,例如更改play 960
为#### 960
。这种方法的唯一问题是,如果有人检查校验和/签名,它们将不再匹配。
原来的:
~ # mount -o loop kali-linux-2022.4-live-amd64.iso{,.loop}
~ # grep -C 1 play kali-linux-2022.4-live-amd64.iso.loop/boot/grub/config.cfg
# Comment these two lines out to disable the beep on boot
insmod play
play 960 440 1 0 4 440 1
hexedit 或 sed 或 awk 或其他:
~ # sed -e 's/insmod play/#nsmod play/' \
-e 's/play 960/#lay 960/' \
< kali-linux-2022.4-live-amd64.iso \
> kali-nobeep-linux-2022.4-live-amd64.iso
已修补:
~ # mount -o loop kali-nobeep-linux-2022.4-live-amd64.iso{,.loop}
~ # grep -C 1 play kali-nobeep-linux-2022.4-live-amd64.iso.loop/boot/grub/config.cfg
# Comment these two lines out to disable the beep on boot
#nsmod play
#lay 960 440 1 0 4 440 1
验证这是唯一的更改:
~ # cmp -l kali-linux-2022.4-live-amd64.iso kali-nobeep-linux-2022.4-live-amd64.iso
5153011 151 43
5153023 160 43
这不是一个很好的修补文件的方法,但有时它可以。