web-dev-qa-db-ja.com

mkfsは、「/ dev / sdbは明らかにシステムによって使用されているため、ここにファイルシステムを作成しません」という文句で失敗します。

これはUbuntuサーバー11.10です。

/ dev/sdbはマウントされておらず(以下の出力を参照)、私が確認できるどのプロセスでも使用されていません。スワップにも使用されません。これは、2番目のIDEドライブで、セカンダリに接続されていますIDEで、アレイ2としてハードウェアRAIDに設定されています。

ドライブがすでに使用されている可能性があるというクレームがあったため、ドライブをマウントできません。私はfdiskを実行し、以前のパーティションをすべて削除して、1つのプライマリパーティションを作成しました。

root@sargent:/home/harel# fdisk -l /dev/sdb

Disk /dev/sdb: 122.9 GB, 122942324736 bytes
226 heads, 63 sectors/track, 16864 cylinders, total 240121728 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: 0x00083711

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048   240121727   120059840   83  Linux


root@sargent:/home/harel# mkfs -t ext4 /dev/sdb
mke2fs 1.41.14 (22-Dec-2010)
/dev/sdb is entire device, not just one partition!
Proceed anyway? (y,n) y
/dev/sdb is apparently in use by the system; will not make a filesystem here!

root@sargent:/home/harel# cat /proc/swaps 
Filename                Type        Size    Used    Priority
/dev/sda5                               partition   2619388 0   -1

root@sargent:/home/harel# mount
/dev/sda1 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
fusectl on /sys/fs/Fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
7
Harel

/ dev/sdaを指定せずに、パーティション設定をもう一度確認します。

# fdisk -l

次に、出力で/dev/md0のようなものが見つかった場合、それはswアレイがあり、フォーマットしようとしているディスクにそのアレイのメタデータが含まれていることを意味します。

この場合:

# umount /dev/md0
# mdadm --stop /dev/md0

ディスクのスーパーブロックをクリア:

# mdadm --zero-superblock /dev/sdb

アレイを削除

# mdadm --remove /dev/md0

ドライブを操作することはできません。

5
Yura

/dev/sdbは、OSが認識しているパーティションがあるため使用されています。その上にファイルシステムを作成したい場合(これはめったに行われないため、管理者を混乱させ、あらゆる種類の分割やサイズ変更が困難になるため)は、最初にfdisk。単一のパーティションにファイルシステムを作成する場合は/dev/sdb1(ディスクを直接使用するメリットはないため、これを行う必要があります)、次に、意味を説明します:mkfs /dev/sdb1

/dev/sdbにパーティション(つまり/dev/sdb1)があり、mkfs呼び出しによってパーティションテーブルのすべてまたは一部が上書きされるため、このエラーメッセージが表示されます。最悪の場合、ファイルシステムは使用できなくなります。または、必要なパーティションテーブルを「ただ」失うだけです。パーティションデバイスファイルと実際のディスクパーティションテーブルは同じストーリーを示す必要があるため、これらはおそらくカーネルによって「使用中」です。

したがって、単純なルールは次のとおりです。ディスクデバイス全体にファイルシステムを作成する場合は、前にすべてのパーティションが削除されていることを確認してください。例えば:

# ls /dev/sdb*
/dev/sdb /dev/sdb1
# sfdisk --delete /dev/sdb
# sfdisk --list /dev/sdb
# ls /dev/sdb*
/dev/sdb

通常、パーティションツールは、パーティションデバイスファイルを更新するようにカーネルに通知します。ただし、場合によっては(たとえば、ループバックデバイスの場合)、(パーティションテーブルが削除された後で)それらを明示的に削除する必要がある場合があります。 partx -dv mydevまたはkpartx -dv mydevを介して。

以前のkpartx -av mydevは、/dev/mapper/mydev*ではなく/dev/mydev*としてパーティションデバイスを作成する場合があることに注意してください。それらが存在する場合、mkfsは同じ方法で文句を言います。

1
maxschlepzig

これは古い投稿ですが、同じ問題が発生しました。私がファイルシステムを作成しようとしたとき、システムは不平を言って言います

> [root@MASTER ~]# mkfs.ext4 -L squid_cache -m2 /dev/sdc1
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdc1 is apparently in use by the system; will not make a filesystem here!

コマンド:

  • 定着器
  • lsof

有用なものは何も得られませんでした。これが問題の原因を見つけるために私がしたことです。/etcに移動して、ドライブsdcを含むファイルを検索しました。最初の「見つける」では何も見つからなかったので、下の次のレイヤーに検索を拡張したところ、違反者が見つかりました

> [root@MASTER etc]# find  ./* -maxdepth 1 -type f -execdir grep -l sdc '{}' +                                                                                             
./services
./saveconfig.json

これらのファイルがtargetcli(iSCSIバックエンド)で使用されていることを知っているので、そのストレージを切り離してmkfsコマンドを再実行しましたが、今回は問題なく実行されました。

お役に立てれば。

1
oogway

私の場合 Sudo umount /dev/sdb機能しました。

0
Ben