не может смонтировать .img файл - “не каталог” ошибка

Из страницы справочника:

- ЦИФРА, - after-context=NUM
Распечатайте ЦИФРОВЫЕ строки запаздывающего контекста после согласующих отрезков длинной линии. Помещает строку, содержащую разделитель группы (-) между непрерывными группами соответствий. С-o или - только соответствующая опция, это не имеет никакого эффекта, и предупреждение дано.

Во всех примерах Вы даете, каждый экземпляр userX сопровождается корректным количеством строк контекста. В случаях, где другой экземпляр userX происходит в контексте другого, контекст расширяется на однако много строк после второго экземпляра.

1
15.04.2013, 03:30
3 ответа

Это - довольно старая версия Minix.

Существует страница Google Groups, которая имеет Ваш ответ на нем. Заключение в кавычки от той статьи:

В minix203.img существует все изображение высокой четкости включая таблицу разделов. То, что монтируется, находит, вначале не первый раздел, но таблица разделов. И таким образом монтируя сбои.

Я полагаю, что то же самое верно для более нового Minix 3 ISO-образа, также. Существует немного крошечной файловой системы Joliet и большая файловая система Minix, о которой знает установщик. Таким образом, Вы не можете только смонтировать ISO-образ (обратная петля) и посмотреть на вещи.

0
27.01.2020, 23:54

Я предполагаю, что это верно, что Bruce сказал - что это содержит целую таблицу разделов. Затем нет ничего неприменимого в этом. Для следующей команды Вам нужно util-linux в версии 2.21 или выше.

sudo losetup --find --show -P minix203.img

Это должно подключить Ваше изображение к устройству закольцовывания и показать Вам, к какому циклическому устройству изображение присоединено (например. /dev/loop0). Принятие этого, fdisk -l /dev/loop0 должен показать Вам таблицу разделов и имена устройств для Вас, чтобы смочь смонтировать их. Таким образом, Вы закончите с чем-то как:

sudo mount /dev/loop0p1 -t minix /mnt/myminix

Должен работать. Отметьте это loop опции не стало, losetup заботится о той части.

Однако, если Вы, оказывается, не имеете util-linux пакет в правильной версии, можно сделать это вручную использование fdisk и losetup (или лучше - устанавливают пакет из внешнего источника). Необходимо будет просто сделать некоторые вычисления в этом случае. Первая вещь состоит в том, чтобы присоединить изображение целого диска:

sudo losetup --find --show part.img

Это должно сказать Вам имя устройства - давайте предположим, что это /dev/loop0. Затем попробуйте fdisk -l на нем для получения расположения раздела:

fdisk -l /dev/loop0

Для моего файла я произвожусь как это:

Disk /dev/loop0: 67 MB, 67108864 bytes, 131072 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x2645940b

      Device Boot      Start         End      Blocks   Id  System
/dev/loop0p1            2048       63487       30720   83  Linux
/dev/loop0p2           63488      131071       33792   83  Linux

Не становитесь обманутыми, они не могли бы быть существующими именами устройств. Необходимо будет определить, какой раздел делают Вы хотите смонтировать использование этой таблицы. Размер или тип файловой системы должны позволить Вам сделать некоторые предположения.

Теперь это - время вычисления - Вам будет нужно смещение Вашего раздела, и это - размер. Вы получаете это путем умножения размеров сектора на размер единицы, для получения результата в байтах. Вы видите fdisk говорит мне, что мой размер сектора составляет 512 байтов, поэтому если я хочу смонтироваться /dev/loop0p1, это запускается в (2048 * 512)-th байт. Это - смещение, и это равно 1048576 (в случае того примера, конечно).

Размер в секторах end_sector_number - start_sector_number + 1, потому что эти числа являются содержащими (сектор конца в том размере). Здесь это равняется 61 440 секторам == 31 457 280 байтов. Это - то, в чем мы нуждались.

Можно отсоединить устройство закольцовывания теперь и повторно прикрепить его ограничение, это - ограничения размера к конкретному разделу, который требуется смонтировать (substite те числа с собственным):

sudo loopback -d /dev/loop0
sudo loopback -f --show -o 1048576 --sizelimit 31457280 part.img

Это, вероятно, присоединит его к /dev/loop0, который можно теперь безопасно смонтировать:

mount -t minix /dev/loop0 /mnt/myminix

Это должно быть почти полностью операционным, за исключением вещей, которые обычно влияли бы на MBR целого диска (как форматирование с mkfs).

Как это работает?

Таблица разделов MBR имеет простой макет - существует 512 байтов описания сначала, где разделы запускаются, где они заканчивают, и затем идет данные. С расширенными разделами это могло бы быть немного более трудно. Можно установить пределы к разделу вручную, и это отчасти, что ядро делает для Вас на своем собственном для Ваших обычных жестких дисков.

1
27.01.2020, 23:54
  • 1
    я добираюсь: losetup: invalid option -- 'P' –  infoholic_anonymous 15.04.2013, 04:32
  • 2
    Попытайтесь установить loop-aes-utils пакет. –  TNW 15.04.2013, 04:57
  • 3
    losetup: invalid option -- '-', теперь это не понимает ни одной из опций если:/ –  infoholic_anonymous 15.04.2013, 11:27
  • 4
    @infoholic_anonymous, я провел немного исследования, кажется что пакет, содержащий право losetup версия util-linux> = 2.21. Ваша Ubuntu не содержит это, таким образом, я пересмотрю свой основной ответ о том, как сделать это вручную. Я думаю, что можно удалить тот предыдущий пакет sudo apt-get purge loop-aes-utils. –  TNW 15.04.2013, 15:24
  • 5
    спасибо. Я использовал новый пакет, и теперь я добираюсь mount: wrong fs type, bad option, bad superblock on /dev/loop2, missing codepage or helper program, or other error. файл .img - то, хотя хорошо, я выполняю его на bochs с .bochsrc файлом, данным мне. Я должен отправить его, это помогло бы предположить надлежащие настройки? положительная сторона –  infoholic_anonymous 15.04.2013, 18:38

Я уже говорил, что мне нравятся квалификаторы zsh ?

files_in_var_not_owned_by_me_or_root=(/var/**/*(^u0u$UID))
echo $#files_in_var_not_owned_by_me_or_root

typeset -U owners_of_files_in_var
zstat -s -A owners_of_files_in_var +uid -- $files_in_var_not_owned_by_me_or_root
echo $#owners_of_files_in_var

i=1
for x in ${(o)owners_of_files_in_var}; do
  printf '%4d  %s\n' $((i++)) $x
done
-121--255357-

Здесь - это wiki для настройки правил polkit для udisks2 , чтобы монтировать разделы по некорневой (например, для пользователей) группе.

Сохраните код ниже в /etc/polkit-1/rules.d/50-udisks.rules

polkit.addRule(function(action, subject) {
  var YES = polkit.Result.YES;
  var permission = {
    // only required for udisks1:
    "org.freedesktop.udisks.filesystem-mount": YES,
    "org.freedesktop.udisks.filesystem-mount-system-internal": YES,
    "org.freedesktop.udisks.luks-unlock": YES,
    "org.freedesktop.udisks.drive-eject": YES,
    "org.freedesktop.udisks.drive-detach": YES,
    // only required for udisks2:
    "org.freedesktop.udisks2.filesystem-mount": YES,
    "org.freedesktop.udisks2.filesystem-mount-system": YES,
    "org.freedesktop.udisks2.encrypted-unlock": YES,
    "org.freedesktop.udisks2.eject-media": YES,
    "org.freedesktop.udisks2.power-off-drive": YES,
    // required for udisks2 if using udiskie from another seat (e.g. systemd):
    "org.freedesktop.udisks2.filesystem-mount-other-seat": YES,
    "org.freedesktop.udisks2.encrypted-unlock-other-seat": YES,
    "org.freedesktop.udisks2.eject-media-other-seat": YES,
    "org.freedesktop.udisks2.power-off-drive-other-seat": YES
  };
  if (subject.isInGroup("users")) {
    return permission[action.id];
  }
});

Предположим, что вы находитесь в группе «users», используя следующую команду для подключения раздела (не требуется sudo).

# udisks2
udisksctl mount --block-device /dev/sda1

# udisks
udisks --mount /dev/sda1
-121--9257-

Этот ответ может быть не сразу актуальным, но я нашел его во время Восстановление цветности .

Мое обстоятельство:
Я установил Windows после Ubuntu на свой компьютер и загрузчик (grub) поврежден и os-prober не может видеть образы Ubuntu в системе.

Вот что я сделал:

1) Загрузился с помощью Ubuntu Live CD.

2) Диспетчер дисков выяснил местоположение моих томов:
root -/dev/sda6
boot -/dev/sda8

3) Создал временный каталог/tmp/mydir и выполнил следующие команды в качестве root.

   mount /dev/sda6 /tmp/mydir
   mount --bind /proc /tmp/mydir/proc
   mount --bind /sys /tmp/mydir/sys
   mount --bind /dev /tmp/mydir/dev
   mount --bind /dev/pts /tmp/mydir/dev/pts

Наконец, я хотел связать загрузочное устройство, т.е./dev/sda8, с папкой/tmp/mydir/boot, а затем возникли проблемы.

   mount --bind /dev/sda8 /tmp/mydir/boot

и я получил следующую ошибку:

   mount : not a directory

Изначально я немного запутался в этом и эта статья GitHub помогла мне решить его. Проблема возникла при попытке монтировать устройство (здесь/dev/sda8) в уже смонтированное устройство (здесь/dev/sda6). Проще говоря, вы не можете сделать это, поскольку параметр --bind ожидает в качестве входных данных каталог, а не блочное устройство типа/dev/sda8.

Теперь хорошие новости! Существует обходной путь. Я подключил загрузочный том к другому каталогу в/tmp, а затем привязал этот каталог к/tmp/mydir/boot.

    mount /dev/sda8 /tmp/booty
    mount --bind /tmp/booty /tmp/mydir/boot

Устранена ошибка подключения : не каталог .

4) Я сделал chroot спасения, чтобы решить свою конечную проблему.

0
27.01.2020, 23:54

Теги

Похожие вопросы