Clonezilla自动部署脚本报错:无法找到目标硬盘求助
问题分析与修改方案
错误原因分析
- 脚本硬编码了目标磁盘设备名
mmcblk0,这是eMMC/SD卡类存储的命名,但手动恢复正常说明部署机器的磁盘设备名并非该值(比如SATA硬盘通常是sda,NVMe硬盘是nvme0n1),导致Clonezilla无法定位指定目标盘。 - 额外干扰项:
ocs_live_batch="no"会触发Clonezilla进入交互模式,与自动部署的需求冲突,可能加剧流程异常。
修改方案
方案1:动态识别目标磁盘(推荐,适配多硬件)
修改ocs_live_run中的目标磁盘部分,用命令自动获取系统中唯一的非可移动磁盘,避免硬编码设备名:
ocs_live_run="ocs-sr -e1 auto -e2 -batch -r -j2 -scr -p poweroff restoredisk Image/ \$(lsblk -dno NAME --exclude 7,11 | head -n1)"
解释:
lsblk -dno NAME --exclude 7,11:列出所有非循环虚拟设备、非光驱的物理磁盘名head -n1:取第一个磁盘(对应Clonezilla手动模式默认选择的目标盘,适合单磁盘机器)
方案2:硬编码正确设备名(适合固定硬件环境)
- 手动进入Clonezilla环境,执行
lsblk查看目标磁盘的正确设备名(比如sda、nvme0n1) - 将脚本中
ocs_live_run里的mmcblk0替换为实际设备名,示例:
ocs_live_run="ocs-sr -e1 auto -e2 -batch -r -j2 -scr -p poweroff restoredisk Image/ sda"
额外优化:开启全自动批量模式
将ocs_live_batch="no"改为ocs_live_batch="yes",确保Clonezilla全程自动执行,不弹出交互确认:
ocs_live_batch="yes"
完整修改后的脚本
# set prefix=/boot/grub/ set default="0" set timeout="5" set hidden_timeout_quiet=false if loadfont $prefix/unicode.pf2; then set gfxmode=auto insmod efi_gop insmod efi_uga insmod gfxterm terminal_output gfxterm fi if background_image $prefix/logo-jpik.png; then set color_normal=black/black set color_highlight=red/black else set color_normal=cyan/blue set color_highlight=white/blue fi menuentry "Apply Software Image from Pendrive"{ search --set -f /live/vmlinuz linux /live/vmlinuz boot=live union=overlay username=user hostname=JPSC config components quiet noswap edd=on nomodeset nodmraid noeject locales=en_US.UTF-8 keyboard-layouts=pt vga=791 ip= nosplash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.enable_fbdev=1 ocs_live_batch="yes" ocs_prerun="ln -s /lib/live/mount/medium/Image/ /home/partimag/" ocs_live_run="ocs-sr -e1 auto -e2 -batch -r -j2 -scr -p poweroff restoredisk Image/ \$(lsblk -dno NAME --exclude 7,11 | head -n1)" ocs_live_extra_param="" echo "Loading Clonezilla..." initrd /live/initrd.img }
内容的提问来源于stack exchange,提问作者tmighty
相关产品推荐
相关产品推荐

