Estou tentando executar o script rpi-image-creator (consulte link )
e encontrar algum problema com o uso do kpartx.
O problema parece ocorrer na função '_open_image'. Aqui está o código:
function _open_image {
echo "Loop-back mounting" temp/*.img
kpartx="$(kpartx -av temp/*.img)" || die "Could not setup loop-back access to $RASPBIAN_ARCHIVE_FILE:$NL$kpartx"
read img_boot_dev img_root_dev <<<$(grep -o 'loop.p.' <<<"$kpartx")
test "$img_boot_dev" -a "$img_root_dev" || die "Could not extract boot and root loop device from kpartx output:$NL$kpartx"
img_boot_dev=/dev/mapper/$img_boot_dev
img_root_dev=/dev/mapper/$img_root_dev
mkdir -p mnt/img_root
mount -t ext4 $img_root_dev mnt/img_root || die "Could not mount $img_root_dev mnt/img_root"
mkdir -p mnt/img_root/boot || die "Could not mkdir mnt/img_root/boot"
mount -t vfat $img_boot_dev mnt/img_root/boot || die "Could not mount $img_boot_dev mnt/img_root/boot"
cp -a "$(type -p qemu-arm-static)" mnt/img_root/usr/bin/ || die "Could not copy qemu-arm-static"
echo "Raspbian Image Details:"
df -h mnt/img_root/boot mnt/img_root | sed -e "s#$(pwd)/##"
}
Executando o script (no meu caso com --chroot) eu obtenho o seguinte erro:
mount: special device /dev/mapper/loop0p2 does not exist
ERROR: Could not mount /dev/mapper/loop0p2 mnt/img_root
Eu adicionei uma linha de monitoração logo antes do comando mount, listando o conteúdo de / dev / mapper, e isso realmente mostra que 'loop0p1' e 'loop0p2' não existem, implicando que algo deve ter dado errado ao chamar kpartx anteriormente. Ao mesmo tempo, no entanto, as variáveis parecem receber os nomes corretos dos dispositivos de loop.
Por estranho que pareça, executar o 'kpartx -a temp / *. img' manualmente antes de chamar o script parece funcionar. E depois que o script sai com o erro acima, os dispositivos de loop de repente existem onde deveriam estar.
Supondo que o script não tenha um bug, acho que deve haver algo estranho acontecendo no meu sistema. O que está errado e como faço para corrigir isso?
(Rodando isto em um Debian Jessie com kernel 3.16.0-4-amd64, kpartx versão 0.5.0-6 + deb8u1, bash 4.3.30 (1) -release com um vazio .bashrc)