无法格式化本地环回文件系统


0

我正在尝试制作一个40GB的ext3本地环回文件系统。这个环回文件系统存储在我的NAS上,它使用NFS安装在Ubuntu Precise 12.04 x64机器上。该机器具有NAS上的读写权限。

我创建了一个40GB的文件供运行使用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

尝试使用-v而不是-q,希望获得有关失败的更多细节。
2013年

好吧,我唯一能想到的是直接使用mke2fs而不是通过mkfs。sudo mke2fs -j -v /dev/loop0将为您提供一个ext3文件系统,否则为默认值。我只是自己尝试过(除了我使用了一个小得多的图像文件),它似乎对我来说在Debian Wheezy上工作得很好,这应该不会那么不同。
2013年

输出与使用mkfs相同。我不记得上次几个月前我做过这些问题了。
Daniel Groves 2013年

这真的很奇怪。对不起,但我的想法已经用完了。希望其他人能够接受这个并提供一些见解!
2013年

要尝试从mkfs中哄骗更多细节,可以通过strace运行mkfs。我不确定它和sudo一起玩,但它值得一试。尝试sudo strace -o'/tmp/mkfs.syscalls' mkfs -t ext3 -v /dev/loop0然后从创建的文件mkfs.syscalls中发布最后30-50行左右(特别是打印“不允许操作”错误消息或导致此类错误的任何内容)。它应该准确地告诉mkfs正在做什么是不允许的,这可能提供指向解决方案的线索。
2013年

Answers:


0

您需要在循环设备上创建文件系统,而不是支持循环设备的文件。(这是mke2fs的“非块特殊设备”警告的内容。)后备文件只是考虑内核中的“循环设备”代码,你不会直接使用它,除了该losetup命令。“权限被拒绝”错误很可能是因为您正在尝试直接修改当前活动的循环设备的后备文件; 这样做可能会轻易造成各种各样的破坏,所以内核可能(理智地)阻止你甚至以root身份做到这一点。

运行后losetup,使用sudo mkfs -t ext3 -q /dev/loop0它,它应该工作得很好。然后安装/dev/loop0在您喜欢的任何地方(比方说sudo mount /dev/loop0 /media/ironman)。

如果您考虑losetup可用的其他选项,包括--offset--sizelimit(请查看手册页以获取更多示例),这可能会变得更加清晰。


即使尝试直接格式化环回,我也会得到同样的错误。我刚刚添加了显示问题输出的详细信息。
Daniel Groves 2013年

1
@DanielGroves是的,我看到了。我现在暂时留下这个答案,因为记住循环设备是一个重要的(也许不是完全明显的)。
2013年

-1

好的,这条消息很老,但没有答案。

我刚遇到同样的问题。对我来说问题是,在NFS上,root用户没有特殊的能力来读写文件。

您可以做的一件事是将文件的所有者更改为root,或者您可以将其放在根组中并使其成为可写组。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.