Не удается отформатировать локальную петлевую файловую систему

2454
Daniel Groves

Я пытаюсь сделать 40 ГБ ext3 локальной петлевой файловой системы. Эта петлевая файловая система хранится на моем NAS, который смонтирован на машине Ubuntu Precise 12.04 x64 с использованием NFS. Машина имеет права на чтение и запись на NAS.

Я создал файл 40 ГБ для использования, запустив dd if=/dev/zero of=/media/vps/Ironman.ext3 bs=1024 count=40000000. Файл был успешно создан, поэтому я /dev/loop0запустил его как зацикленную систему sudo losetup /dev/loop0 /media/vps/Ironman.ext3.

Я сейчас пытаюсь отформатировать это как файловую систему ext3, запустив sudo mkfs -t ext3 -q /media/vps/Ironman.ext3. Однако всякий раз, когда я запускаю эту команду, я получаю следующий вывод:

mke2fs 1.42 (29-Nov-2011) /media/vps/Ironman.ext3 is not a block special device. Proceed anyway? (y,n) y /media/vps/Ironman.ext3: Permission denied while setting up superblock 

Как я могу обойти это, и отформатировать устройство обратной петли как ext3?

Обновление 1

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

danielsgroves@precise64:/dev$ sudo losetup /dev/loop0 /dev/loop0: [0015]:26378243 (/media/vps/Ironman.ext3) danielsgroves@precise64:/dev$ sudo mkfs -t ext3 -q /dev/loop0 /dev/loop0: Operation not permitted while setting up superblock 

Обновление 2

С подробным выводом

danielsgroves@precise64:/dev$ sudo mkfs -t ext3 -v /dev/loop0 mke2fs 1.42 (29-Nov-2011) fs_types for mke2fs.conf resolution: 'ext3' /dev/loop0: Operation not permitted while setting up superblock 
0
Попробуйте использовать `-v` вместо` -q`, чтобы надеяться получить более подробную информацию о том, что не работает. a CVn 11 лет назад 0
Хорошо, единственное, о чем я могу думать, - это использовать mke2fs напрямую, а не использовать mkfs. `sudo mke2fs -j -v / dev / loop0` выдаст вам файловую систему ext3 с настройками по умолчанию. Я только что попробовал это сам (за исключением того, что я использовал намного меньший файл изображения), и, похоже, он отлично работает на Debian Wheezy, который не должен отличаться. a CVn 11 лет назад 0
Вывод строка-за-строкой аналогичен использованию mkfs. Я не помню, чтобы эти проблемы были в прошлый раз, когда я делал это несколько месяцев назад. Daniel Groves 11 лет назад 0
Это действительно странно. Извините, но у меня заканчиваются немедленные идеи, чтобы попробовать. Надеюсь, кто-то еще сможет принять это и дать некоторое представление! a CVn 11 лет назад 0
Чтобы попытаться получить больше подробностей от mkfs, вы можете запустить mkfs через strace. Я не уверен, как это сочетается с sudo, но это стоит попробовать. Попробуйте `sudo strace -o '/ tmp / mkfs.syscalls' mkfs -t ext3 -v / dev / loop0`, а затем опубликуйте последние 30-50 строк или около того из файла, созданного mkfs.syscalls (и особенно всего, что касается печати сообщение об ошибке «Операция не разрешена» или что-либо еще до того, что привело к такой ошибке). Он должен точно сказать, что делает mkfs, что запрещено, что может дать подсказку, указывающую на решение. a CVn 11 лет назад 0

2 ответа на вопрос

0
a CVn

Вам необходимо создать файловую систему на устройстве цикла, а не файл, который поддерживает устройство цикла. (Это то, о чем говорит предупреждение «не блочное специальное устройство» от mke2fs.) Файл резервной копии - только вопрос рассмотрения кода «устройства петли» в ядре, и вы не будете использовать его напрямую, кроме как в losetupкоманда. Ошибка «Отказано в разрешении» может быть вызвана тем, что вы пытаетесь напрямую изменить файл поддержки текущего активного устройства цикла; это может легко привести к разного рода разрушениям, поэтому ядро, скорее всего (разумно), не позволит вам сделать это даже с правами root.

После запуска losetupиспользуйте sudo mkfs -t ext3 -q /dev/loop0вместо этого, и все должно работать нормально. Затем смонтировать /dev/loop0там, где вы предпочитаете (как, скажем, sudo mount /dev/loop0 /media/ironman).

Это может стать более понятным, если вы рассмотрите другие опции, доступные для losttup, включая --offsetи --sizelimit(см. Страницу руководства для большего количества примеров).

Даже пытаясь отформатировать петлю напрямую, я получаю ту же ошибку. Я только что добавил детали, показывающие вывод вопроса. Daniel Groves 11 лет назад 0
@DanielGroves Да, я видел. Однако пока я оставлю этот ответ, так как это важный (и, возможно, не совсем очевидный) момент, который нужно помнить о петлевых устройствах. a CVn 11 лет назад 1
-1
Shane Kerr

Хорошо, это сообщение очень старое, но ответа нет.

У меня просто была такая же проблема. Проблема для меня заключалась в том, что у пользователя root по NFS нет особой возможности чтения и записи в файл.

Вы можете изменить владельца файла на root или поместить его в корневую группу и сделать его доступным для записи.

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