Eu construí uma distribuição Linux doméstica e posso criar o arquivo de imagem de disco completo como um usuário não raiz com uma exceção - instalar o carregador de inicialização. Estou usando o syslinux (na verdade extlinux), e para instalá-lo, tenho que montar em loopback a partição de inicialização, o que requer privilégios de root / sudo. Os comandos são executados a partir de um makefile e os nomes das variáveis devem indicar claramente com o que substituí-los.
sudo losetup -o $(BOOT_FS_PARTITION_OFFSET) $(LOOP_DEVICE) $(IMAGE_FILE_NAME)
sudo mount $(LOOP_DEVICE) $(LOOP_MOUNT_POINT)
sudo $(EXTLINUX) -S $(DISK_SECTORS) -H $(DISK_HEADS) -i $(LOOP_MOUNT_POINT)
sudo umount $(LOOP_MOUNT_POINT)
sudo losetup -d $(LOOP_DEVICE)
Existe uma maneira de gravar syslinux ou extlinux no arquivo de imagem de disco sem exigir privilégios de root?