# Resize Reiserfs

## Starik

Hallo zusammen,

möchte gerne meine externe HD partitionieren. Dateisystem ist reiserfs. 

Zuerst wollte ich das mit qtparted machen, geht aber nicht wegen reiserfs. Dann habe ich das Tool, resize_reiserfs aus reiserfsprogs ausprobiert.

Ist problemlos durchgelaufen, allerdings ohne (für mich ersichtliche) Wirkung.

Folgende Code habe ich ausgeführt:

```
resize_reiserfs -s 10G /dev/extHDD
```

Hier habe ich allerdings ein kl. Problem: UNter /etc/fstab steht:

```

/dev/hda1               /boot           ext2            defaults,noatime        1 2

/dev/hda3               /               reiserfs        noatime                 0 1

/dev/hda2               none            swap            sw                      0 0

/dev/hda4               /home           reiserfs        defaults                0 0

/dev/extHDD           /media/extHDD     reiserfs        noauto,user,defaults    0 0

```

Also habe ich /dev/extHDD genommen. Wie gesagt: Keine Probleme - keine Wirkung.

Halte ich mich an dmesg:

```

scsi 0:0:0:0: Direct-Access     Seagate  FreeAgentDesktop 100F PQ: 0 ANSI: 4

sd 0:0:0:0: [sda] 976773168 512-byte hardware sectors (500108 MB)

sd 0:0:0:0: [sda] Write Protect is off

sd 0:0:0:0: [sda] Mode Sense: 1c 00 00 00

sd 0:0:0:0: [sda] Assuming drive cache: write through

sd 0:0:0:0: [sda] 976773168 512-byte hardware sectors (500108 MB)

sd 0:0:0:0: [sda] Write Protect is off

sd 0:0:0:0: [sda] Mode Sense: 1c 00 00 00

sd 0:0:0:0: [sda] Assuming drive cache: write through

 sda: sda1

sd 0:0:0:0: [sda] Attached SCSI disk

sd 0:0:0:0: Attached scsi generic sg0 type 0

usb-storage: device scan complete

ReiserFS: hda4: found reiserfs format "3.6" with standard journal

ReiserFS: hda4: using ordered data mode

ReiserFS: hda4: journal params: device hda4, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30

ReiserFS: hda4: checking transaction log (hda4)

ReiserFS: hda4: Using r5 hash to sort names

```

Wenn ich /dev/sda von resize_reiserfs bearbeiten lasse, dann kommt

```

reiserfs_open: the reiserfs superblock cannot be found on /dev/sda.

```

qtparted zeigt auch keinen freien Platz an. Er erkennt die externe HD als /dev/sda...

Hat irgendjemand eine Idee?

----------

## Yamakuzure

was sagt denn fdisk zu /dev/sda ?

sda ist ja die ganze platte, sda1 bis sdaN sind die partitionen, und deren Größe kann man festlegen (aka partitionieren) bzw. ändern.

----------

## SvenFischer

Wie hast Du denn die Partition vergrößert? Liegt da noch ein LVM dazwischen?

----------

## Starik

fdisk:

```

elenor dennis # fdisk /dev/sda

The number of cylinders for this disk is set to 60801.

There is nothing wrong with that, but this is larger than 1024,

and could in certain setups cause problems with:

1) software that runs at boot time (e.g., old versions of LILO)

2) booting and partitioning software from other OSs

   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/sda: 500.1 GB, 500107862016 bytes

255 heads, 63 sectors/track, 60801 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk identifier: 0xa4b57300

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1               1       60801   488384001    7  HPFS/NTFS

Command (m for help):

```

Aber um die PArtitionen neu aufzuteilen müsste ich ja die vorhandenen Daten löschen. Lässt sich das nicht vermeiden?

Danke!

----------

## SkaaliaN

Also eigentlich sollte parted reiserfs vergrößern und verkleinern können!?

http://de.wikipedia.org/wiki/GNU_Parted

----------

## Yamakuzure

Scherzbold!   :Rolling Eyes: 

```
Device Boot      Start         End      Blocks   Id  System

/dev/sda1               1       60801   488384001    7  HPFS/NTFS 
```

heisst, dass du eine Windoofs Partition drauf hast. Wie soll denn ein reiserfs-tool eine NTFS-Partition verkleinern können? 

Lösung:

Windoofs starten, PartitionMagic installieren, damit die Partition verkleinern, und dann eine neue dahinter oder davor erstellen.

PartitionMagic ist das einzige Programm, mit dem sich "mal eben" und gefahrlos eine HPFS/NTFS-Partition verändern lässt.

Edit: Da PartMagic kommerzielle Software ist, hier noch schnell Lösung 2, die ohne den Kauf teurer Software auskommt:

Dateien auf eine andere Festplatte (USB zum Beispiel) kopieren, dann die Platte neu partitionieren (die alte) und die Daten wieder zurückkopieren.

...Das Verfahren ist wahrscheinlich nichteinmal langsamer als die Partitionsgrößenänderung mit PM, da das meiner Erfahrung nach bei NTFS-Platten ewig dauert, und eine USB-Platte ist wahrscheinlich sogar günstiger als eine Vollversion von PartitionMagic...

----------

## SkaaliaN

 *Yamakuzure wrote:*   

> 
> 
> PartitionMagic ist das einzige Programm, mit dem sich "mal eben" und gefahrlos eine HPFS/NTFS-Partition verändern lässt.

 

scherzbold   :Rolling Eyes: 

Acronis Disk director kanns mindestens genauso. Im übrigen auch reiserfs, extx etc. !

http://www.acronis.de/company/inpress/2004/09-24-de-freenet-diskdirector.html

.....das zum Thema Partition Magic...

----------

## Yamakuzure

 *metal1ty wrote:*   

> Acronis Disk director

 Oh.. Ja, hab ich vergessen. Da mir andere Produkte schon gerne mal die Festplatte zerschrottet haben, und ich ähnliche Berichte schon öfters gehört habe, bin ich da etwas ignorant, zugegeben.  :Smile:  Vor allem wenn es um das "gefahrlos" geht.

Aber sage mal, was hat das damit zu tun, dass es *unmöglich* ist eine NTFS-Partition mit "resize_reiserfs" zu verändern?   :Wink: 

P.S.:

Paragon Partition Manager 8.5 Personal Edition von Paragon (CD-ROM) (Windows 98 / Vista / XP) EUR 19,68

Acronis Disk Director Suite 10 von Acronis Germany GmbH (CD-ROM) (Windows) EUR 40,18

Norton Partition Magic 8.0 von Symantec (CD-ROM) (Windows NT) EUR 73,71

...da hab ich mir ja auch gleich wieder das teuerste ausgesucht. typisch.

----------

## SkaaliaN

 *Yamakuzure wrote:*   

>  *metal1ty wrote:*   Acronis Disk director 
> 
> Aber sage mal, was hat das damit zu tun, dass es *unmöglich* ist eine NTFS-Partition mit "resize_reiserfs" zu verändern?  
> 
> 

 

in dem Post stand nichts davon das ich es angezweifelt habe  :Smile:  . Ich hatte lediglich auf den oberen Post geachtet und dabei den zweiten Post fdisks übersehen (ja, auch mein Adlerauge sieht mal was nicht..). Daher mein Vorschlag.

----------

## Hollowman

 *Quote:*   

> PartitionMagic ist das einzige Programm, mit dem sich "mal eben" und gefahrlos eine HPFS/NTFS-Partition verändern lässt. 

 

Das geht auch prima mit Gparted / parted. Hab ich letztens erst gemacht. Und da war sogar Vista drauf installiert.

Sebastian

----------

## Starik

Warum sagt eigentlich fdisk, dass das Dateisystm NTFS ist..

Irgendwie komisch. In qtparted sagt er aber, dass es ein reiserfs System ist.

Als reiserfs hab ich es auch damals erstellt...

```

elenor dennis # fdisk /dev/sda

The number of cylinders for this disk is set to 60801.

There is nothing wrong with that, but this is larger than 1024,

and could in certain setups cause problems with:

1) software that runs at boot time (e.g., old versions of LILO)

2) booting and partitioning software from other OSs

   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/sda: 500.1 GB, 500107862016 bytes

255 heads, 63 sectors/track, 60801 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk identifier: 0xa4b57300

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1               1       60801   488384001    7  HPFS/NTFS

Command (m for help):        

```

Auch komisch (zumindest für mich) ist folgendes:

Gerade hab ich nochmal einen Test gemacht:

```

elenor ~ # resize_reiserfs -s -1G /dev/extHDD

resize_reiserfs 3.6.19 (2003 www.namesys.com)

You are running BETA version of reiserfs shrinker.

This version is only for testing or VERY CAREFUL use.

Backup of you data is recommended.

Do you want to continue? [y/N]:y

Processing the tree: 0%....20%....40%....60%....80%....100%                      left 0, 127843 /sec

nodes processed (moved):

int        167 (0),

leaves     26470 (0),

unfm       26692715 (0),

total      26719352 (0).

check for used blocks in truncated region

ReiserFS report:

blocksize             4096

block count           119212416 (119474560)

free blocks           92481215 (92743351)

bitmap block count    3639 (3647)

Syncing..done

resize_reiserfs: Resizing finished successfully.

```

Danach habe ich mit df -h nachgeschaut und die Platte ist 1G kleiner. Aber weder in qtparted kann ich eine neue Partition erstellen,

noch mit fdisk:

```

elenor ~ # fdisk /dev/sda

The number of cylinders for this disk is set to 60801.

There is nothing wrong with that, but this is larger than 1024,

and could in certain setups cause problems with:

1) software that runs at boot time (e.g., old versions of LILO)

2) booting and partitioning software from other OSs

   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/sda: 500.1 GB, 500107862016 bytes

255 heads, 63 sectors/track, 60801 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk identifier: 0xa4b57300

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1               1       60801   488384001    7  HPFS/NTFS

Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4): 2

No free sectors available

Command (m for help):    

```

```

elenor ~ # fdisk /dev/extHDD

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel with disk identifier 0x625a9302.

Changes will remain in memory only, until you decide to write them.

After that, of course, the previous content won't be recoverable.

The number of cylinders for this disk is set to 60800.

There is nothing wrong with that, but this is larger than 1024,

and could in certain setups cause problems with:

1) software that runs at boot time (e.g., old versions of LILO)

2) booting and partitioning software from other OSs

   (e.g., DOS FDISK, OS/2 FDISK)

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): p

Disk /dev/extHDD: 500.1 GB, 500105217024 bytes

255 heads, 63 sectors/track, 60800 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk identifier: 0x625a9302

      Device Boot      Start         End      Blocks   Id  System

Command (m for help):    

```

Komisch, /dev/extHDD kann ich verändern. Aber würden nicht dann meine Daten verlorengehen?

Irgendwo muss hier ein Denkfehler liegen...

----------

## Yamakuzure

fdisk zeigt dir den Partitionstyp an, der in der Partitionstabelle angegeben ist. Beim Erstellen wird dieser normalerweise auf 0x83 gesetzt, Swap Partitionen haben 0x82. HPFS/NTFS ist typ 0x07

```
Befehl (m für Hilfe): t

Partitionsnummer (1-13): 1

Hex code (L um eine Liste anzuzeigen): L

 0  Leer            1e  Verst. W95 FAT1 80  Old Minix       bf  Solaris

 1  FAT12           24  NEC DOS         81  Minix / old Lin c1  DRDOS/sec (FAT-

 2  XENIX root      39  Plan 9          82  Linux Swap / So c4  DRDOS/sec (FAT-

 3  XENIX usr       3c  PartitionMagic  83  Linux           c6  DRDOS/sec (FAT-

 4  FAT16 <32M      40  Venix 80286     84  OS/2 verst. C:- c7  Syrinx

 5  Erweiterte      41  PPC PReP Boot   85  Linux erweitert da  Nicht-DS-Daten

 6  FAT16           42  SFS             86  NTFS volume set db  CP/M / CTOS /

 7  HPFS/NTFS       4d  QNX4.x          87  NTFS volume set de  Dell Utility

 8  AIX             4e  QNX4.x 2nd part 88  Linux Plaintext df  BootIt

 9  AIX bootfähig  4f  QNX4.x 3rd part 8e  Linux LVM       e1  DOS access

 a  OS/2 Bootmanage 50  OnTrack DM      93  Amoeba          e3  DOS R/O

 b  W95 FAT32       51  OnTrack DM6 Aux 94  Amoeba BBT      e4  SpeedStor

 c  W95 FAT32 (LBA) 52  CP/M            9f  BSD/OS          eb  BeOS fs

 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi ee  GPT

 f  W95 Erw. (LBA)  54  OnTrackDM6      a5  FreeBSD         ef  EFI (FAT-12/16/

10  OPUS            55  EZ-Drive        a6  OpenBSD         f0  Linux/PA-RISC b

11  Verst. FAT12    56  Golden Bow      a7  NeXTSTEP        f1  SpeedStor

12  Compaq Diagnost 5c  Priam Edisk     a8  Darwin UFS      f4  SpeedStor

14  Verst. FAT16 <3 61  SpeedStor       a9  NetBSD          f2  DOS sekundär

16  Verst. FAT16    63  GNU HURD / SysV ab  Darwin boot     fb  VMware VMFS

17  Verst. HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE

18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto

1b  Verst. W95 FAT3 70  DiskSecure Mult bb  Boot Wizard ver fe  LANstep

1c  Verst. W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT
```

Das Problem ist, dass du zwar auf einem anderen Typ ein Dateisystem erstellen kannst, die Tools aber jetzt Amok laufen, da Partitionstyp und Dateisystem nicht zusammenpassen.

Was du tun kannst, ist, die Partition zu mounten, die Dateien runterzukopieren, und den Typ auf 0x83 zu setzen. Das wäre dann eine reguläre Linux-Partition, und resize_reiserfs sollte keine Schmerzen mehr damit haben. Hoffentlich.

Aber eine Sicherung würde ich an deiner Stelle vorsichtshalber machen, es sei denn jemand hier weiss ganz genau, dass das Ändern der Partitionstabelle da nix kaputt machen kann.

----------

## firefly

Beim ändern des Partitionstyps wird die Partition an sich, also Position und Größe, nicht verändert. Es wird lediglich ein feld im "Partitionsheader" für die Partition in der Partitionstabelle verändert.

----------

## Guenther Brunthaler

Das Resizen eines Filesystems auf einer Partition und das Ändern der Partitiongröße selbst sind zwei verschiedene Operationen, müssen aber beide durchgeführt werden um das gewünschte Ergebnis zu erhalten.

Beim Verkleinern gehe ich immer so vor:

zuerst verkleinere ich das Dateisystem auf der Partition etwas mehr als ich eigentlich müsste, sagen wir ein paar Megabyte kleiner als ich sie eigentlich haben will. Dadurch ist sicher gestellt, dass das Dateisystem auf der Partition garantiert nichts mehr von dem Platz am Ende verwendet, welchen ich im nächsten Schritt abzwacken will.

Dann verkleine ich die Partition mit fdisk oder lvresize (falls es sich um eine LVM-Partition handelt) auf die neue gewünschte Größe.

Dann resize ich das Dateisystem erneut; diesmal ohne eine Größenangabe anzugeben. Dadurch passt es sich genau der neuen Größe der Partition an.

Der Grund warum ich 2 x resize statt nur einmal ist dass ich immer Angst habe, wie genau die gemachten Größenangaben von den verwendeten Tools interpretiert werden.

So runden viele der Tools, wie etwa fdisk, die Angaben zum nächsten passenden Vielfachen einer Zylindergröße der Festplatte auf oder ab, so dass man bei einer Angabe in GB nie sicher sein kann wie groß die Partition exakt wird.

Es wäre aber eine Katastrophe, wenn durch diese Rundung etwa resize_reiserfs das Dateisystem minimal größer macht als fdisk - Korruption oder Dateisystemfehler wären garantiert, die möglicherweise erst nach längerer Zeit auftreten.

Daher resize ich das Dateisystem zuerst absichtlich etwas kleiner, damit fdisk trotz allem Runden eine größere Größe einstellen wird; und resize danach erneut ohne Größenangabe um die tatsächliche neue Partitiongröße zu verwenden.

Einige Worte zum Resizen der Partitions selbst:

Es ist normalerweise zwar problemlos möglich existierende Partitions zu verkleinern.

Wenn man sie aber vergrößern will, bedeutet dies meist dass man andere Partitionen durch die Gegend verschieben muss um den notwendigen Platz zu schaffen.

Kommt dies häufiger vor, empfiehlt es sich einen logischen Volume Manager (etwa lvm2) zu installieren.

Damit ist es dann möglich, die Partitionen nahezu beliebig zu vergrößern oder zu verkleinern, selbst im laufenden Betrien, ohne jemals wieder fdisk anrühren zu müssen.

Außerdem kann man mit lvm beliebig viele Partitionen anlegen und unterliegt nicht den diesbezüglichen Beschränkungen von fdisk. Von anderen Vorteilen wie Snapshots und Verschieben von Partitionen auf andere Festplatten (selbst während man sie verwendet) ganz zu schweigen.

Da lvm2 auch keinen bemerkbaren Laufzeit-Overhead erzeugt (es basiert auf dem standardmäßig vorhandenen Device-Mapper Kernel-Modul und programmiert diesen quasi nur; es wird kein neuer Dienst oder Daemon für LVM2 benötigt), kann ich seine Verwendung nur sehr empfehlen.

Allerdings macht die Installation von LVM2 normalerweise nur Sinn wenn man eine neue Festplatte einrichtet, da man zuerst die Festplatte (oder einen Teil davon) für LVM2 vorbereiten muss, und erst dann kann man logische Partitionen in diesem Bereich anlegen.

Außerdem ist es schwierig die "/"-Partition als LVM2-Partition anzulegen, und praktisch unmöglich das mit /boot zu tun. Aber alle anderen Partitionen kann man problemlos zu LVM2-Partitionen machen.

Ein Nachteil von LVM ist es allerdings, dass Windows nichts mit solchen Partitionen anfangen kann. Ob dies ein Problem ist hängt vom Anwendungsfall ab.

----------

