Przywracanie GRUBa 2 z LiveCD

Uwaga: Ten wpis został utworzony ponad rok temu. Informacje w nim zawarte mogą być nieaktualne!

Zgodnie z wcześniejszą obietnicą, zamieszczam sposób na przywrócenie GRUBa 2 przy użyciu płyty LiveCD.

Do dzieła! Uruchom system z LiveCD, a następnie otwórz terminal i wydaj polecenie:

sudo fdisk -l 

Z listy dysków odszukaj ten, na którym jest zainstalowany system – dla ułatwienia – prawdopodobnie będzie to jedyny dysk z rozszerzeniem ext4 (o ile w czasie instalacji pozwoliłeś instalatorowi na automatyczny dobór partycji). Jeśli ręcznie dobierałeś partycje, to tym bardziej nie powinieneś mieć problemu z określeniem, gdzie znajduje się Ubuntu.

Oznaczenie zapamiętane, idziemy dalej – tworzymy tymczasowy katalog, do którego zamontujemy partycję z systemem:

sudo mkdir /mnt/temp

I montujemy:

sudo mount -t ext4 /dev/dysk_na_ktorym_jest_Ubuntu /mnt/temp

Zwróć uwagę na miejsce dysk_na_ktorym_jest_Ubuntu w powyższym poleceniu!

I teraz szybciutki zestaw poleceni:

sudo mount -o bind /dev /mnt/temp/dev
sudo mount proc /mnt/temp/proc -t proc
sudo mount sysfs /mnt/temp/sys -t sysfs
sudo chroot /mnt/temp

Instalujemy GRUBa na głównej partycji:

grub-install /dev/sda

I wykonujemy aktualizację GRUBa:

update-grub2 

Po skończonej aktualizacji zamknij wszystko i uruchom ponownie komputer.

Jeżeli powyższy artykuł nie rozwiązał lub rozwiązał częściowo Twój problem, dodaj swój komentarz opisujący, w którym miejscu napotkałeś trudności.
Mile widziane komentarze z uwagami lub informacjami o rozwiązaniu problemu.
  • nacoipoco

    sudo mount -t ext4 /dev/dysk_na_ktorym_jest_Ubuntu /mnt/temp

    Jestem w niektórych kwestiach nie dość zaawansowanym użytkownikiem, moje pytanie brzmi więc następująco: Czy jeśli moje Ubuntu zainstalowane jest na trzeciej partycji, to poprawnym zapisem będzie /dev/sda3?

    Z góry dzięki za odpowiedź
    Pzdr. Adam

    • http://www.ubuntu-pomoc.org Szmitas

      Najlepiej podaj wynik polecenia:

      sudo fdisk -l 
      • nacoipoco

        ubuntu@ubuntu:~$ sudo fdisk -l

        Disk /dev/sda: 320.1 GB, 320072933376 bytes
        255 heads, 63 sectors/track, 38913 cylinders
        Units = cylinders of 16065 * 512 = 8225280 bytes
        Sector size (logical/physical): 512 bytes / 512 bytes
        I/O size (minimum/optimal): 512 bytes / 512 bytes
        Disk identifier: 0x000bd060

        Device Boot Start End Blocks Id System
        /dev/sda1 1 7833 62914560 7 HPFS/NTFS
        /dev/sda2 7833 11097 26214400 83 Linux
        /dev/sda3 * 11097 14360 26214400 83 Linux
        /dev/sda4 14360 38914 197225473 5 Extended
        /dev/sda5 14360 14426 524288 82 Linux swap / Solaris
        /dev/sda6 14426 34007 157286400 83 Linux
        /dev/sda7 34007 34998 7955456 83 Linux
        /dev/sda8 34998 38914 31456256 b W95 FAT32
        ubuntu@ubuntu:~$ sudo mkdir /mnt/temp
        ubuntu@ubuntu:~$ sudo mount -t ext4 /dev/sda2/mnt/temp
        Usage: mount -V : print version
        mount -h : print this help
        mount : list mounted filesystems
        mount -l : idem, including volume labels
        So far the informational part. Next the mounting.
        The command is `mount [-t fstype] something somewhere’.
        Details found in /etc/fstab may be omitted.
        mount -a [-t|-O] … : mount all stuff from /etc/fstab
        mount device : mount device at the known place
        mount directory : mount known device here
        mount -t type dev dir : ordinary mount command
        Note that one does not really mount a device, one mounts
        a filesystem (of the given type) found on the device.
        One can also mount an already visible directory tree elsewhere:
        mount –bind olddir newdir
        or move a subtree:
        mount –move olddir newdir
        One can change the type of mount containing the directory dir:
        mount –make-shared dir
        mount –make-slave dir
        mount –make-private dir
        mount –make-unbindable dir
        One can change the type of all the mounts in a mount subtree
        containing the directory dir:
        mount –make-rshared dir
        mount –make-rslave dir
        mount –make-rprivate dir
        mount –make-runbindable dir
        A device can be given by name, say /dev/hda1 or /dev/cdrom,
        or by label, using -L label or by uuid, using -U uuid .
        Other options: [-nfFrsvw] [-o options] [-p passwdfd].
        For many more details, say man 8 mount .
        ubuntu@ubuntu:~$ sudo mount -t ext4 /dev/sda2 /mnt/temp
        ubuntu@ubuntu:~$ sudo mount -o bind /dev /mnt/temp/dev
        ubuntu@ubuntu:~$ sudo mount proc /mnt/temp/proc -t proc
        ubuntu@ubuntu:~$ sudo mount sysfs /mnt/temp/sys -t sysfs
        ubuntu@ubuntu:~$ sudo chroot /mnt/temp
        root@ubuntu:/# sudo grub-install /dev/sda2
        sudo: unable to resolve host ubuntu
        sudo: grub-install: command not found
        root@ubuntu:/# sudo grub-install /dev/sda
        sudo: unable to resolve host ubuntu
        sudo: grub-install: command not found
        root@ubuntu:/# sudo grub-install /dev/sda2
        sudo: unable to resolve host ubuntu
        sudo: grub-install: command not found

        I oto wynik tego polecenia oraz nieudane przywrócenie…

        • http://www.ubuntu-pomoc.org Szmitas

          Zamiast montować sda2 zamontuj sda

          • nacoipoco

            Już próbowałem. Efekt ten sam.

  • http://www.ubuntu-pomoc.org Szmitas

    Spróbuj jeszcze tego – http://ubuntuforums.org/showthread.php?t=1195275
    – dokładniej chodzi mi o 13 punkt.

  • Pingback: Ubuntu - pomoc | [GRUB2] Zabezpieczenie hasłem()

  • Pingback: Ubuntu - pomoc | Konfiguracja notebooka Lenovo ThinkPad X120e()

  • roni19220

    Dziękuję POMOGŁO :)

  • http://cscs.pl 1wD40

    JA mam 3 stystemy na 1 kompie xD

  • Irzi

    A jeśli mam dwa dyski, czyli sda i sdb. windows’a na sda a Linuxa na sdb to na którym dysku zainstalowac GRYB’a ?

    • http://www.ubuntu-pomoc.org Łukasz Schmidtke

      sda

  • Irzi

    oki, dzięki za odpowiedz, zaraz sprawdze

  • Irzi

    no spoko ekran wyboru systemu już jest, ale jak wybiorę linuxa to mam czarny ekran z kursorem. win uruchamia się. Czy tu powinienem porade z poradnika tzn. przy wyborze systemu ustawic na linuxa, pozniej przycisk E itd. ?

    • http://www.ubuntu-pomoc.org Łukasz Schmidtke

      Tak, spróbuj tego. Prawdopodobnie wystąpiły problemy ze sterownikami do karty graficznej.

      • Irzi

        no i to chyba duży bo pomimo wpisanej komendy nomodeset i tak mam dalej czarny ekran :(

        • Irzi

          a moja karta to geforce GTX 460 se

  • wook

    mam taki komunikat:
    grub-mkconfig: You must run this as root

    • http://www.ubuntu-pomoc.org/ Łukasz Schmidtke

      Poprzedź komendę poleceniem sudo

      • wook

        dalej cos nie moge uruchomic

        Log:

        ubuntu@ubuntu:~$ sudo fdisk -l

        Disk /dev/sda: 15.5 GB, 15472787456 bytes
        64 heads, 32 sectors/track, 14756 cylinders, total 30220288 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: 0x000d6dc8

        Device Boot Start End Blocks Id System
        /dev/sda1 * 2048 10096639 5047296 83 Linux
        /dev/sda2 10096640 28852223 9377792 83 Linux
        /dev/sda3 28852224 30220287 684032 82 Linux swap / Solaris

        Disk /dev/sdb: 8009 MB, 8009023488 bytes
        104 heads, 40 sectors/track, 3760 cylinders, total 15642624 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: 0xc3072e18

        Device Boot Start End Blocks Id System
        /dev/sdb1 * 8064 15642623 7817280 c W95 FAT32 (LBA)
        ubuntu@ubuntu:~$ sudo mkdir /mnt/temp
        ubuntu@ubuntu:~$ sudo mount -t ext4 /dev/sda/mnt/temp
        Usage: mount -V : print version
        mount -h : print this help
        mount : list mounted filesystems
        mount -l : idem, including volume labels
        So far the informational part. Next the mounting.
        The command is `mount [-t fstype] something somewhere’.
        Details found in /etc/fstab may be omitted.
        mount -a [-t|-O] … : mount all stuff from /etc/fstab
        mount device : mount device at the known place
        mount directory : mount known device here
        mount -t type dev dir : ordinary mount command
        Note that one does not really mount a device, one mounts
        a filesystem (of the given type) found on the device.
        One can also mount an already visible directory tree elsewhere:
        mount –bind olddir newdir
        or move a subtree:
        mount –move olddir newdir
        One can change the type of mount containing the directory dir:
        mount –make-shared dir
        mount –make-slave dir
        mount –make-private dir
        mount –make-unbindable dir
        One can change the type of all the mounts in a mount subtree
        containing the directory dir:
        mount –make-rshared dir
        mount –make-rslave dir
        mount –make-rprivate dir
        mount –make-runbindable dir
        A device can be given by name, say /dev/hda1 or /dev/cdrom,
        or by label, using -L label or by uuid, using -U uuid .
        Other options: [-nfFrsvw] [-o options] [-p passwdfd].
        For many more details, say man 8 mount .
        ubuntu@ubuntu:~$ sudo mount -o bind /dev /mnt/temp/dev
        mount: mount point /mnt/temp/dev does not exist
        ubuntu@ubuntu:~$ sudo mount proc /mnt/temp/proc -t proc
        mount: mount point /mnt/temp/proc does not exist
        ubuntu@ubuntu:~$ sudo mount sysfs /mnt/temp/sys -t sysfs
        mount: mount point /mnt/temp/sys does not exist
        ubuntu@ubuntu:~$ sudo chroot /mnt/temp
        chroot: failed to run command `/bin/bash’: No such file or directory
        ubuntu@ubuntu:~$ grub-install /dev/sda
        cp: cannot create regular file `/boot/grub/915resolution.mod’: Permission denied
        ubuntu@ubuntu:~$ sudo update-grub2
        /usr/sbin/grub-probe: error: cannot find a device for / (is /dev mounted?).

        instaluje na karcie pamieci z pendriva, do komputera podpieta jest tylko karta i pendrive nie ma zadnego innego dysku, komputer widzi karte bo jest w wyborze botowania, jednak jest blad: systemu nie znaleziono.

        przepraszam za brak pl znakow ale pisze z tego liveubuntu. uzywam ubuntu 12.04

        • http://www.ubuntu-pomoc.org/ Łukasz Schmidtke

          Wpisujesz:
          ubuntu@ubuntu:~$ sudo mount -t ext4 /dev/sda/mnt/temp
          A powinno być
          sudo mount -t ext4 /dev/sda /mnt/temp
          (spacja między urządzeniem a katalogiem docelowym)

          • whocare

            Ten sam problem i cze ze spacją czy bez ten sam komunikat

          • whocare

            Ten sam problem. Przy: grub-install /dev/sda .Spacja czy nie wciąż wyskakuje komunikat „/usr/sbin/grub-probe: error: cannot find a device for / (is /dev mounted?).”

  • jurczas

    dzięki, teraz działa Win7, Ubuntu i Scientific Linux 6

  • marek

    bardzo nie lubię podejścia w stylu: „teraz szybciutki zestaw poleceń:” lepiej było by napisać po co i na co. Prowadzenie za rękę z opaską na oczach nie uczy przemieszcza się po gąszczach systemowych.

  • arendar

    doszedłem do punktu grub instll; a dokładnie:
    root@ubuntu:/# grub-install /dev/sda
    pojawił się komunikat:
    Installing for x86_64-efi platform.
    grub-install: błąd: cannot find EFI directory.

    jakaś sugestia?

    • arendar

      po wyczerpaniu informacji z kilku poradników nie wytrzymałem nerwowo i wybrałem siłową opcję rozwiązania problemu: reinstalowałem system
      śmiga bez zarzutów