mkfs beschwert sich nicht über Folgendes: „/ dev / sdb wird anscheinend vom System verwendet; wird hier kein Dateisystem erstellen “

7

Dies ist Ubuntu Server 11.10.

/ dev / sdb ist nicht gemountet (siehe Ausgänge unten) und wird von keinem Prozess verwendet, den ich sehen kann. Es wird auch nicht zum Tauschen verwendet. Dies ist ein zweites IDE-Laufwerk im Server, das mit der sekundären IDE verbunden und im Hardware-RAID als Array 2 eingerichtet ist.

Ich kann das Laufwerk nicht mounten, da ich eine Beschwerde erhalte, dass es möglicherweise bereits verwendet wird. Ich habe fdisk ausgeführt, alle vorherigen Partitionen gelöscht und eine einzige primäre Partition erstellt.

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)
Harel
quelle
Sie sagten, das Laufwerk sei Teil eines RAID-Arrays. Solange dieses Array aktiv ist, können Sie möglicherweise nicht direkt auf die einzelnen Laufwerke zugreifen (z. B. formatieren).
Cyberx86
Es sind jedoch zwei separate Arrays. Array 1 ist ein 40-GB-Laufwerk mit Ubuntu usw., und das andere Laufwerk ist als Array 2 festgelegt. Wie kann ich dann darauf verweisen?
Harel
1
Sie sagen 'Dies ist das zweite Laufwerk ... als Array 2 eingerichtet'. Ein Array besteht aus mehr als einer Festplatte (Sie können kein Array mit einem Laufwerk haben). Wenn Sie zwei Arrays haben, sollten Sie (mindestens) 4 Festplatten haben. Sie sollten in der Lage sein, auf die Arrays (jede Sammlung von Festplatten) zu verweisen, nicht jedoch auf die einzelnen Festplatten selbst, während sie Teil eines aktiven Arrays sind. (Vielleicht
verstehe
Es stellt sich heraus, dass in meinem Szenario das 2. Raid-Array in der Raid-Konfigurationssoftware falsch eingestellt wurde. Ich habe das Array neu erstellt und es dann korrekt gemountet. Dies ist ein alter Fujistu-Server, und obwohl ich verstehe, dass Sie 1 Laufwerksarray bereuen, kann ich ihn als solchen einrichten. Ich denke, das liegt daran, dass die IDE-Laufwerke nur über die RAID-Schnittstelle verfügen, mit der eine Verbindung hergestellt werden kann, sodass sie gleichzeitig als IDE-Schnittstelle fungieren (nur eine Vermutung). So danke. Ihr Kommentar zu den Arrays hat mich dazu veranlasst, die BIOS-Konfiguration zu überprüfen.
Harel

Antworten:

5

Überprüfen Sie Ihre Partitionierung noch einmal, ohne jedoch / dev / sda anzugeben:

# fdisk -l

Wenn Sie dann in der Ausgabe etwas finden wie /dev/md0: - bedeutet dies, dass Sie ein sw-Array haben und die Festplatte, die Sie formatieren möchten, Metadaten dieses Arrays enthält.

In diesem Fall:

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

Superblock der Festplatte löschen:

# mdadm --zero-superblock /dev/sdb

Array entfernen

# mdadm --remove /dev/md0

Nein, Sie können mit Ihrem Laufwerk arbeiten.

Yuriy
quelle
4

/dev/sdbwird verwendet, weil Partitionen darauf sind, die dem Betriebssystem bekannt sind. Wenn Sie ein Dateisystem darauf erstellen möchten (eine schlechte Idee, da dies selten der Fall ist, werden Administratoren verwirrt und es wird schwierig, eine Aufteilung oder Größenänderung vorzunehmen), entfernen Sie zuerst die vorhandene Partition mit fdisk. Wenn Sie ein Dateisystem auf der einzigen Partition erstellen möchten /dev/sdb1(dies sollten Sie tun, da die direkte Verwendung der Festplatte keinen Vorteil hat), sagen Sie, was Sie meinen : mkfs /dev/sdb1.

Gilles 'SO - hör auf böse zu sein'
quelle
1

Sie erhalten diese Fehlermeldung, weil /dev/sdbeine Partition (dh /dev/sdb1) vorhanden ist und der Aufruf von mkfs auch alle oder Teile Ihrer Partitionstabelle überschreiben würde. Im schlimmsten Fall wäre Ihr Dateisystem dann nicht verwendbar. Oder Sie verlieren "nur" eine Partitionstabelle, die Sie möglicherweise noch benötigen. Da die Partitionsgerätedateien und die tatsächliche Partitionstabelle auf der Festplatte dieselbe Geschichte erzählen sollten, werden sie vom Kernel wohl "verwendet".

Die einfache Regel lautet daher: Wenn Sie Ihr Dateisystem auf dem gesamten Festplattengerät erstellen möchten, stellen Sie sicher, dass alle Partitionen zuvor gelöscht wurden. Zum Beispiel:

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

Normalerweise kümmert sich das Partitionierungstool darum, den Kernel zu benachrichtigen, um seine Partitionsgerätedateien zu aktualisieren. Manchmal (z. B. bei Loopback-Geräten) kann es jedoch erforderlich sein, diese explizit zu entfernen (nachdem die Partitionstabelle entfernt wurde), z. B. über partx -dv mydevund / oder kpartx -dv mydev.

Beachten Sie, dass ein Vorgänger kpartx -av mydevdie Partitionsgeräte möglicherweise /dev/mapper/mydev*anstelle von erstellt /dev/mydev*. Wenn sie vorhanden sind, beschwert sich mkfs auf die gleiche Weise.

maxschlepzig
quelle
1

Dies ist ein alter Beitrag, aber ich bin auf das gleiche Problem gestoßen. Als ich versuchte, ein Dateisystem zu erstellen, beschwert sich das System und sagt

> [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!

Die Befehle:

  • Fixiereinheit
  • lsof

ergab nichts Nützliches. Folgendes habe ich getan, um die Ursache des Problems zu finden. Ich ging zu / etc und suchte nach Dateien, die das Laufwerk sdc erwähnen. Der erste 'Fund' hat nichts gefunden, also habe ich die Suche auf die nächste Ebene unten erweitert und das hat den Täter gefunden

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

Da ich weiß, dass diese Dateien von targetcli (iSCSI-Backend) verwendet werden, trenne ich diesen Speicher und führe den Befehl mkfs erneut aus, diesmal ohne Probleme.

Hoffe das hilft.

oogway
quelle
0

In meinem Fall hat sudo umount /dev/sdbfunktioniert.

Ben
quelle
-1

Versuchen Sie zunächst, die Festplatte vollständig zu löschen:

sudo dc3dd wipe = / dev / sdb

Stellen Sie sicher, dass Sie das richtige Laufwerk auswählen.

Joe M.
quelle
Das ist ein schrecklicher Rat. Neben der Verwendung eines selten verfügbaren Programms ist dies auch völlig unnötig und sollte nur durchgeführt werden, wenn Sie genau wissen, was Sie tun. Siehe stattdessen Gilles 'Antwort und die Kommentare.
Sven