[linux-support] Linux-Partition nicht mehr erkannt nach Win10 update

Markus Wernig wernigm at lugbe.ch
Wed Apr 8 18:48:12 CEST 2020


Hallo Markus

Zuerst mal wäre es gut, wenn du nur die relevanten Teile der Mail, auf
die du antwortest, in der Antwort zitierst. Sonst gibt das hier sehr
schnell unleserlichen Kabelsalat. Und auch der Hinweis, dass man das
Subject dem Thread anpassen soll statt "Re: Linux-support Digest..." ist
eigentlich ernst gemeint und auch nützlich :-)

So, zurück zum Thema. Ich denke jetzt einfach mal laut, ich hoffe, es
finden sich noch andere Mitdenker:

On 4/8/20 3:07 PM, Markus Müller wrote:

> kubuntu at kubuntu:~$ efibootmgr
> Fatal: Couldn't open either sysfs or procfs directories for accessing
> EFI variables.
>
> kubuntu at kubuntu:~$ lsblk
> NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
> sda      8:0    0 238,5G  0 disk
> ├─sda1   8:1    0   549M  0 part
> ├─sda2   8:2    0  74,4G  0 part
> ├─sda3   8:3    0   618M  0 part
> ├─sda4   8:4    0     1K  0 part => Linux-partition
> └─sda5   8:5    0    13G  0 part [SWAP]
  
Also definitiv kein UEFI-System (weder efivars noch eine EFI Partition).

Wie hast du den Dualboot denn eingerichtet? Hast du im Grub zwischen
Windows und Linux ausgewählt?

Kannst du die "Linux-Partition" mounten?

sudo mkdir /mnt/tmp
sudo mount -t ext4 -o ro /dev/sda4 /mnt/tmp
sudo ls -latr /mnt/tmp

> kubuntu at kubuntu:~$ sudo fdisk -l
> 
> Disk /dev/sda: 256.1 GB, 256060514304 bytes
> 255 heads, 63 sectors/track, 31130 cylinders, total 500118192 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 identifier: 0x5b1545cf
> 
>    Device Boot      Start         End      Blocks   Id  System
> /dev/sda1   *        2048     1126399      562176    7  HPFS/NTFS/exFAT
> /dev/sda2         1126400   157048882    77961241+   7  HPFS/NTFS/exFAT
> /dev/sda3       157050880   158316543      632832   27  Hidden NTFS WinRE
> /dev/sda4       158318590   500115455   170898433    5  Extended
> /dev/sda5       472774656   500115455    13670400   82  Linux swap / Solaris

OK, die Platte hat ein DOS Disklabel mit den beschriebenen 5
Partitionen. 3 davon sind "Primary" Partitions und eine "Extended". Das
ist OK, ist eine Beschränkung des DOS-Labels.

Aber hier beginnt es dann rätselhaft zu werden.

Das heisst nämlich, dass du eigentlich 6 Partitionen haben müsstest:
3x primary Windows, 1x Extended, 2x Linux.

Die Partitionen sda1-3 und sda5 sind auf 2048 Sektoren aligned, was OK ist.
/dev/sda4 beginnt bei Sektor 158318590 und endet bei Sektor 500115455,
also fast am Ende der Platte.

Der nächste auf einem Vielfachen von 2048 startende Sektor nach dem Ende
von sda3 (158316543) wäre 158316544, der übernächste 158318592. Dass die
Partition statt dessen bei 158318590 beginnt, ist unlogisch.

Als "Extended" Partition umfasst sie den ganzen Rest der Platte. Darin
müssten deine beiden Linux-Partitionen liegen - es ist aber nur mehr
eine sichtbar!
Es sieht so aus, als habe das Windows-Update hier den Eintrag für die
erste der beiden Partitionen tatsächlich gelöscht.

Jetzt stellt sich die Frage, wie sie wiederhergestellt werden kann. Hier
habe ich noch keine schlüssige Antwort, nur zwei mögliche Ansätze.

1) parted hat eine "rescue" Option, die "verlorene" Partitionen
wiederfinden kann:
parted(8):
   rescue start end
       Rescue a lost partition that was located somewhere between start
       and end. If a partition is found, parted will ask if you want to
       create an entry for it in the partition table.

Der vermutete Anfang der gelöschten Partition wäre in dem Fall nach
158318590, frühestens also 158318592. Das Ende muss vor 472774656
liegen. Ich würde jetzt mal aus einem Live-System das versuchen:

parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)   rescue 158318590 472774656

Falls er nichts (Sinnvolles) findet, nochmal je mit 158316543 und
158318592 als START versuchen.

2) Von Hand versuchen, die Partition innerhalb der bekannten Grenzen
wieder zu erstellen.

Das ist natürlich mühsam und fehleranfällig, aber falls parted nicht
klappt, vielleicht der einzige Weg. Allerdings geht mir hier eine
Überlegung nicht auf:

Unlogisch ist nämlich, dass file -s /dev/sda4 einen x86 boot sector
meldet. Der wäre tatsächlich am Beginn der Linux-Partition zu vermuten
(und nicht zu Beginn der Extended Partition, die min. 2 Sektoren vorher
anfängt).

Wenn also die Partition, die bei 158318590 beginnt, tatsächlich deine
ehemalige Linux-Partition ist, müsste die Extended Partition mindestens
zwei Sektoren früher anfangen. In dem Fall hätte der Windows-Installer
den Beginn der Extended Part. einfach auf den der Linux-Part. verschoben
und wir müssten nach dem ehemaligen Anfang der Ext.Part. suchen.

In beiden Fällen ist es möglich, dass wir anschliessend Grub neu
konfigurieren und ggf. Mount-Optionen anpassen müssen, da sich die
internen Partitionsnamen dadurch ändern können.

Aber das schauen wir dann vielleicht an, wenn 1) nicht funktioniert.

> error: no such partition
> Entering rescue mode
> grub rescue>

Das könnte darauf hindeuten, dass deine alte Linux-Partition auf
/dev/sda6 lag (beim Versuch, von einer ungültigen, aber existierenden
Partition zu booten, hätte ich eine andere Fehlermeldung erwartet).

Hang in there :-)

/markus


-- 
Markus Wernig                              🐧
Präsident Linux User Group Bern
PGP: D9203D2A4AD9FC3333DEEF9DF7ACC6208E82E4DC
---------------------------------------------
Linux User Group Bern    -   https://lugbe.ch
---------------------------------------------


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://maillists.lugbe.ch/pipermail/linux-support/attachments/20200408/763cff82/attachment-0001.sig>


More information about the Linux-support mailing list