1

У меня есть образ, который я хочу смонтировать только для чтения.

Я знаю, как это сделать: losetup -r /dev/loop0 /path/to/image

Но проблема в том, что любая попытка записи на это устройство приведет к ошибке, что устройство доступно только для чтения. То, что я хочу иметь, - это поведение, которое выполняют многие криминалистические блокировщики записи, когда устройство будет "лежать" о том, что диск доступен для записи, и ложно подтверждать любую команду записи (сообщить процессу записи, что он был успешным), даже если команда записи никогда не достигнет диска или файла образа.

Как это можно сделать?

Например, в настоящее время результат:

root@server-desktop:~# losetup /dev/loop1 imagefile
root@server-desktop:~# echo haha > /dev/loop1
root@server-desktop:~# losetup -d /dev/loop1
root@server-desktop:~# cat imagefile
haha
root@server-desktop:~# losetup -r /dev/loop1 imagefile
root@server-desktop:~# echo whatnow > /dev/loop1
-bash: echo: write error: Operation not permitted
root@server-desktop:~# losetup -d /dev/loop1
root@server-desktop:~# cat imagefile
haha
root@server-desktop:~#

Результат хотел:

root@server-desktop:~# losetup /dev/loop1 imagefile
root@server-desktop:~# echo haha > /dev/loop1
root@server-desktop:~# losetup -d /dev/loop1
root@server-desktop:~# cat imagefile
haha
root@server-desktop:~# losetup -r /dev/loop1 imagefile
root@server-desktop:~# echo whatnow > /dev/loop1
root@server-desktop:~# losetup -d /dev/loop1
root@server-desktop:~# cat imagefile
haha
root@server-desktop:~#

Обратите внимание, что вторая команда "echo whatnow" должна возвращать успех, даже если она только для чтения. Как это можно сделать? ПРИМЕЧАНИЕ: это НЕ о подавлении каких-либо сообщений об ошибках! Это действительно должно вернуть "успех" процессу записи, так как я буду использовать это устройство цикла вместе с ietd (цель iSCSI Enterprise).

Обратите внимание, что команда (losttup -r) не обязательно должна быть потерянной -r, это может быть другая команда или процесс. Основная цель заключается в том, чтобы из файла образа создавалось блочное устройство только для чтения, которое будет принимать и игнорировать любые записи. (вместо отказа от записи)

0