OpenSuse: Partitionen nachträglich verändern bei Dualboot Installation mit Windows8.1

Hallo,

ich habe OpenSuse13.1 und Windows8.1 als Dualboot auf meinem PC eingerichtet.
Dummerweise habe ich einen Großteil meiner Festplatte als Datenpartition unter Windows in NTFS formatiert, weil ich mir dachte diese Partition dann als gemeinsame Partition von Windows und von Linux aus nutzen zu können.
Mittlerweile habe ich Windows8.1 auch unter OpenSuse13.1 virtualisiert und boote so gut wie gar nicht mehr die normale Windows-Installation.
Ich ärgere mich nun nicht eine größere Linux-Partition in ext4 angelegt zu haben.

Mein Wunsch ist es nun die bestehende Installation als Dualboot beizubehalten und die große NTFS-Datenpartition zu einem großen Teil entweder
a) zur ext4-Partition umzuformatieren
b) die bestehende Linux-Home-Partition damit zu vergrößern
c) beides

**Fragen: **

  • Wie kann ich die Linux /home Partition nachträglich mit einem Teil der NTFS-Partition vergrößern OHNE neu installieren zu müssen?

  • Ist es möglich eine neutrale ext4 Partition nur für bestimmte Daten anzulegen (ähnlich wie in Windows… Partition D: Daten, E: Programme, F: Musik …usw)?
    Ich meine z.B. einen Großteil der NTFS-Partition in ext4 zu formatieren OHNE dieser einen bestimmten Einbindungspunkt wie /home /opt… etc zuzuweisen, also quasi die Partition uneingebunden “frei in der Hardware schwebend” zu belassen und diese in Linux wie jetzt die NTFS partition nach belieben einzuhängen? Oder dieser einen “Wunscheinhängepunkt” wie z.B: /Daten_B zuzuweisen?

  • Ich mache mir Sorgen das nach einer Veränderung der jetzigen Partitionierung Linux von Grub nicht mehr gebootet wird, was durchaus sehr wahrscheinlich ist wenn ich richtig informiert bin, da die Partitionstabelle sich verändert. Falls dem so sein sollte: Wie kann ich Grub nach einer Partitionierungsveränderung möglichst einfach wieder reparieren?

Im voraus danke für jegliche Hilfe!

Gruß,
Thomas

Am besten mit gparted von einer LiveCD, z.B. der openSUSE Rettung-/Rescue-CD, oder der GParted-LiveCD:
http://gparted.org/livecd.php

Damit kannst du Partitionen hinzufügen und löschen, verkleinern und vergrößern, sowie sogar verschieben und es sollte alle gängigen Filesysteme unterstützen.

  • Ist es möglich eine neutrale ext4 Partition nur für bestimmte Daten anzulegen (ähnlich wie in Windows… Partition D: Daten, E: Programme, F: Musik …usw)?
    Ich meine z.B. einen Großteil der NTFS-Partition in ext4 zu formatieren OHNE dieser einen bestimmten Einbindungspunkt wie /home /opt… etc zuzuweisen, also quasi die Partition uneingebunden “frei in der Hardware schwebend” zu belassen und diese in Linux wie jetzt die NTFS partition nach belieben einzuhängen? Oder dieser einen “Wunscheinhängepunkt” wie z.B: /Daten_B zuzuweisen?

Natürlich.
Wenn du keinen Mountpunkt zuweist, kannst du sie durch Klick im Dateimanager einbinden, ganz so wie einen USB-Stick z.B.
Evtl. benötigst du aber das root-Passwort zum Mounten, das lässt sich aber mit einer entsprechenden polkit-Konfiguration umgehen.

Oder du kannst natürlich auch jeden beliebigen Mountpunkt zuweisen, sogar in deinem Homeverzeichnis.
Am einfachsten geht das wahrscheinlich mit YaST.
Oder da kannst natürlich auch mehrere einzelne Verzeichnisse per Symlink (“Verknüpfung”) auf die neue Partition “auslagern”.

  • Ich mache mir Sorgen das nach einer Veränderung der jetzigen Partitionierung Linux von Grub nicht mehr gebootet wird, was durchaus sehr wahrscheinlich ist wenn ich richtig informiert bin, da die Partitionstabelle sich verändert. Falls dem so sein sollte: Wie kann ich Grub nach einer Partitionierungsveränderung möglichst einfach wieder reparieren?

Je nach den Änderungen an der Partitionierung die du durchführst, könnte das tatsächlich passieren.

Den Grub kannst du folgendermaßen neu installieren, falls notwendig (ich geh jetzt mal von grub2 aus):

  • von LiveCD booten (sh. oben), oder vom Installationsmedium und “Rettungssystem” auswählen
  • / Partition mounten, z.B. “mount /dev/sda1 /mnt”
  • ein paar notwendige System-Dateisysteme mounten:
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys

  • zum installierten System wechseln:
chroot /mnt
  • falls du eine separate Partition für /boot hast, solltest du die jetzt auch mounten:
mount /boot
  • Grub2 Konfiguration neu erstellen, und den Bootloader neu installieren:
grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-install /dev/sda

Es könnte natürlich sein dass /dev/sda die LiveCD ist, dann musst du eben entsprechend /dev/sdb verwenden. Führe “fdisk -l” aus um die vorhandenen Partitionen aufzulisten.

Der letzte Punkt installiert den Grub2 in den MBR, das sollte auf jeden Fall funktionieren und auch ok sein wenn du kein Multi-Boot System mehr hast. Du kannst ihn aber natürlich nachher mit YaST->System->Bootloader wieder in die Root-Partition z.B. schreiben.
Statt der “grub2-install” Zeile könntest du aber auch “update-bootloader --reinit” aufrufen, das sollte das gleich anhand deiner Konfiguration machen.

Auch noch wichtig:
Je nach den Veränderungen musst du aber auch die /etc/fstab anpassen (am einfachsten auch gleich von der LiveCD aus) damit das System korrekt bootet, da dort normalerweise per id gemounted wird und die enthält die Partitionsnummer.

Hallo wolfi323,

Am besten mit gparted von einer LiveCD, z.B. der openSUSE Rettung-/Rescue-CD, oder der GParted-LiveCD

Und wenn ich gparted in meinem installierten Suse verwende? Macht das einen Unterschied ob aus meiner Installation heraus oder von liveCD?

Je nach den Änderungen an der Partitionierung die du durchführst, könnte das tatsächlich passieren.

Das möchte ich unbedingt verhindern!
Wenn ich die NTFS-Partition verkleinere und den Rest als unmounted ext4 formatiere hat das dann Auswirkungen auf Grub?
Ich denke gerade das es Auswirkungen auf das Linux-Boot-System hat wenn ich neuen Festplattenspeicher mounte, aber das dies hoffentlich nicht der Fall ist wenn ich den neuen ext4 Speicherplatz nicht mounte! Ist das so?

Du kannst keine eingebundenen Partitionen verändern. Und zumindest die / Partition kannst du im laufenden System nicht aushängen (/home sollte gehen wenn du dich als root anmeldest).
Wenn du von einer LiveCD bootest, ist natürlich überhaupt keine Partition gemountet.

Das möchte ich unbedingt verhindern!
Wenn ich die NTFS-Partition verkleinere und den Rest als unmounted ext4 formatiere hat das dann Auswirkungen auf Grub?
Ich denke gerade das es Auswirkungen auf das Linux-Boot-System hat wenn ich neuen Festplattenspeicher mounte, aber das dies hoffentlich nicht der Fall ist wenn ich den neuen ext4 Speicherplatz nicht mounte! Ist das so?

Grub hat absolut nichts mit mounten zu tun.

Grub ist es im Prinzip auch egal, welche Partitionen vorhanden sind.

Allerdings muss grub natürlich seine Dateien und den Kernel/die initrd finden. Wenn du die Partitionierung änderst (also konkret Partitionen hinzufügst oder löschst), kann es passieren, dass Grub auf den falschen Partitionen danach sucht.

Außerdem muss der Bootcode im MBR erst mal grub starten können. Auch das könnte durch die Umpartitionierung scheitern. Ein Teil von Grub wird nämlich nicht in Dateien gespeichert (zu dem Zeitpunkt wo grub geladen wird gibts natürlich noch kein Betriebssystem, grub ist ja dazu da ein Betriebssystem zu laden) sondern direkt in Sektoren auf der Festplatte (normalerweise am Anfang der / Partition). Wenn Partitionen verschoben werden, kann es sein dass diese Sektoren nicht mehr gefunden werden.
Es ist also immer gut bei sowas, sicherheitshalber eine Live- oder Installations-CD/DVD (oder USB-Stick) bereit zu haben.

Um jetzt abschätzen zu können ob Probleme zu erwarten sind, solltest du mal deine aktuelle Partitionierung posten (und die Datei /etc/fstab), und welche Änderungen du konkret vorhast.

fdisk -l

Hier die Ausgabe von “fdisk -l”:

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes, 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: gpt

Start End Size Type Name

1 2048 2097151 1023M Windows recover Basic data partition
2 2097152 2834431 360M EFI System EFI system partition
3 2834432 3096575 128M Microsoft reser Microsoft reserved partition
4 3096576 206974975 97.2G Microsoft basic Basic data partition
5 206974976 207896575 450M Windows recover
6 207896576 310296575 48.8G Microsoft basic Basic data partition
7 310296576 412696575 48.8G Microsoft basic Basic data partition
8 412696576 1641494527 586G Microsoft basic Basic data partition
9 1641496576 1846296575 97.7G Microsoft basic Basic data partition
10 1846296576 1866776575 9.8G Microsoft basic Basic data partition
11 1866776576 1925296127 27.9G Microsoft basic Basic data partition
12 1925298176 1953513471 13.5G Microsoft basic Basic data partition

Disk /dev/sdb: 16.0 GB, 16013942784 bytes, 31277232 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
Disk label type: dos
Disk identifier: 0xfde7d2db

Device Boot Start End Blocks Id System
/dev/sdb1 2048 31275007 15636480 73 Unknown

Disk /dev/sdc: 32.5 GB, 32455524352 bytes, 63389696 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
Disk label type: dos
Disk identifier: 0x04dd5721

Device Boot Start End Blocks Id System
/dev/sdc1 * 63 63389695 31694816+ c W95 FAT32 (LBA)

Zur Info:
Die Partitionen 9, 10 und 11 sind meine Linux Partitionen, unabhängig was da steht!
9=/home
10=swap
11=/
Die Partition 2 ist meine /boot -Partition!

**Und Hier /etc/fstab:
**
/dev/disk/by-id/ata-WDC_WD10EZEX-60ZF5A0_WD-WMC1S7029935-part10 swap swap defaults 0 0
/dev/disk/by-id/ata-WDC_WD10EZEX-60ZF5A0_WD-WMC1S7029935-part11 / ext4 acl,user_xattr 1 1
/dev/disk/by-id/ata-WDC_WD10EZEX-60ZF5A0_WD-WMC1S7029935-part2 /boot/efi vfat umask=0002,utf8=true 0 0
/dev/disk/by-id/ata-WDC_WD10EZEX-60ZF5A0_WD-WMC1S7029935-part9 /home ext4 defaults 1 2

Ok, und was willst du jetzt machen?
Die Partition 8 verkleinern und im freigewordenen Bereich eine neue anlegen?

Ich kenne mich mit GPT nicht aus, aber das würde doch gerade die Partitionsnummer der /home, /swap und / Partitionen ändern, oder?

/boot ändert sich dann nicht, daher sollte grub trotzdem noch den Kernel finden (/boot wird normalerweise über die Partitionsnummer angesprochen, sh. /boot/grub2/grub.cfg).
Grub sollte also auch nachher noch funktionieren.
Die / Partition wird dem Kernel eh per LABEL übergeben wie gesagt, also sollte auch das passen.

Aber wie erwähnt wirst du die fstab anpassen müssen, also so würde ich sagen:

/dev/disk/by-id/ata-WDC_WD10EZEX-60ZF5A0_WD-WMC1S7029935-part11 swap swap defaults 0 0
/dev/disk/by-id/ata-WDC_WD10EZEX-60ZF5A0_WD-WMC1S7029935-part12 / ext4 acl,user_xattr 1 1
/dev/disk/by-id/ata-WDC_WD10EZEX-60ZF5A0_WD-WMC1S7029935-part2 /boot/efi vfat umask=0002,utf8=true 0 0
/dev/disk/by-id/ata-WDC_WD10EZEX-60ZF5A0_WD-WMC1S7029935-part10 /home ext4 defaults 1 2

Also jeweils um 1 erhöhen.

Sonst wird das System nicht booten, weil z.B. /home nicht gemountet werden kann.

Genau das!

Aber wie erwähnt wirst du die fstab anpassen müssen, also so würde ich sagen:
Code:
[FONT=Lucida Grande]/dev/disk/by-id/ata-WDC_WD10EZEX-60ZF5A0_WD-WMC1S7029935-part11 swap swap defaults 0 0
/dev/disk/by-id/ata-WDC_WD10EZEX-60ZF5A0_WD-WMC1S7029935-part12 / ext4 acl,user_xattr 1 1
/dev/disk/by-id/ata-WDC_WD10EZEX-60ZF5A0_WD-WMC1S7029935-part2 /boot/efi vfat umask=0002,utf8=true 0 0
/dev/disk/by-id/ata-WDC_WD10EZEX-60ZF5A0_WD-WMC1S7029935-part10 /home ext4 defaults 1 2[/FONT]
Also jeweils um 1 erhöhen.

Sonst wird das System nicht booten, weil z.B. /home nicht gemountet werden kann.

Hmmm… also grub wird bei der geplanten Veränderung trotz Nummerierungs-Änderung den Kernel finden sagst Du?
Aber grub kann nicht booten weil vorher die fstab verändert werden muss.
Die fstab verändere ich nach Abschluss der Partitionierung auch über live-cd, oder? Oder wie sonst?

Ja, der Kernel ist ja auf /boot, also Partition 2.

Hm, Moment mal.
Ich sehe gerade, dass Partition 2 nach /boot/efi gemountet wird, also hast du scheinbar gar keine eigene /boot Partition, sondern der Kernel ist auf der / Partition.
Dann musst du wohl auf jeden Fall die Grub-Konfiguration neu erstellen, sh. vorher (der letzte Schritt mit “grub2-install” sollte nicht notwendig sein, kann aber auch nicht schaden).

Oder du änderst /boot/grub2/grub.cfg händisch, bzw. drückst ‘e’ im Bootmenü um den Eintrag zu bearbeiten (sh. unten).
Im Menüeintrag sollte sowas wie “set root=‘hd0,msdos11’” stehen, das müsstest du entsprechend anpassen (also zu “set root=‘hd0,msdos12’”).
Falls da “set root=‘hd0,gpt11’” steht, musst du es natürlich in “set root=‘hd0,gpt12’” ändern usw.
grub2-mkconfig kümmert sich da halt automatisch drum.

Aber grub kann nicht booten weil vorher die fstab verändert werden muss.

Grub kann schon booten, aber das System wird in den Emergency Mode wechseln weil notwendige Partitionen nicht gemountet werden können.

Die fstab verändere ich nach Abschluss der Partitionierung auch über live-cd, oder? Oder wie sonst?

Ja, zum Beispiel.
Oder im Emergency Modus, wenn das Booten fehlschlägt.

Im schlimmsten Fall (wenn der Emergency Modus aufrund eines Fehlers nicht funktioniert) drücke ‘e’ im Bootmenü (wenn das Linux ausgewählt ist), suche nach der Zeile die mit “linux=” oder “linuxefi=” anfängt, und hänge “init=/bin/sh” an, und drücke ‘F10’ zum Booten.
Dann solltest du in ein minimales Textsystem kommen (mit deiner Root-Partition gemountet), wo du die /etc/fstab editieren können solltest.

PS:
In diesem Fall (nur Verkleinerung der Windows Partition und anlegen einer neuen) sollte das auch im laufenden System gehen, mit YaST z.B.

Danach einfach YaST->System->Bootloader aufrufen und OK klicken damit der Bootloader neu installiert/die Konfiguration neu erstellt wird.

Es könnte sein, dass YaST nach Änderung der Partitionierung die fstab automatisch anpasst.
Das weiß ich jetzt nicht genau, wäre aber fast zu erwarten.

Wenn nicht musst du die fstab trotzdem ändern, oder schalte in YaST für die 3 Partitionen (/home, / und swap) um auf Mounten per UUID oder Volume-Kennung (in YaST->System->Partitionierer, links auf dem Pfeil neben “Festplatten”, dann den Pfeil neben der entsprechenden Festplatte klicken, die Partition wählen, “Bearbeiten” klicken, und “Fstab-Optionen”. Für Volume-Kennung musst du natürlich auch noch ein Label d.h. Datenträgernamen angeben).

Also letzterer Tipp gefällt mir da eindeutig am besten! :wink:

Kann ich die NTFS-Partition verkleinern und den neuen Teil in ext4 formatieren UND mounten mit dieser Methode?
Oder geht das nur ohne mounten?

Was meinst Du? Mit gparted oder dem Yast-Partitions-Tool?

Welche Methode jetzt?
Natürlich kannst du die neu angelegte ext4 Partition mounten, egal wie du sie anlegst.
Wenn du sie in YaST anlegst, kannst du gleich dazu sagen dass und wohin sie gemountet werden soll.

Über das Mounten der neuen Partition brauchst dir keine Sorgen machen. Das kannst du immer noch einrichten, oder sie eben halt einfach im Dateimanager mounten wie einen USB-Stick.

Was meinst Du? Mit gparted oder dem Yast-Partitions-Tool?

Ist im Prinzip egal.
Ich würds mal mit YaST probieren. Allerdings weiß ich jetzt nicht, ob der die NTFS-Partition verkleinern kann.
Wenn nicht nimm halt gparted.

Die neue Partition würde ich aber auf jedenfall mit YaST anlegen, wie gesagt kannst du dann auch gleich einen Eintrag in der fstab anlegen lassen, damit sie beim Booten gemountet wird. Außerdem sollte dann auch gleich die fstab entsprechend angepasst werden dass auch die anderen Partitionen gemountet werden können.

Hallo wolfi323,

ich habe Deine wertvollen Informationen nun umgesetzt. An dieser Stelle vielen Dank für Deine Hilfe!

Anfänglich gab es ein Problem:
Die NTFS-Partition, die ich verkleinern wollte war über gparted nicht lesbar und es gab eine Meldung:
“Warning: Unable to read the contents of this file system…”.
Ich war dadurch zunächst nicht in der Lage die NTFS-Partition zu bearbeiten.
Diese Warnung wurde bei mir für die beiden NTFS-Partitionen ausgegeben, die ich gemeinsam mit Linux und Windows genutzt habe. Die NTFS-Partitionen die nur über Windows genutzt werden sind ohne den Warn-Hinweis und problemlos les- und bearbeitbar über gparted.

Ich habe also die entsprechende NTFS-Partition über Windows neu formatiert (vorab Daten auf externer Festplatte gesichert)… und anschließend wieder OpenSuse gebootet.
Jetzt war die NTFS-Partition ohne Warn-Hinweis und problemlos über gparted bearbeitbar!

Das habe ich also getan.
Partition verkleinert über gparted und anschließend den freigewordenen Fesplattenspeicher über Yast in ext4 formatiert. Dann Yast-Bootloader gestartet und mit <ok> bestätigt.
Die neue Partition wurde bei mir automatisch als sda13 gekennzeichnet, so dass sich die anderen Nummern nicht verändert haben… sehr praktisch! Und das obwohl die neue Partition vor den bisherigen Linux-Partitionen liegt!

Der PC bootet problemlos… alles reibungslos abgelaufen!

In einem nächsten Schritt habe ich dann noch über Yast die neue Partition in mein home-Verzeichnis eingehängt und nochmal den Bootloader über Yast neu konfiguriert.
Auch jetzt Bootvorgang ohne Probleme. Alles funktioniert tadellos.

Abschließend musste ich nur noch die Partition für alle Benutzer freigeben (war auf root eingestellt)… fertig.

Jetzt würde ich der neuen Partition gerne noch einen anderen Namen geben. Bislang wird diese als “primary” unter Dolphin angezeigt.
Kannst Du mir bitte noch sagen wie ich die Bezeichnung abändern kann? Habe bislang die entsprechende Option nicht finden können.

Hm. War die Partition vielleicht gemounted?

Ist natürlich jetzt schwer zu sagen was der Grund gewesen ist, vor allem ohne die exakte Fehlermeldung… :wink:

Die neue Partition wurde bei mir automatisch als sda13 gekennzeichnet, so dass sich die anderen Nummern nicht verändert haben… sehr praktisch! Und das obwohl die neue Partition vor den bisherigen Linux-Partitionen liegt!

Gut. Wie gesagt, ich weiß nicht genau wie das bei GPT gehandhabt wird.

Der PC bootet problemlos… alles reibungslos abgelaufen!

In einem nächsten Schritt habe ich dann noch über Yast die neue Partition in mein home-Verzeichnis eingehängt und nochmal den Bootloader über Yast neu konfiguriert.
Auch jetzt Bootvorgang ohne Probleme. Alles funktioniert tadellos.

Freut mich zu hören! :slight_smile:

Jetzt würde ich der neuen Partition gerne noch einen anderen Namen geben. Bislang wird diese als “primary” unter Dolphin angezeigt.
Kannst Du mir bitte noch sagen wie ich die Bezeichnung abändern kann? Habe bislang die entsprechende Option nicht finden können.

Entweder mit “e2label” (z.B. “sudo e2label /dev/sda13 NEUES_LABEL”, sh. auch die man-page “man e2label”), oder in YaST “Bearbeiten”->“Fstab-Optionen”->“Volume-Kennung” (hab ich ja eh schon erwähnt, oder? :wink: )

Die Partition war nicht gemounted!
Ich habe sie testweise gemounted. Nach dem mounten war die Fehlermeldung weg und die Partition problemlos durch gparted lesbar!

Die vollständige Fehlermeldung lautet:
*"Warning:*Unable to read the contents of this file system!
Because of this some operations may be unavailable.

The cause might be a missing software package.
The following list of software packages for ntfs
file system support: ntfsprogs / ntfs-3g."

Ich habe es überprüft: ntfsprogs und ntfs-3g sind bei mir installiert. Sonst gäbe es ja auch die gleiche Meldung bei den anderen NTFS-Partitionen.
Ich vermute den Fehler in Zusammenhang mit der gemeinsamen Nutzung der Partitionen von Linux und Windows aus. Ich hatte bis vor kurzem noch den Schnellstart in Windows8.1 aktiviert, was - wie ich mittlerweile gelesen habe - zu Fehlern in Zusammenhang mit einer parallelen Nutzung von Windows-Partitionen durch Linux führt.
(siehe http://www.heise.de/open/artikel/Linux-und-Windows-8-Schnellstart-gefaehrdet-Daten-1780057.html).
Ich denke das es aus diesem Grund zu irgendwelchen Fehlern im Dateisystem o.ä. auf den Partitionen gekommen ist.

Entweder mit “e2label” (z.B. “sudo e2label /dev/sda13 NEUES_LABEL”, sh. auch die man-page “man e2label”), oder in YaST “Bearbeiten”->“Fstab-Optionen”->“Volume-Kennung” (hab ich ja eh schon erwähnt, oder? :wink: )

Danke!
Habe die Volume-Kennung nun über Yast geändert. Ich dachte mir schon aufgrund Deiner vorherigen Erwähnung das ich diesem Weg einschlagen kann, war mir aber nicht 100% sicher, da Du die Volume-Kennung in einem anderen Zusammenhang erwähnt hattest. :wink:

Ja.
Vermutlich wird dann das der Grund gewesen sein.

Ich dachte mir schon aufgrund Deiner vorherigen Erwähnung das ich diesem Weg einschlagen kann, war mir aber nicht 100% sicher, da Du die Volume-Kennung in einem anderen Zusammenhang erwähnt hattest. :wink:

Ja, im Zusammenhang mit Mounten per Label. Aber das Label (“Volume-Kennung”) ändern, geht auf die selbe Weise, auch wenn du nicht per Label mounten willst.