# ext3 zu ext4 konvertieren.

## flammenflitzer

Hallo,

ich möchte meine / und /home von ext3 zu ext4 konvertieren. Ich habe diese Anleitung gefunden: http://www.gentoofreunde.org/node/166

 Frage1 Bringt das etwas, oder habe ich dann nur ein besseres ext3 (d.h. sollte man die Partitionen besser neu anlegen?) ?

 Frage2 Hat schon jemand seine Partitionen von ext3 zu ext4 konvertiert ?

----------

## mv

Die Anleitung dort ist schon sehr alt; ext4dev compatibility beispielsweise braucht normalerweise kein Mensch (mehr). Außerdem fehlen einige Optionen dort, die Du setzen solltest sowie das Umstellen auf Inode-Size 256 (tune2fs -I 256 -O extents,uninit_bg,dir_index ...). Ob alle Optionen aktiviert sind, siehst Du mit einem dump2fs: In der Regel willst Du mindestens 

```
has_journal resize_inode dir_index filetype extent flex_bg sparse_super large_file uninit_bg dir_nlink extra_isize
```

Und ja: Du hast dann ein "volles" ext4. Natürlich werden Deine bereits gespeicherten Daten nicht automatisch so umsortiert werden, dass sie extents nutzen. Dazu müsstest Du sie theoretisch alle neu schreiben, aber das lohnt sich normalerweise nicht.

----------

## flammenflitzer

Also Live CD starten und dort

```
tune2fs -O has_journal resize_inode dir_index filetype extent flex_bg sparse_super large_file uninit_bg dir_nlink extra_isize /dev/meine_Partition
```

 Danach fsck.

----------

## mv

Ob das alles zugleich geht, weiß ich nicht. Und -I 256 nicht vergesssen!

----------

## Josef.95

Zu diesem Thema sicher auch noch mal ein Blick wert:

https://ext4.wiki.kernel.org/index.php/Main_Page

https://ext4.wiki.kernel.org/index.php/Ext4_Howto

https://ext4.wiki.kernel.org/index.php/Ext4_Howto#Converting_an_ext3_filesystem_to_ext4

/edit:

Zum prüfen ob dein ext3 schon die Inode Size 256 verwendet siehe zb 

```
# tune2fs -l /dev/sdxx | grep "Inode size"
```

(ist ein kleines L)

----------

## flammenflitzer

Also

```
tune2fs -l /dev/sda7 | grep "Inode size"

Inode size:               128
```

```
tune2fs -I 256 /dev/sda7
```

```
tune2fs -O extents,uninit_bg,dir_index /dev/DEV
```

reicht laut dem hier. https://ext4.wiki.kernel.org/index.php/Ext4_Howto#Converting_an_ext3_filesystem_to_ext4

 Ich weiß nicht, ob man den Rattenschwanz an Optionen braucht / angeben muss. https://forums.gentoo.org/viewtopic-p-6500565-highlight-.html#6500565

http://www.cyberciti.biz/tips/linux-convert-ext3-to-ext4-file-system.html

http://ccux-linux.de/wiki/Convert_ext3_to_ext4/de?langid=3

http://de.ubuntu-blog.com/partitionen-ext3-in-ext4-konvertieren-ohne-zu-formatieren

----------

## mv

 *flammenflitzer wrote:*   

> Ich weiß nicht, ob man den Rattenschwanz an Optionen braucht / angeben muss.

 

Ich habe die Optionen aus meinem ext4-Filesystem ausgelesen. Viele werden bereits gesetzt sein, aber ob beispielsweise -I 256 automatisch auch extra_isize setzt, weiß ich nicht: Wäre aber doch schade, wenn die zusätzlich reservierten Bytes nicht optimal genutzt würden. Und flammenflitzer hat gefragt, ob man dann ein volles ext4 hat, oder ob es günstiger wäre, ext4 neu anzulegen. Da ein neues ext4 diese Optionen setzt, sollte man verifizieren, dass sie auch gesetzt sind.

Übrigens habe ich beispielsweise nicht huge-file genannt: Dies hat zwar ein neues ext4 per Default, aber wenn man nicht mit Terrabyte-Partionen arbeitet, braucht man diese Option nicht, und sie ist auch nur lästig, weil man dann nur auf die Partition zugreifen kann, wenn der Kernel Huge-Filesystem-Support hat (was die Geschwindigkeit drückt). large_file hingegen wird man meist gerne haben.

Ach ja: Falls man acl nutzen will, sollte man natürlich auch ext_attr aktivieren.

----------

## flammenflitzer

tune2fs -I 256 /dev/sda7

```
tune2fs 1.40-WIP (14-Nov-2006)

tune2fs: invalid option -- I

Usage: tune2fs [-c max_mounts_count] [-e errors_behavior] [-g group]

        [-i interval[d|m|w]] [-j] [-J journal_options]

        [-l] [-s sparse_flag] [-m reserved_blocks_percent]

        [-o [^]mount_options[,...]] [-r reserved_blocks_count]

        [-u user] [-C mount_count] [-L volume_label] [-M last_mounted_dir]

        [-O [^]feature[,...]] [-T last_check_time] [-U UUID] device
```

```
root@ubuntu:/home/ubuntu# tune2fs -O extents,uninit_bg,dir_index /dev/sda7

tune2fs 1.40-WIP (14-Nov-2006)

Invalid filesystem option set: extents,uninit_bg,dir_index
```

----------

## mv

 *flammenflitzer wrote:*   

> tune2fs -I 256 /dev/sda7

 

Strange - something seems to have changed in latest e2fsprogs, but it seems to be undocumented: The RELEASE-NOTES still contains a line like  *RELEASE-NOTES wrote:*   

> Fix inode resizing via tune2fs -I ...

 

Edit: e2fsprogs-1.40 is probably too old; you should use a recent live CD.

----------

## flammenflitzer

```
root@Microknoppix:/home/knoppix# tune2fs -I 256 /dev/sdg7

tune2fs 1.41.12 (17-May-2010)

Setze Inode-Größe auf 256

root@Microknoppix:/home/knoppix# tune2fs -O extents,uninit_bg,dir_index /dev/sdg7

tune2fs 1.41.12 (17-May-2010)
```

```
root@Microknoppix:/home/knoppix# tune2fs -l /dev/sdg7

tune2fs 1.41.12 (17-May-2010)

Filesystem volume name:   /

Last mounted on:          <not available>

Filesystem UUID:          fa2129a4-adb7-2c1b-d087-df6dd07d6bf7

Filesystem magic number:  0xEF53

Filesystem revision #:    1 (dynamic)

Filesystem features:      has_journal dir_index filetype extent sparse_super large_file uninit_bg

Filesystem flags:         signed_directory_hash 

...
```

Bei meinen neu angelegten ext4

```
root@Microknoppix:/home/knoppix# tune2fs -l /dev/sde1

tune2fs 1.41.12 (17-May-2010)

...

Filesystem UUID:          e70df8b6-8f82-4163-a3ce-2225ec3848a3

Filesystem magic number:  0xEF53

Filesystem revision #:    1 (dynamic)

Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize

Filesystem flags:         signed_directory_hash
```

```
tune2fs -O has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize /dev/sdg7

tune2fs 1.41.12 (17-May-2010)

Aufruf: tune2fs [-c max-Anzahl-Mounts] [-e Fehler-Verhalten] [-g Gruppe]

   [-i Intervall[d|m|w]] [-j] [-J Journal-Optionen] [-l]

   [-m reservierte_Blöcke_Prozent] [-o [^]Einhäng_Optionen[,...]]

   [-r Anzahl_reservierte_Blöcke] [-u Benutzer] [-C Anzahl_Einhängen]

   [-L Volume_Label] [-M letztes_eingehängtes_Verzeichnis]

   [-O [^]Eigenschaft[,...]] [-E erweiterte-Option[,...]]

   [-T letzter_Prüfzeitpunkt] [-U UUID] [-I neue_Inodegrösse] Gerät
```

Muss ich jetzt erst mal nachlesen.

Und

Laut der Anleitung https://wiki.archlinux.de/title/Ext4

```
root@Microknoppix:/home/knoppix# fsck.ext4 -fCVD /dev/sdg7

Ungültiges nicht-numerisches Argument für -C ("VD")
```

Ich führe jetzt aus

```
fsck.ext4 -fcv /dev/sdg7
```

```
root@Microknoppix:/home/knoppix# fsck.ext4 -fcv /dev/sdg7

e2fsck 1.41.12 (17-May-2010)

Sichere Journal Inode Block Information.

Suche nach defekten Blöcken (Nur-Lesen-Modus):erledigt                            

/: Updating bad block inode.

Durchgang 1: Prüfe Inodes, Blocks, und Größen

Durchgang 2: Prüfe Verzeichnis Struktur

Durchgang 3: Prüfe Verzeichnis Verknüpfungen

Durchgang 4: Überprüfe die Referenzzähler

Durchgang 5: Überprüfe Gruppe Zusammenfassung

/: ***** DATEISYSTEM WURDE VERÄNDERT *****

  984458 inodes used (25.68%)

   93532 non-contiguous files (9.5%)

     980 non-contiguous directories (0.1%)

         # von Inodes mit ind/dind/tind Blöcken: 35367/266/0

 4593781 blocks used (59.93%)

       0 bad blocks

       0 large files

  847315 regular files

   88812 directories

    1049 character device files

    4089 block device files

       5 fifos

    7253 links

   43168 symbolic links (42289 fast symbolic links)

      11 sockets

--------

  991702 files
```

```
root@Microknoppix:/home/knoppix# tune2fs -O +ext_attr /dev/sdg7

tune2fs 1.41.12 (17-May-2010)

Das Setzen der Dateisystem-Eigenschaft »ext_attr« wird nicht unterstützt.

root@Microknoppix:/home/knoppix# tune2fs -O +resize_inode /dev/sdg7

tune2fs 1.41.12 (17-May-2010)

Das Setzen der Dateisystem-Eigenschaft »resize_inode« wird nicht unterstützt.

root@Microknoppix:/home/knoppix# tune2fs -O +filetype /dev/sdg7

tune2fs 1.41.12 (17-May-2010)

root@Microknoppix:/home/knoppix# tune2fs -O +flex_bg /dev/sdg7

tune2fs 1.41.12 (17-May-2010)

root@Microknoppix:/home/knoppix# tune2fs -O +huge_file /dev/sdg7

tune2fs 1.41.12 (17-May-2010)

root@Microknoppix:/home/knoppix# tune2fs -O +dir_nlink /dev/sdg7

tune2fs 1.41.12 (17-May-2010)

root@Microknoppix:/home/knoppix# tune2fs -O +extra_isize /dev/sdg7

tune2fs 1.41.12 (17-May-2010)

```

```
Last mounted on:          /media/sdg7

Filesystem UUID:          fa2129a4-adb7-2c1b-d087-df6dd07d6bf7

Filesystem magic number:  0xEF53

Filesystem revision #:    1 (dynamic)

Filesystem features:      has_journal dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize

```

http://www.gentooforum.de/artikel/19520/ext3-zu-ext4-konvertieren.html#post138035

----------

## flammenflitzer

man tune2fs 

```
resize_inode

                          Reserve  space  so the block group descriptor table

                          may grow in  the  future.   Tune2fs  only  supports

                          clearing this filesystem feature.
```

ext_attr habe ich nicht gefunden

----------

## mv

 *flammenflitzer wrote:*   

> ext_attr habe ich nicht gefunden

 

ext_attr gibt es auch schon bei ext2 und ext3. Du brauchst das nur, wenn andere Rechte als die Standard-Unix-Rechte vergeben willst (sys-apps/attr sys-apps/acl sys-libs/libcap oder SELinux). Glücklicherweise konnte man sich bisher unter Gentoo mit KDE davor drücken (GNOME hat leider schon lange den *kit-Ranz verpflichtend gemacht, und bei KDE wird es wohl auch bald kommen) - schrecklich, dass die großen Desktops jetzt das Sicherheitskonzept des Rechners vorschreiben wollen!

Man kann die extended attributes aber nur benutzen, wenn sie auch vom Kernel unterstützt werden (es gibt für jedes Filesystem Optionen zum Aktivieren von Extended Attributes und ggf. nochmals zusätzlichen Daten). Ich vermute, dass sich tune2fs weigert, die entsprechende Option zu aktivieren, wenn sie nicht vom Kernel unterstützt wird.

Edit 2: Im Zweifelsfall würde ich die Option aber nicht aktivieren: Vielleicht kann dann GNOME/KDE trotz installierter sys-apps/attr sys-apps/acl sys-libs/libcap nicht Dein Sicherheitskonzept außer Kraft setzen. (Kennt sich jemand mit den genannten Libraries genügend aus, um das zu bestätigen, d.h. werden die dann - selbst wenn sie mit root-Rechten aufgerufen werden - nicht an den Permissions herumfuhrwerken?)

Edit: Vergiss nicht, den fsck -pf /.... laufen zu lassen!

----------

