Vraag Windows 10-upgrade leidde tot noodreparatie


Ik was dual-booting Windows 7 en Linux Ubuntu op mijn bureaublad, en vandaag is de dag dat ze gratis Windows 10-upgrades uitgeven. Hoe spannend! Ik kreeg de update en deze was aan het installeren en ik ging weg om een ​​dutje van 30 minuten te doen. Toen ik echter terugkeerde naar mijn computer, leidde dit me naar de prompt voor het redden van de grub.

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

Ik krijg het volgende wanneer ik typ ls:

grub rescue> ls
(hd0) (hd0,msdos5) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1)

Na een snelle blik door de mensen die de prompt voor het herstellen van de grub tegenkwamen, typte ik set en kreeg het volgende

grub rescue> set
cmdpath=(hd0)
prefix=(hd0,msdos6)/boot/grub
root=hd0,msdos6

Ik was nog steeds een beetje verdwaald na het vinden van bepaalde commando's zoals normal werkte niet en toen vond ik een video-tutorial waarin je opstart van een Linux image-cd en een aantal opdrachten uitvoert op de terminal. Gelukkig had ik mijn CD bij me en begon ik daar. Toen ik typte sudo fdisk -l in de terminal echter, dit is wat ik kreeg:

ubuntu@ubuntu:~$ sudo fdisk -l

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 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: 0xc03ede74

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS/exFAT
/dev/sda2          206848  1547022335   773407744    7  HPFS/NTFS/exFAT
/dev/sda3      1547022336  1547943935      460800   27  Hidden NTFS WinRE
/dev/sda4      1547945982  1953521663   202787841    f  W95 Ext'd (LBA)
/dev/sda5      1915731968  1953521663    18894848    7  HPFS/NTFS/exFAT

Zegt hier dat geen van mijn apparaten het Linux-systeem in zich heeft! En ik kon de videozelfstudie niet meer volgen dan dat ...

Ik plaagde mijn brein een beetje en stelde vast dat sda2 mijn Windows-systeem bevatte (aangezien ik me herinner dat mijn C: schijf ongeveer 700-achtig GB aan ruimte heeft). Na een beetje meer na te denken, herinner ik me dat ik ongeveer 200-ish GB van mijn harde-schijfruimte toewijs aan iets dat Ubuntu gerelateerd is bij het installeren van Ubuntu. Ik herinner me niet precies wat, maar ik denk dat het in wezen Ubuntu "harde schijfruimte" was en er geen opstartbestanden in stonden. Ik heb twee andere dingen toegewezen voor linux, maar deze waren erg klein in omvang (maar nog niet het markeren van 1 GB).

Kan iemand hier mij helpen mijn upgrade weer op het goede spoor te krijgen? Ik vind het niet erg als ik uiteindelijk de partities die Linux in zich hebben volledig moet verwijderen.


66
2017-07-29 22:44


oorsprong


Als de LInux-partitie een logische Windows is, wordt de partitietabel hiermee niet herschreven. Gebruik testdisk. Sommigen hebben testdisk gebruikt om het te herstellen en grub opnieuw op MBR geïnstalleerd en alles weer normaal. Maar u moet alle partities correct opnemen als Primair en logisch om te kunnen werken. cgsecurity.org/wiki/TestDisk_Step_By_Step - oldfred
In de bovenstaande lay-out ziet het ernaar uit dat er aan het einde van de schijf nog maar 3505 sectoren over zijn na de nieuwe /dev/sda5 of (hd0,msdos5) partitie, die slechts 1,7 MB zou bedragen, dus de Linux-partitie kon zich daar nauwelijks verbergen. Mijn beste gok is dat de vermelding van de Linux-partitie op de een of andere manier in die plaats is verschoven (# 5 in plaats van # 6) en dat het type op onverklaarbare wijze is veranderd. Het eerste wat je zou moeten proberen ls (hd0,msdos5)/op de GRUB-reddingsprompt. - Josip Rodin
nog een reden om geen ramen te gebruiken, zoals een onwetend OS - Aydin K.


antwoorden:


Op mijn computer was Windows 8 vooraf geïnstalleerd, dus ik heb de Windows-partitie verkleind om plaats te maken voor Ubuntu. Zo werkte het het afgelopen jaar. Na de tweede herstart in Windows 10-upgrade startte de computer niet meer. GRUB alleen weergegeven a grub rescue opdrachtprompt. Ik kwam er later achter dat het probleem zich voordeed omdat Windows op een of andere manier het partitieschema veranderde. De opstartpartitie (met normale GRUB-gegevens) was niet langer waar GRUB het verwachtte. Ik weet niet hoe en waarom dit gebeurde.

Het eerste dat je in de reddingsmodus kunt doen, is door de partities te zien met de ls opdracht. De mijne waren:

  • (Hd0, gpt1)
  • (Hd0, gpt2)
  • enz.

Probeer uit te vinden welke partitie je opstartpartitie is. Er is geen tab voltooiing, moet je het volledig uittypen. Ik probeerde de volgende opdrachten totdat ik de juiste partitie vond:

ls (hd0,gpt1)/
ls (hd0,gpt1)/boot
ls (hd0,gpt2)/

enz.

Typ dan set in dezelfde prompt. Het toont waar GRUB naar zijn bestanden zoekt. In mijn geval (hd0, gpt6) is verplaatst naar (hd0, gpt7). De ingestelde opdracht wordt weergegeven:

prefix=(hd0,gpt6)/boot/grub
root=hd0,gpt6

Om terug te keren naar de normale GRUB begin je met het veranderen van de prefix instelling om naar de juiste partitie te wijzen. In mijn geval was het bevel:

set prefix=(hd0,gpt7)/boot/grub

Dan kunt u overschakelen van de redding naar de normale modus:

insmod normal
normal

Men zou ook het rootinstelling met:

set root=(hd0,gpt7)

Maar dit is niet strikt noodzakelijk, omdat het niet van belang is voor Windows-kettingladen. Eenmaal in het normale GRUB-menu kun je Windows opstarten en je Windows-upgrade voltooien. Het probleem is dat je bij elke reboot tegen redding over de juiste partities moet vertellen. Dat is hoe ik het deed. Ik heb het probleem van GRUB voor later achtergelaten omdat ik niet zeker wist of Windows nog wat meer wijzigingen aan de partities of het opstarten zou aanbrengen.

Toen Windows klaar was, begon ik GRUB-problemen op te lossen. druk op e om opstartopties voor Ubuntu te bewerken. Ik heb alles veranderd (hd0,gpt6) naar (hd0,gpt7) en Ubuntu zijn opgestart.

Ik gebruik echter een gecodeerde partitie en cryptswap. Bij de start vroeg Ubuntu me om de wachtwoordzin. Gelukkig heb ik het opgeslagen bij de installatie van Ubuntu en ingevoerd bij de boot. Ubuntu is zonder problemen opgestart.

Ik heb toen de /boot/grub/grub.cfg bestand waar ik heb vervangen (hd0,gpt6) met (hd0,gpt7) en uitgevoerd:

sudo grub-install

Op dat moment was het enige resterende probleem de versleuteling. Omdat het root-Ubuntu-partitienummer met één is verhoogd (7 in plaats van 6), heeft de swappartitie een soortgelijke wijziging ondergaan. Ik moest het veranderen /etc/crypttab bestand waar naartoe wordt verwezen /dev/sda8 in plaats van /dev/sda7.

Ik gebruik slechts twee partities voor Ubuntu (root en swap). Als andere besturingssystemen naast Windows meer partities gebruiken, zijn mogelijk meer wijzigingen vereist. Vooral als partities worden gemount volgens hun nummers en niet door hun UUID's. Kijk eens naar je /etc/fstab. Als de partities worden geïdentificeerd door UUID, zouden er geen problemen moeten zijn. Maar als er zijn /dev/... regels moet het aantal worden gecorrigeerd als deze partities opnieuw zijn genummerd.


60
2017-07-31 12:12



Dit was een geweldig antwoord voor mij. Ik had geen schijf van Ubuntu en was mijn Windows aan het upgraden van 8.1 naar 10 en had hetzelfde probleem. Dit antwoord krijgt dus extra bijval omdat ik het gewoon kon invoeren en door kon gaan tot de update was voltooid. Bedankt voor het opslaan van mijn spek. - dibs
Deze oplossing werkte perfect voor mij toen Win 10 besloot om zichzelf te upgraden en de opstartrecords te verknoeien (mijn upgrade van 7 naar 10 verliep zonder problemen) - pedorro
Heb geprobeerd ls (hd0,msdos1)/ ls (hd0,msdos1)/boot ls (hd0,msdos2)/ etc. voor alle inzendingen van ls commando, en elke keer dat het verzint error: unkown filesystem. - Jacques MALAPRADE
Bedankt, dat hielp. Een ding dat voor mij niet duidelijk was (omdat ik nieuw voor zowel Ubuntu als Grub ben) was dat het bewerken van de GRUB-configuratie gedaan moest worden na het booten in Ubuntu (en niet in de mini-Emacs, die het opslaan niet ondersteunt bestand blijkbaar.) Dus ik heb de configuratie opgestart en vervolgens bewerkt sudo nano /boot/grub/grub.cfg en rende toen sudo grub-install /dev/sda (om een ​​of andere reden faalde de aanroep zonder de parameter voor mij). En alleen dan werkten de permanente veranderingen. - Nikita G.
Beproefde ls (hdo, msdos1) enz. Voor alle vermeldingen. Krijg fout onbekend bestandssysteem - Ashley G


Het installeren van vensters (of het upgraden ervan) naast linux kan problematisch zijn.

Probeer dit: https://help.ubuntu.com/community/Boot-Repair



Ik gebruikte het om een ​​probleem op te lossen nadat ik het Windows 10-technologiepreview had geïnstalleerd en het werkte. Kort gezegd, wat het doet is grub opnieuw installeren om te werken met alle momenteel geïnstalleerde besturingssystemen. Zorg ervoor dat je het vertelt om grub te installeren op je Linux-partitie (sd #).

Succes!


13
2017-07-29 22:50



Hoi! Bedankt dat je de tijd hebt genomen om te helpen! Ik ben eigenlijk niet zo zeker welke partitie het is! Maar ik zal wat rondfladderen om te zien of het werkt. - LChaos2
Geen probleem! Altijd blij om te helpen. - Patrick
Hoi! Dus ik heb de bootreparatieschijf opgestart en de aanbevolen reparatie gebruikt. Ik deed dit en herstartte mijn computer, maar het brengt me naar Windows Boot Manager en vertelt me ​​dat een recente hardware- of softwarewijziging mogelijk een bestand heeft geïnstalleerd dat verkeerd of beschadigd is ondertekend. Het bestand is \ Windows \ system32 \ winload.exe, status 0xc0000428. Door op enter te drukken, ga ik naar de opstartmanager om te kiezen welk besturingssysteem moet worden opgestart en wordt alleen Windows 7 weergegeven. Als ik op Enter op Windows 7 druk, wordt ik teruggeleid naar hetzelfde foutscherm, wat resulteert in een lus. - LChaos2
Na enig onderzoek lijkt het alsof de foutcode (0xc000428) is gekoppeld aan winload.exe die niet is geverifieerd door een digitale handtekening. Zeg je daar iets over? - Patrick
Elke update over de situatie @ LChaos2? - hg8


Voordat u van partitie wisselt, maakt u een back-up en slaat u deze op naar een ander apparaat. Als dat niet het geval is, wijzigt sda om de schijf te corrigeren. Dan kunt u opnieuw beginnen als u de onjuiste set met testdisk herstelt. U wilt gewoon alle huidige plus missende Logical bij het herstellen met testdisk.

sudo sfdisk -d /dev/sda > parts.txt

Je ontbrekende partitie is hier of tussen het begin van de uitgebreide partitie in 1547 ... & eerste partitie getoond in 1915 ...:

/dev/sda4      1547945982  1953521663   202787841    f  W95 Ext'd (LBA)
/dev/sda5      1915731968  1953521663    18894848    7  HPFS/NTFS/exFAT

Je kunt testdisk gebruiken, maar het gebruikt CHS. U moet alle bestaande partities en de ontbrekende partitie als logisch kiezen. Het kan vele versies tonen, afhankelijk van hoe vaak je partities hebt gewijzigd. Kies dus de grootte die overeenkomt met de vermissing zonder overlappende andere huidige partities. Sommige die correct zijn hersteld konden gewoon opstarten, anderen moeten grub opnieuw installeren. En sommige konden de herstelpartitie niet corrigeren.

http://www.cgsecurity.org/wiki/TestDisk_Step_By_Step

Een ander hulpmiddel bij het herstellen is de redding van een deel. Het maakt gebruik van sectoren, maar het bereik dat u geeft moet zich net buiten de ontbrekende partitie bevinden zonder overlapping met de huidige partities. Het beste als u exact begin en einde kent. Zie man gescheiden

http://www.gnu.org/software/parted/manual/html_node/rescue.html

Gebruiker die gebruik maakte van redding met scheiding:

http://ubuntuforums.org/showthread.php?t=1775331&p=10905969#post10905969


9
2017-07-31 15:38



Ik ontmoette precies hetzelfde probleem en scheidde "vrije ruimte" af waar Linux was. Run rescue met van / naar de "vrije ruimte" en ext4 is terug! - speedogoo
Ik wil alleen maar zeggen dat Gparted vrije ruimte liet zien waar Ext4 vroeger was. Ran parted, set to sectors, print partities, red met de van / naar van de "vrije ruimte" (vergeet niet om een ​​s toe te voegen voor sectoren aan je waarden) en ext4 was terug, precies hetzelfde als @speedogoo. Helemaal niet nodig om met grub te friemelen. - Amedee Van Gasse
Omdat er meer mensen ontbrekende partities hebben, wat doet de ***** Windows 10 met de partitietabel? In mijn geval zat ext4 in een logische partitie. - Amedee Van Gasse
Bedankt voor dit broodkruim. Ik kon de verloren Linux-partitie van mijn vrouw herstellen met behulp van gescheiden redding. Later een grub-installatie, we waren weer in actie. - bheeshmar


Het is een smerig bug in de Windows-partitie en niet specifiek voor Linux. Het heeft ironisch genoeg een NTFS-partitie in mijn geval verwijderd.

Het installatieprogramma van Windows 10 maakt een nieuwe partitie (uw /dev/sda3) uitgehakt aan het einde van de hoofd Windows-partitie sda2 als de Windows-opstartpartitie sda1 is te klein om de herstelomgeving van Windows 10 te bevatten.

Wanneer het de partitietabel hiervoor herschrijft, voor elke logische partitie in de uitgebreide partitietabel sda4, als het zich op de schijf bevindt vóór het vorige partitienummer, geeft het op.

In jouw geval bevonden jouw Linux partities zich op je schijf voordat je nieuw was sda5, maar had hogere partitienummers dan sda5 had vóór de herverdeling.

Als je door de enorme Windows 10-upgradelogboeken kijkt, zie je een bericht dat lijkt op "6 voor 5, Niets om te doen", samen met de oude en nieuwe partitietabellen.

Windows overschrijft de inhoud van de partities die het verwijdert niet, dus het is mogelijk om ze te herstellen als je kunt vinden waar ze zijn. In mijn geval had ik back-ups van de partitietabel, maar met TestDisk zoals uitgelegd in het antwoord van oldfred heeft een uitstekende kans om ze allemaal te vinden. Gedelegeerde redding zal moeilijk te gebruiken zijn omdat meer dan één partitie in jouw geval is verwijderd.

Gebruiken TestDisk vanaf uw Ubuntu Live-CD, in een terminaltype sudo apt-get install testdisk om het te installeren, en sudo testdisk rennen.

Na het repareren van de partitietabel, kan de Linux-partitie met GRUB nu een ander nummer hebben dan daarvoor, dus je kunt nog steeds terechtkomen bij de GRUB-reddingsprompt. Als, Bootreparatie zal nu GRUB kunnen repareren.

Nogmaals, gebruik je Ubuntu Live-CD, typ:

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair

om het te installeren en uit te voeren.

Nu kan Windows de upgrade voltooien.


6
2017-08-17 22:02



Bedankt voor de duidelijke uitleg van wat het probleem is, dit heeft me enorm geholpen. Ik bevond me in dezelfde situatie als beschreven in de vraag. Testdisk kon de verwijderde linux-partitie echter niet vinden. Voor mij deed de parted rescue het luk en kon ik de Windows 10-upgrade achteraf voortzetten - toby
"Windows overschrijft de inhoud van de verwijderde partities niet" Hoe kan dit zijn? De nieuwe partitie die het voor mij maakte (na het doden van mijn linux-partities) nam de hele schijf in beslag. Dus betekent dit niet dat schrijven overal heen kan gaan. - Greg Bell
Ik kan niet uitdrukken hoeveel ik van je hou - aviggiano


Om opstart-reparatie te gebruiken moet je in BIOS instellen:

  • Schakel UEFI in (in mijn BIOS is dit :)

    Oude ondersteuning UITSCHAKELEN

  • Schakel Secure Boot uit

Waarschijnlijk hebt u Secure Boot ingeschakeld, dus u krijgt de foutmelding "incorrectly signed file".


0
2017-07-30 21:18