Skip to main content

Reinstalling GRUB on unallocated free space

PROBLEM

I had accidentally deleted the partition containing GRUB (/dev/sda1) due to which my Linux Mint installed on /dev/sda5 stopped booting. 

Solution

So, I wanted to reinstall GRUB and edit it to boot my Linux Mint. I wanted GRUB and booting sectors on /dev/sda1 while my OS was in /dev/sda5. (I am using these as my defaults for this blog. Please use fdisk -l to figure out your partition names and numbers).
Getting a live USB : I created a new USB bootable drive of KDE Neon (It is a derivative of Ubuntu). 
Installing GRUB : After booting KDE Neon, I opened the terminal and created the partition using fdisk.
Fdisk : 
  • $ sudo fdisk -l

Disk /dev/sda: 232.9 GiB, 250059350016 bytes, 488397168 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
Disklabel type: dos
Disk identifier: 0x6c778d7d
    Device     Boot     Start       End   Sectors   Size Id Type
    /dev/sda2        97298430 488396799 391098370 186.5G  5 Extended
    /dev/sda5        97298432
    467601407 370302976 176.6G 83 Linux
    /dev/sda6       467603456 488396799  207933
    44   9.9G 82 Linux swap / Solaris
    • Here you can see that /dev/sda1 is missing
    • So I used parted to see the free partitions
    • $ sudo parted /dev/sda unit s print free
    Model: ATA Samsung SSD 750 (scsi)
    Disk /dev/sda: 488397168s
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos
    Disk Flags: 

    Number  Start       End         Size        Type      File system     Flags
     1      63s         97298429s   97298367s             Free Space            boot
     2      97298430s   488396799s  391098370s  extended
     5      97298432s   467601407s  370302976s  logical   ext4
     6      467603456s  488396799s  20793344s   logical   linux-swap(v1)
            488396800s  488397167s  368s                  Free Space
    • Enter the parted program in interactive mode
    • $ sudo parted /dev/sda
    • mkpart primary ext4 63s 97298429s
    • quit
    • The partition would have been created. You can check this by
    • $ sudo fdisk -l
    Installing GRUB
    • $ mkdir /home/neon/temp
    • $ sudo mount /dev/sda /home/neon/temp
    • This mounts /dev/sda1 (the newly parted drive to a directory 
    • $ sudo grub-install --root-directory=/home/neon/temp /dev/sda
    After this reboot the machine

    GRUB Command Line
    • (grub) set root=(hd0,5)
    • (grub) linux /boot/vmlinuz-4.4.0-21-generic /dev/sda5
    • (grub) initrd /boot/initrd.img-4.4.0-21-generic 
    • (grub) boot
    First line sets the root directory. The next sets the linux daemon. The next sets the init program of the linux program. The last line boots the OS.

    Comments


    1. Very Nice Article:
      Hi Readers, If you wanna track your expenses and save money online or offline, Just Download Timelybills.app. It will show you all the ways to manage your expenditure without consuming your whole day. Please feel free to check out here. Thank you!

      Timelybills.app

      ReplyDelete

    Post a Comment

    Popular posts from this blog

    Running Oracle Outsidein Technology (OIT) in Docker

    Oracle Outsidein Technology provides a set of tools and SDKs to convert many forms of data to readable documents. It also holds data extraction and reduction capabilities. Used by multiple firms and tech fronts for more than 3 decades, OIT is a vast product here to stay for a long time. Here, I made a starting attempt on using OIT's Image export using docker. Created a small docker file with the oracle-java8 base image, loaded the image export jars and dependencies, created a few mounting volumes and ran it on a single sample pdf file. An enriching and learning experience for me and my father all the same. This blog shows the steps I took to get image export working on my machine. Prerequisites Docker (to be installed on your machine, you can go to docker's website and download it for your OS windows/linux/mac) OIT Image Export SDK (Get it here ) The image export SDK also contains some sam...

    Arduino with 7-Segment Display (LT542)

    A 7-segment display is a LED-LCD display with 8 LCD cells are controlled by 8 pins. Usually a 7-segment display has 10 pins, 2 are common pins and the rest 8 control each LCD cell. Now, a 7-segment display is of 2 types, common cathodic and common anodic display. While the common cathodic display has its common pins hooked up to the ground(GND), the common anodic display has its common pins hooked up to high voltage(+5). A diagram explaining this is given. I have used a display numbered LT542 which is a common anodic display. This project is aimed to control the LT542 to display each number from 0 to 9 at a second's gap. MATERIALS REQUIRED: Arduino Uno LT542 Jumper wires (male-to-male) Breadboard STEPS: Wire the setup as shown in the schematic and pictures. Copy the code given and paste it into the arduino IDE. Plug in your board tho the computer using a USB cable. Upload the code. CODE:  /**   PINOUT DIAGRAM FOR THIS CODE   ...

    NAS (National Achivement Survey) data extraction

    I had recently been to a datathon (A hackathon related to data science) in PES University, Bangalore. There my team was given a task to extract data from the National Achievement Survey - 2017 conducted by NCERT. NAS collects data about CBSE schools across states and districts of India to collect data about student achievements and their overall reports. This data is present in PDF formats. We were tasked to extract data from PDF and tabulate it. $ pdftotext is a linux utility to convert pdf to text. By supplying a -layout option the default layout of the data is mostly preserved. I made a python script (pdf_convert.py) to convert the pdf data to text files sequentially. Next I made a script to convert the text files to csv data. So each text file was turned to a record (row) in the csv file. Here is a snapshot of the directory structure of PDF file that we got. . ├── Andaman & Nicobar Islands │   ├── Andaman │   │   ├── Andamans Class - ...