Назад | Перейти на главную страницу

Создание образов дисков с разделами от имени пользователя без полномочий root

Я пытаюсь создать образ диска как результат моей системы сборки (в настоящее время SCons). Создать образы дисков из структуры каталогов очень просто, например, с помощью genext2fs (http://genext2fs.sourceforge.net/).

Но я бы хотел создать образ, содержащий несколько разделов из нескольких каталогов. В настоящее время мне приходится делать это, склеивая dd, losetup, kpartx, монтировать и копируя файлы. Для этого требуется root-доступ.

Есть ли какой-нибудь удобный способ сделать это как пользователь без полномочий root? Есть ли какое-нибудь приложение, подходящее для включения в систему сборки, которое может эффективно выполнять эту задачу?

Ненавижу это говорить, но я не знаю легко способ сделать это.

Вполне вероятно, что вы могли бы заставить что-то работать, создав файл образа с помощью dd, затем разделив его с помощью fdisk, затем создав второй файл образа с помощью dd и отформатировав его напрямую (или используя что-то вроде genext2fs), а затем dd'ing второй файловой системы image в первый разделенный файл образа с правильным смещением. . . однако это будет сложно и сложно.

Боюсь, что я не знаю ни одного хорошего способа сделать это без корневого доступа.

В зависимости от того, почему вы хотите избежать корневого доступа, решением может быть sudo.

Напишите сценарий, который выполняет все необходимое для выполнения задачи, убедившись, что пользователи не могут злоупотреблять им с помощью «творческого» ввода, а затем предоставьте пользователю права sudo именно на этот сценарий и ни на что другое.

вы можете попробовать с mkisofs ...

mkisofs -l -iso-level 4 -o папка file.iso

Я не пробовал, а вы пробовали fakeroot? Он обычно используется в дистрибутивах на основе Debian для начальной загрузки начального набора файлов, необходимых для установки (или, в случае 64-битной системы, chroot с 32-битными файлами). Вы не сказали, какую ОС используете, fakeroot может не сработать.

Я видел, как эта проблема решается другим способом - используйте виртуальную машину в системе сборки. В виртуальной машине вы можете получить root-доступ, не нарушая работу ОС на вашей реальной машине сборки, вы можете сделать ее снимок, чтобы каждый раз, когда она включается, она находилась в одном и том же чистом состоянии.

Известны ли размеры различных создаваемых вами разделов?

Вы можете обойти проблему, создав шаблонный образ диска с разделами с известными байтовыми смещениями, а затем вставьте реальные файловые системы в этот образ, используя dd.

  1. https://serverfault.com/a/332114/100216;
  2. если ISO9660 в целом вас устраивает, см. также isohybrid script в дистрибутиве syslinux.