Ich habe eine img
Datei mit dem folgenden Befehl erstellt:
dd if=/dev/zero bs=2M count=200 > binary.img
Es ist nur eine Datei mit Nullen, aber ich kann sie verwenden fdisk
und eine Partitionstabelle erstellen:
# fdisk binary.img
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x51707f21.
Command (m for help): p
Disk binary.img: 400 MiB, 419430400 bytes, 819200 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
Disklabel type: dos
Disk identifier: 0x51707f21
und sagen wir eine Partition:
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-819199, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-819199, default 819199):
Created a new partition 1 of type 'Linux' and of size 399 MiB.
Command (m for help): w
The partition table has been altered.
Syncing disks.
Wenn ich die Partitionstabelle überprüfe, erhalte ich das folgende Ergebnis:
Command (m for help): p
Disk binary.img: 400 MiB, 419430400 bytes, 819200 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
Disklabel type: dos
Disk identifier: 0x7f3a8a6a
Device Boot Start End Sectors Size Id Type
binary.img1 2048 819199 817152 399M 83 Linux
Die Partition existiert also. Wenn ich versuche, diese Partition über gparted zu formatieren, wird folgende Fehlermeldung angezeigt:
Ich weiß nicht, warum es sucht binary.img1
, und ich habe keine Ahnung, wie die Partition vom Befehl live formatiert werden soll.
Weiß jemand, wie man es mit ext4-Dateisystem formatiert?
filesystems
partition
disk-image
Mikhail Morfikov
quelle
quelle
Couldn't find valid filesystem superblock.
. Hier ist das Bild: i.imgur.com/dl7XAC4.png .Ist das eine Art Fehler?Antworten:
Sie können über die Loopback-Funktion auf das Disk-Image und seine einzelnen Partitionen zugreifen. Sie haben bereits festgestellt, dass einige Festplatten-Dienstprogramme (angemessen) problemlos mit Festplatten-Images arbeiten. Ist
mkfs
jedoch keiner von ihnen (aber seltsamerweisemount
ist).Hier wird ausgegeben von
fdisk -lu binary.img
:Um auf die von Ihnen erstellte Partition zuzugreifen, haben Sie mehrere Möglichkeiten
Die explizite Route
Die Ausgabe
/dev/loop0
ist der Name des zugewiesenen Schleifengeräts. Der--offset
Parameter ist nur der Offset (Start
) der Partition multipliziert mit der Sektorgröße (512
). Die--sizelimit
Größe der Partition ist und Sie können sie folgendermaßen berechnen: End-Start + 1, also 819199-2048 + 1 = 817152, und diese Zahl muss auch mit der Sektorgröße multipliziert werden.Sie können dann
/dev/loop0
als Referenz auf die Partition verwenden:Die implizite Route
Die Ausgabe
/dev/loop0
ist der Name des primären Schleifengeräts, das zugewiesen wurde. Darüber hinaus weist die--partscan
Option den Kernel an, das Gerät nach einer Partitionstabelle zu durchsuchen und Nebenschleifengeräte automatisch zuzuweisen. In Ihrem Fall mit der einen Partition erhalten Sie auch/dev/loop0p1
, die Sie dann als Referenz auf die Partition verwenden können:quelle
fdisk
Ausgabe angegeben wurde.Es gibt eine andere Möglichkeit, dies im Allgemeinen zu tun: Verwenden Sie
kpartx
( nicht kde-bezogen)und jetzt sollten Sie alle Partitions Geräte definiert unter
/dev/mapper
als loop0p1 , loop0p2 , ...und dann
Wenn Sie fertig sind, können Sie optional auch ausführen
die loop0p loswerden? täuschen
quelle
(… Und später für
binary.img2
im Kommentar begraben.)Dies liegt daran, dass die Tools erwarten, dass die Dateinamen einem bestimmten Muster folgen. Dieses Muster wird von Gerätedateien für tatsächliche Datenträger und Datenträgervolumes auf Ihrem System verwendet, nämlich:
sda
(oder etwas anderes). Dies wirdfdisk
voraussichtlich genutzt.sda1
,sda2
,sda3
und so weiter. Dies ist, was Tools wiegparted
erwarten, wenn siemkfs
Dinge auf einzelnen Disc-Volumes tun sollen .Natürlich überlappen sich normale Dateien nicht so wie Dateien von Disc-Geräten. Die Diskussionen der Loopback - Dateisystem beteiligt , dass Sie Loopback gesehen zu erstellen sind alle über eine einzige Ganz Disk - Image - Datei zu nehmen und mit den
1
,2
,3
und so weiter - Dateien , die die einzelnen Scheiben in ihm widerspiegeln, sobald die gewünschte Partitionslayout geschrieben wurde zur Partitionstabelle.quelle
Obwohl dieses Thema nicht direkt verwandt ist, werden viele der gleichen und verwandten Informationen erwähnt.
Debian Wiki | Raspberry Pi und qemu-user-static
Wenn Sie
apt
einige der in diesem Beitrag genannten Befehle nicht installieren können, versuchen Sie es mitapt-cache search [package_name]
. Dies führt möglicherweise nicht zu Ergebnissen, wenn der Befehl aus einem Paket mit einem anderen Namen stammt.Zum Beispiel
losetup
könnte früher alslosetup
using installiert werdenapt install losetup
, aber es ist jetzt Teil vonutil-linux
Ubuntus Repository. Um herauszufinden, welches Paket als Container für ein anderes Paket fungiert, müssen Sie die Suche nach dem Online-Repository für Ihre Linux-Distribution verwenden. Wenn Sie es von einer anderen Quelle installieren müssen, verwenden Sie eine Websuchmaschine.Einige Pakete, die einen Besuch wert sind ...
util-linux genisoimage dosfstools squashfs-tools fsarchiver xfsprogs reiserfsprogs reiser4progs jfsutils ntfsprogs btrfs-tools
Jede Linux-Distribution hat auch ihre eigenen Online-Manpages. Manchmal ist es einfacher, die Manpages zu verwenden als ein Tutorial. Auf den Handbuchseiten finden Sie auch alle Befehlsoptionen und -parameter. Ein Tutorial konzentriert sich normalerweise nur auf die verwendeten.
quelle
Minimal lauffähig
sfdisk
+mke2fs
Beispiel ohnesudo
In diesem Beispiel erstellen wir ohne
sudo
oder ohnesetsuid
eine Image-Datei, die zwei ext2-Partitionen enthält, die jeweils mit Dateien aus einem Host-Verzeichnis gefüllt sind.Wir werden dann
sudo losetup
nur die Partitionen mounten, um zu testen, ob der Linux-Kernel sie tatsächlich lesen kann, wie unter /programming/1419489/how-to-mount-one-partition-from-an-image erläutert -Datei-die-mehrere-Partitionen enthält / 39675265 # 39675265Weitere Einzelheiten finden Sie unter:
sfdisk
: befasst sich mit der Partitionstabelle: /superuser/332252/how-to-create-and-format-a-partition-using-a-bash-script/1132834#1132834mke2fs
: befasst sich mit der EXT-Formatierung von Partitionen: /superuser/605196/how-to-create-ext2-image-without-superuser-rights/1366762#1366762Das Beispiel:
Getestet unter Ubuntu 18.04. GitHub stromaufwärts .
Hilfsprogramm zum Umschließen einer vorhandenen unformatierten Dateisystemdatei in ein Image
Aus dem oben Gesagten kann Folgendes nützlich sein:
GitHub stromaufwärts .
quelle