Wie kann ich die Inode-Größe auf einer EXT3-Partition ändern?

12253
DevSolar

Die Einrichtung:

Für meinen Dual-Boot-Laptop habe ich eine große Festplatte als externe USB-Lösung gekauft. Ich entschied mich für EXT3 als Dateisystem und dachte, Ext2IFS zu verwenden, um von Windows auf das Laufwerk zuzugreifen (wie ich es bereits mit verschiedenen anderen externen Geräten mache).

Das Problem:

Linux ist meine erste Wahl als Betriebssystem. Daher war das Laufwerk bereits zu 2/3 voll, bevor ich jemals versucht hatte, von Windows darauf zuzugreifen. Erst dann wurde mir klar, dass ich einen schwerwiegenden Fehler gemacht hatte - ich habe vergessen, die Inode-Größe auf 128 zu beschränken. Der von der Linux-Distribution verwendete Standardwert war 256, auf den Ext2IFS nicht zugreifen kann.

Bei 1 TB ist das Laufwerk bei weitem mein größter Speicherplatz, und bei 2/3 voll wäre das Backup umständlich.

Die Frage:

Ist es möglich, die Inode-Größe auf einer EXT3-Partition zu ändern (ohne die Daten zu verlieren)? Es ist mir egal, ob es ein paar Stunden dauert.


Post Scriptum:

David Spillett hat die ursprüngliche Frage perfekt beantwortet: "Wie ändert man die Inode-Größe auf einer EXT3-Partition?".

Die zugrunde liegende Frage lautete jedoch "Wie greife ich auf eine EXT3-Partition von Windows zu, nachdem ich sie mit den Linux-Standardwerten für die Inode-Größe erstellt habe?".

Die Antwort wäre Ext2Fsd, ein EXT3-Treiber für Windows, der bei großen Inode-Größen nicht stört. (Es werden jedoch keine GUID-Partitionstabellen (GPT) unterstützt, die für Laufwerke mit mehr als 2 TB erforderlich sind.)

Ich dachte, das könnte für die vielen Leute von Interesse sein, die sich diese Frage ansehen.

1

2 Antworten auf die Frage

4
David Spillett

Sie können es an Ort und Stelle nicht ändern, soweit ich weiß. Möglicherweise können Sie dies tun, ohne ein anderes TB-Laufwerk zu finden, in das die Daten kopiert werden sollen, während Sie das Dateisystem mithilfe einer Round-About-Methode neu erstellen:

  1. Verkleinern Sie das aktuelle Dateisystem so klein wie möglich und verringern Sie die Länge der Partition entsprechend
  2. Fügen Sie dem neu freigegebenen Speicherplatz eine zweite Partition hinzu
  3. Mounten Sie beide und bewegen Sie sich so viel wie möglich auf die neue Partition
  4. verkleinern Sie die erste Partition erneut, verschieben Sie die neue Partition von der Festplatte und vergrößern Sie sie, um das Laufwerk zu füllen, und wiederholen Sie Schritt 3
  5. Möglicherweise müssen Sie Schritt 4 ein- oder zweimal wiederholen, je nachdem, wie voll das ursprüngliche Dateisystem ist

Sie können die oben manuell tun alle mit fdisk, resize2fsund verwandten Werkzeugen oder mit gespreizten, die in den meisten Distribution Repositories und als verfügbar ist Live - CD . Gparted ist wahrscheinlich die sicherste Option, sofern Sie nicht bereits mit den manuellen Tools vertraut sind.

Bei großen Dateisystem-Verschiebungs- / Größenänderungsvorgängen wie diesen sind jedoch vor dem Start immer gute Sicherungen erforderlich, denn wenn etwas schief geht, können Sie alles auf den betroffenen Dateisystemen beenden. Wenn Sie also gesund paranoid sind, beseitigt das obige nicht die Notwendigkeit, irgendwo zu finden, um die Daten zu kopieren, während Sie die Daten neu formatieren / neu anordnen. Wenn jedoch die meisten Daten ersetzt werden können, müssen Sie Musik- / Videoinhalte und so weiter herunterladen könnte das Wichtigste sichern und mit dem Rest eine Chance ergreifen.

Als Alternative zum Neuformatieren / Umordnen des Laufwerks können Sie jetzt eine kleine Linux-VM (mit VMware oder Vbox) ausführen, das USB-Laufwerk daran anschließen und die Daten über Samba mit dem Host-Betriebssystem (Windows) gemeinsam nutzen. Dies ist natürlich ineffizient und weniger bequem, kann aber "effizient" genug sein, bis Sie eine dauerhafte Lösung finden, beispielsweise den Kauf eines neuen Laufwerks, um alles neu zu formatieren und alles aufzufrischen. Dies ist sicherlich sicherer als der Betrieb eines Dateisystems Daten, die Sie nicht gesichert haben. Sie müssen der VM nicht viel Ressourcen zuweisen. Ich denke, eine Server-Installation von Ubuntu oder eine Basisinstallation von Debian würde eine solche Samba-Freigabe mit 128 MB RAM oder weniger ausführen und würde nicht viel mehr als eine einzige GB-Kapazität benötigen Festplattenspeicherplatz (auf dem Host-Rechner kann es tatsächlich nur ein paar hundert MB sein).

+1. Das Shrink-Move-Shrink-Schema ist ein sehr schöner Vorschlag. Ich bin mir nicht sicher, ob ich mir das selbst ausgedacht hätte. In der Tat könnten die meisten Daten bei Bedarf ausgetauscht werden, so dass ich anstelle des gesamten Blocks ein oder zweihundert MB Backup erhalten kann. Vielen Dank! DevSolar vor 13 Jahren 1
1
ThatGraemeGuy

Sie können es nicht ändern, Sie müssen das Dateisystem von Grund auf neu erstellen.

Aus der Manpage für mke2fs :

-I inode-size Specify the size of each inode in bytes. mke2fs creates 256-byte inodes by default. ... It is not possible to change this value after the filesystem is created. 
mke2fs kann eine Partition auch nicht verkleinern, aber gparted can; Deshalb habe ich vermutet, dass es ein Werkzeug gibt, mit dem auch die Inode-Größe geändert werden kann. Aber danke für den Rat! DevSolar vor 13 Jahren 0