Gibt es eine Lösung für zwei aufeinander zu wachsende Partitionen?

346
GxFlint

Nehmen Sie an, wie Programme ihren verfügbaren Speicher verwenden. Der Stapel und der Stapel beginnen an entgegengesetzten Enden des Adressraums und wachsen dann aufeinander zu.

Gibt es eine ähnliche Lösung für die Festplattenpartitionierung?

Wie beim Definieren von zwei Partitionen auf einer Festplatte wird die erste Partition wie üblich definiert, die zweite jedoch mit dem Anfang als Ende der Festplatte und als Ende der ersten Partition.

Das würde mir erlauben, eine kleine erste Partition zu definieren und deren Größe in der zweiten Partition neu zuzuordnen, da die zweite Partition größer wäre und am Ende normalerweise keine Daten enthalten würde.

-2
* "Gibt es eine ähnliche Lösung für die Festplattenpartitionierung?" * - Äpfel und Orangen. RAM wird als flüchtiger Speicher verwendet, während Festplatten Massenspeicher sind und nicht flüchtig sein müssen. Es gibt einfach keine dynamische Größenanpassung von Festplattenpartitionen oder (nicht flüchtigen) Dateisystemen. sawdust vor 5 Jahren 0
Nun, es gibt eine Art - APFS ordnet Datenträgergrößen dynamisch in einem Container zu. Tetsujin vor 5 Jahren 0
@Tetsujin - Okay, also machte Apple etwas seltsames mit einer anderen Zuordnungsebene für * "APFS-formatierte Volumes" *. Aber für MBR / GUID-Partitionen bin ich sicher, dass mein Kommentar korrekt ist. IOW beachte das `windows-10`-Tag. sawdust vor 5 Jahren 0
Möglicherweise kann die Software von Drittanbietern verwendet werden - https://www.paragon-software.com/home/apfs-windows/. - Ich schlage sie nicht wirklich als Lösung vor. Ich erwähne nur, dass es eine sehr neue Partitionierungsmethode gibt etwas Ähnliches erreichen, wie es das OP verlangt. Tetsujin vor 5 Jahren 0
@Tetsujin * "Kann möglicherweise mit Software von Drittanbietern ausgeführt werden" * - Diese Software zeigt eindeutig an, dass sie nur Lesezugriff von Windows auf APFS bietet. sawdust vor 5 Jahren 0
meh ... ok, ich bleibe dann bei meinem Mac mit dem Potenzial, all das oben zu tun;) Tetsujin vor 5 Jahren 0

1 Antwort auf die Frage

1
cybernard

Nein, nicht so, wie Sie es sich vorstellen.

Windows 10 erstellt eine Reihe kleinerer Partitionen an der Vorderseite. Besonders wenn Sie UEFI verwenden.

Sie können jedoch ein C erstellen: weniger als das gesamte Laufwerk. Lassen Sie so viel Freiraum, wie Sie möchten. Außerdem können Sie das Laufwerk c: von der Datenträgerverwaltung in Windows 10 erweitern (und in einigen Fällen sogar verkleinern). Diese Optionen unterliegen einigen Einschränkungen.

Sie können auch eine Partition am Ende des Laufwerks erstellen, sie funktioniert jedoch nicht so, wie Sie es sich vorstellen.

Das Ende wird am Ende sein, und der Anfangssektor wäre an einer niedrigeren Position. Um das Laufwerk zu erweitern, müssen Sie den gesamten Inhalt um die gewünschte GB-Menge zurückschieben und dann die Partition in den freien Speicherbereich erweitern.

Es gibt Offline-Partitionierungssoftware, mit der Sie Partitionen beliebig verschieben und deren Größe ändern können.

Bei keiner der vorhandenen Lösungen kann die Partition jedoch rückwärts ausgeführt werden.

Das bedeutet, dass Sie den Code selbst schreiben und gründlich testen müssen, um sicherzustellen, dass er nicht zu Datenverlust oder -beschädigung führt. Es gibt ungenutzte Partitionstypen, die Sie während der Entwicklungsphase vorübergehend verwenden könnten. Dies ist jedoch jahrelange Arbeit. Sie müssen die vorhandenen Stakeholder davon überzeugen, dass die Treiber Ihre Treiber mit ihrem Betriebssystem bündeln können.

Wäre das auch wahr, wenn die zweite Partition eine Linux-Partition wäre? Ich denke, es wäre "einfacher", einen Treiber dazu zu bringen, Daten "rückwärts" zu speichern. GxFlint vor 5 Jahren 0
Es wäre einfacher zu entwerfen und zu implementieren. Ihre einzige Hoffnung für eine einfachere Implementierung besteht darin, die Montage zu erlernen und eine Festplattenfirmware zu erstellen. Angenommen, Sie haben eine Fahrt, die 700 m (illion) Sektoren beginnt und bei 950 m endet. Sie müssen den logischen Sektor auf 0 setzen (in unserem Fall 700 m), und wenn der Sektor> 700 m spezielle Berechnungen anwendet (950 m (logischer Sektor)), müssen Sie außerdem den logischen Sektor # berechnen, subtrahieren und in den physischen Sektor zurückwandeln und dann den Inhalt der korrigierten Sektornummer zurücksenden. Zusammen mit strengen Tests, um sicherzustellen, dass es immer korrekt funktioniert. cybernard vor 5 Jahren 0
Praktisch hoffnungslos dann: P Aber es wäre sicher ein schönes Feature. Vielen Dank GxFlint vor 5 Jahren 0
@GxFlint Wenn Sie nicht mit einem Assembler-Programmierer befreundet sind. Für den Zugriff auf die Festplattenfirmware ist lediglich ein JTAG-Stecker erforderlich. https://www.malwaretech.com/2015/04/hard-disk-firmware-hacking-part-1.html cybernard vor 5 Jahren 0
@cybernard * "Wenn Sektor> 700m spezielle Mathematik anwenden (950m- (logischer Sektor))" * - Ihr billiges Schema funktioniert nur, wenn es auf den Zugriff auf einen Sektor beschränkt ist (und erfordert eigentlich keinen Festplatten-Firmware-Hack, da dies möglich ist.) im Fahrer). (Dies ist von jemandem, der Festplatten-Controller-Firmware erstellt hat.) Moderne Betriebssysteme verwenden Lese- / Schreibvorgänge mehrerer aufeinanderfolgender Sektoren gleichzeitig, um den Durchsatz zu verbessern. Nur der Zugriff auf einen einzelnen Sektor ist eine katastrophale Leistungseinbusse. sawdust vor 5 Jahren 0
@sawdust Der Zugang zu einem einzelnen Sektor wäre schlecht. Wenn Ihr Puffer jedoch 100 Sektoren enthält, subtrahieren Sie 100 weitere Sektoren und schreiben dann die 100 Sektoren in einen Burst, wie Sie es immer tun. Es würde mehr Mathematik erfordern, um es tatsächlich funktionsfähig zu machen, aber mit genügend Zeit könnte es getan werden. wenn> 700 m (950- (physischer Sektor-700 m)) - () / 512 (oder 4096 hängt davon ab). cybernard vor 5 Jahren 0
* "... dann schreibe die 100 Sektoren in einem Burst, wie du es immer tust." * - Falsch! Es gibt ein Problem mit der Sektorreihenfolge: Alles im Computersystem erwartet eine bestimmte Reihenfolge der Sektoren. Das ist es, was der Zugriff für einen einzelnen Sektor zu lösen hat, oder Sie müssen viel neu ordnen, indem Sie in den Speicher kopieren. Es ist dasselbe Problem, gleichzeitig mit den Byte-Order-Quellen von liitle-endian und big-endian umzugehen. Sie hätten Ihre Antwort einfach halten sollen und auf das, was Sie verstehen. Sie tauchen in einen Hack ein, wenn Sie die * offensichtlichen * Fallstricke nicht verstehen. sawdust vor 5 Jahren 0