



<!doctype html>
<html lang="en" class="no-js">
  <head>
    
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width,initial-scale=1">
      <meta http-equiv="x-ua-compatible" content="ie=edge">
      
      
      
      
        <meta name="lang:clipboard.copy" content="Copy to clipboard">
      
        <meta name="lang:clipboard.copied" content="Copied to clipboard">
      
        <meta name="lang:search.language" content="en">
      
        <meta name="lang:search.pipeline.stopwords" content="True">
      
        <meta name="lang:search.pipeline.trimmer" content="True">
      
        <meta name="lang:search.result.none" content="No matching documents">
      
        <meta name="lang:search.result.one" content="1 matching document">
      
        <meta name="lang:search.result.other" content="# matching documents">
      
        <meta name="lang:search.tokenizer" content="[\s\-]+">
      
      <link rel="shortcut icon" href="../../assets/images/favicon.png">
      <meta name="generator" content="mkdocs-1.0.4, mkdocs-material-4.4.3">
    
    
      
        <title>Installation Guide - Team Bliss</title>
      
    
    
      <link rel="stylesheet" href="../../assets/stylesheets/application.30686662.css">
      
      
    
    
      <script src="../../assets/javascripts/modernizr.74668098.js"></script>
    
    
      
        <link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700|Roboto+Mono&display=fallback">
        <style>body,input{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono","Courier New",Courier,monospace}</style>
      
    
    <link rel="stylesheet" href="../../assets/fonts/material-icons.css">
    
    
    
      
    
    
  </head>
  
    <body dir="ltr">
  
    <svg class="md-svg">
      <defs>
        
        
      </defs>
    </svg>
    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
    <label class="md-overlay" data-md-component="overlay" for="__drawer"></label>
    
      <a href="#installation-guide" tabindex="1" class="md-skip">
        Skip to content
      </a>
    
    
      <header class="md-header" data-md-component="header">
  <nav class="md-header-nav md-grid">
    <div class="md-flex">
      <div class="md-flex__cell md-flex__cell--shrink">
        <a href="../.." title="Team Bliss" class="md-header-nav__button md-logo">
          
            <i class="md-icon"></i>
          
        </a>
      </div>
      <div class="md-flex__cell md-flex__cell--shrink">
        <label class="md-icon md-icon--menu md-header-nav__button" for="__drawer"></label>
      </div>
      <div class="md-flex__cell md-flex__cell--stretch">
        <div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
          
            <span class="md-header-nav__topic">
              Team Bliss
            </span>
            <span class="md-header-nav__topic">
              
                Installation Guide
              
            </span>
          
        </div>
      </div>
      <div class="md-flex__cell md-flex__cell--shrink">
        
          <label class="md-icon md-icon--search md-header-nav__button" for="__search"></label>
          
<div class="md-search" data-md-component="search" role="dialog">
  <label class="md-search__overlay" for="__search"></label>
  <div class="md-search__inner" role="search">
    <form class="md-search__form" name="search">
      <input type="text" class="md-search__input" name="query" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="query" data-md-state="active">
      <label class="md-icon md-search__icon" for="__search"></label>
      <button type="reset" class="md-icon md-search__icon" data-md-component="reset" tabindex="-1">
        &#xE5CD;
      </button>
    </form>
    <div class="md-search__output">
      <div class="md-search__scrollwrap" data-md-scrollfix>
        <div class="md-search-result" data-md-component="result">
          <div class="md-search-result__meta">
            Type to start searching
          </div>
          <ol class="md-search-result__list"></ol>
        </div>
      </div>
    </div>
  </div>
</div>
        
      </div>
      
    </div>
  </nav>
</header>
    
    <div class="md-container">
      
        
      
      
      <main class="md-main" role="main">
        <div class="md-main__inner md-grid" data-md-component="container">
          
            
              <div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    <nav class="md-nav md-nav--primary" data-md-level="0">
  <label class="md-nav__title md-nav__title--site" for="__drawer">
    <a href="../.." title="Team Bliss" class="md-nav__button md-logo">
      
        <i class="md-icon"></i>
      
    </a>
    Team Bliss
  </label>
  
  <ul class="md-nav__list" data-md-scrollfix>
    
      
      
      


  <li class="md-nav__item">
    <a href="../.." title="Home" class="md-nav__link">
      Home
    </a>
  </li>

    
      
      
      

  


  <li class="md-nav__item md-nav__item--active md-nav__item--nested">
    
      <input class="md-toggle md-nav__toggle" data-md-toggle="nav-2" type="checkbox" id="nav-2" checked>
    
    <label class="md-nav__link" for="nav-2">
      Bliss OS
    </label>
    <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
      <label class="md-nav__title" for="nav-2">
        Bliss OS
      </label>
      <ul class="md-nav__list" data-md-scrollfix>
        
        
          
          
          


  <li class="md-nav__item">
    <a href="../" title="Index" class="md-nav__link">
      Index
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../build-guide/" title="Build Guide" class="md-nav__link">
      Build Guide
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../extras/" title="Extras" class="md-nav__link">
      Extras
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../installation-guide-misc/" title="Installation Guide (Misc)" class="md-nav__link">
      Installation Guide (Misc)
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../installation-guide-surface-devices/" title="Installation Guide (Surface devices)" class="md-nav__link">
      Installation Guide (Surface devices)
    </a>
  </li>

        
          
          
          

  


  <li class="md-nav__item md-nav__item--active">
    
    <input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="__toc">
    
      
    
    
      <label class="md-nav__link md-nav__link--active" for="__toc">
        Installation Guide
      </label>
    
    <a href="./" title="Installation Guide" class="md-nav__link md-nav__link--active">
      Installation Guide
    </a>
    
      
<nav class="md-nav md-nav--secondary">
  
  
    
  
  
    <label class="md-nav__title" for="__toc">Table of contents</label>
    <ul class="md-nav__list" data-md-scrollfix>
      
        <li class="md-nav__item">
  <a href="#preface" class="md-nav__link">
    Preface
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#warning" class="md-nav__link">
    Warning!
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#windows-installation-method" class="md-nav__link">
    Windows installation method
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#bootable-installation-method-mbruefiesp-3264-bit" class="md-nav__link">
    Bootable installation method - MBR/UEFI/ESP (32/64-bit)
  </a>
  
    <nav class="md-nav">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#part-1-gather-your-tools" class="md-nav__link">
    Part 1 - Gather Your Tools
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#part-2-flashing-bliss-os-to-the-usb-drive" class="md-nav__link">
    Part 2 - Flashing Bliss OS to the USB drive
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#part-3-testing-bliss-os-on-your-system" class="md-nav__link">
    Part 3 - Testing Bliss OS on your system
  </a>
  
    <nav class="md-nav">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#troubleshooting-booting-from-the-usb-kicks-me-back-to-bios-or-back-to-my-windowsmacoslinux-installation" class="md-nav__link">
    Troubleshooting - Booting from the USB kicks me back to BIOS, or back to my Windows/macOS/Linux installation.
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
        
          <li class="md-nav__item">
  <a href="#part-3-alternate-using-bliss-os-from-your-usb-drive" class="md-nav__link">
    Part 3 (alternate) - Using Bliss OS from your USB drive
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#part-4-setting-up-and-installing-bliss-os-on-your-hddssdsd-card" class="md-nav__link">
    Part 4 - Setting up and Installing Bliss OS on your HDD/SSD/SD card
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#conclusion" class="md-nav__link">
    Conclusion
  </a>
  
</li>
      
      
      
      
      
    </ul>
  
</nav>
    
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../taking-bug-reports/" title="Taking bug reports" class="md-nav__link">
      Taking bug reports
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../troubleshooting/" title="Troubleshooting" class="md-nav__link">
      Troubleshooting
    </a>
  </li>

        
      </ul>
    </nav>
  </li>

    
      
      
      


  <li class="md-nav__item md-nav__item--nested">
    
      <input class="md-toggle md-nav__toggle" data-md-toggle="nav-3" type="checkbox" id="nav-3">
    
    <label class="md-nav__link" for="nav-3">
      BlissRoms
    </label>
    <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
      <label class="md-nav__title" for="nav-3">
        BlissRoms
      </label>
      <ul class="md-nav__list" data-md-scrollfix>
        
        
          
          
          


  <li class="md-nav__item">
    <a href="../../BlissRoms/" title="Index" class="md-nav__link">
      Index
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../BlissRoms/build-guide/" title="Build Guide" class="md-nav__link">
      Build Guide
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../BlissRoms/build-tips/" title="Build Tips" class="md-nav__link">
      Build Tips
    </a>
  </li>

        
      </ul>
    </nav>
  </li>

    
      
      
      


  <li class="md-nav__item md-nav__item--nested">
    
      <input class="md-toggle md-nav__toggle" data-md-toggle="nav-4" type="checkbox" id="nav-4">
    
    <label class="md-nav__link" for="nav-4">
      Common
    </label>
    <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
      <label class="md-nav__title" for="nav-4">
        Common
      </label>
      <ul class="md-nav__list" data-md-scrollfix>
        
        
          
          
          


  <li class="md-nav__item">
    <a href="../../common/" title="Index" class="md-nav__link">
      Index
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../common/git-started/" title="Git Started" class="md-nav__link">
      Git Started
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../common/maintaining-proper-authorship/" title="Maintaining proper authorship" class="md-nav__link">
      Maintaining proper authorship
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../common/using-dippy-bird/" title="Using `dippy-bird`" class="md-nav__link">
      Using `dippy-bird`
    </a>
  </li>

        
      </ul>
    </nav>
  </li>

    
      
      
      


  <li class="md-nav__item md-nav__item--nested">
    
      <input class="md-toggle md-nav__toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5">
    
    <label class="md-nav__link" for="nav-5">
      Infrastructure
    </label>
    <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
      <label class="md-nav__title" for="nav-5">
        Infrastructure
      </label>
      <ul class="md-nav__list" data-md-scrollfix>
        
        
          
          
          


  <li class="md-nav__item">
    <a href="../../infrastructure/" title="Index" class="md-nav__link">
      Index
    </a>
  </li>

        
      </ul>
    </nav>
  </li>

    
  </ul>
</nav>
                  </div>
                </div>
              </div>
            
            
              <div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    
<nav class="md-nav md-nav--secondary">
  
  
    
  
  
    <label class="md-nav__title" for="__toc">Table of contents</label>
    <ul class="md-nav__list" data-md-scrollfix>
      
        <li class="md-nav__item">
  <a href="#preface" class="md-nav__link">
    Preface
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#warning" class="md-nav__link">
    Warning!
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#windows-installation-method" class="md-nav__link">
    Windows installation method
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#bootable-installation-method-mbruefiesp-3264-bit" class="md-nav__link">
    Bootable installation method - MBR/UEFI/ESP (32/64-bit)
  </a>
  
    <nav class="md-nav">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#part-1-gather-your-tools" class="md-nav__link">
    Part 1 - Gather Your Tools
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#part-2-flashing-bliss-os-to-the-usb-drive" class="md-nav__link">
    Part 2 - Flashing Bliss OS to the USB drive
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#part-3-testing-bliss-os-on-your-system" class="md-nav__link">
    Part 3 - Testing Bliss OS on your system
  </a>
  
    <nav class="md-nav">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#troubleshooting-booting-from-the-usb-kicks-me-back-to-bios-or-back-to-my-windowsmacoslinux-installation" class="md-nav__link">
    Troubleshooting - Booting from the USB kicks me back to BIOS, or back to my Windows/macOS/Linux installation.
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
        
          <li class="md-nav__item">
  <a href="#part-3-alternate-using-bliss-os-from-your-usb-drive" class="md-nav__link">
    Part 3 (alternate) - Using Bliss OS from your USB drive
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#part-4-setting-up-and-installing-bliss-os-on-your-hddssdsd-card" class="md-nav__link">
    Part 4 - Setting up and Installing Bliss OS on your HDD/SSD/SD card
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#conclusion" class="md-nav__link">
    Conclusion
  </a>
  
</li>
      
      
      
      
      
    </ul>
  
</nav>
                  </div>
                </div>
              </div>
            
          
          <div class="md-content">
            <article class="md-content__inner md-typeset">
              
                
                
                <h1 id="installation-guide">Installation Guide</h1>
<h2 id="preface">Preface</h2>
<p>These instructions are based on the Android-x86 project's installation guide. We have not changed the installer, so the procedure of installation is similar. We also thank @bg260 for his contributions - this guide was adapted partially from his work.</p>
<h2 id="warning">Warning!</h2>
<p>Team Bliss <strong>does NOT accept any responsibility</strong>. Users must read and understand the instructions, as the installation modifies core system files and carries a significant risk. You <strong>accept all responsibility</strong>, including but not limited to data loss and other malfunctions by continuing beyond this point.</p>
<p>Any questions, install issues, bug reports, etc. <strong>MUST be</strong> accompanied with the following things:</p>
<ul>
<li>Log</li>
<li>Device info</li>
<li>Build info (file name)</li>
<li>Installation method (exact steps used)</li>
<li>Any other relevant information REQUIRED to diagnose your issue as NOT user error</li>
</ul>
<p>If the following information is not supplied, your inquiry will be <strong>ignored.</strong></p>
<p>These instructions have changed quite a bit for Android Pie, so consider this section a <strong>work in progress.</strong> Thank you for your patience!</p>
<h2 id="windows-installation-method">Windows installation method</h2>
<p><strong>This is the current recommended method for beginners!</strong></p>
<p>We recommend beginners to use this method as it is the least error-prone and non-destructive. The following instructions were adapted from the Android-x86 project, so some of the images are from them. <a href="https://www.android-x86.org/installhowto.html">To look at Android-x86's original installation guide, click here.</a></p>
<p>When booting into the installer, choose "Installation - Install Android-x86 to harddisk":</p>
<p><img alt="beginner-installation-install-1" src="https://i.imgur.com/gEnnGFp.png" /></p>
<p>Once the installer boots, you will be asked to select the target drive. Choose the NTFS drive that houses your current Windows install. You do <strong>not</strong> need a separate partition, as the installer will create an image on your Windows partition.</p>
<p><img alt="beginner-installation-install-2" src="https://i.imgur.com/fpMo5GS.png" /></p>
<p>Choose "Do not re-format" on the next screen. It is important that you choose "Do not re-format", as any other option will cause the installer to continue with the <a href="#bootable-installation-method-mbruefiesp-3264-bit">"Bootable installation method"</a>, which <strong>will</strong> result in <strong>permanent data loss</strong>, including your Windows partition!</p>
<p><img alt="beginner-installation-install-3" src="https://i.imgur.com/QSDt8ia.png" /></p>
<p>Choose "Yes" when prompted about the <code>grub</code> bootloader:</p>
<p><img alt="beginner-installation-install-4" src="https://i.imgur.com/PfmjHHi.png" /></p>
<p>The installer will ask whether or not you want to make the system partition read/write-able. If you want to root your installation, you will choose "Yes" here. Otherwise, choose "No."</p>
<p><img alt="beginner-installation-install-5" src="https://i.imgur.com/SXEeevy.png" /></p>
<p>The installer will begin to write the changes to the disk. This will take some time. Go grab a coffee!</p>
<p><img alt="beginner-installation-install-6" src="https://i.imgur.com/iQ4tEAD.png" /></p>
<p>Then the installer will ask you how much space you want to allocate for the data image. Most users choose 8 GB, 16 GB, or 32 GB.</p>
<p>Congratulations! You should now have a functional dual-boot with Bliss OS!</p>
<h2 id="bootable-installation-method-mbruefiesp-3264-bit">Bootable installation method - MBR/UEFI/ESP (32/64-bit)</h2>
<p><strong>This is the current recommended method for advanced users!</strong></p>
<p>Overview of the steps:</p>
<ul>
<li>Download the ISO file</li>
<li>Use Rufus or similar to burn to USB drive</li>
<li>Disable Secure Boot, Bitlocker, and any other boot security software such as Veracrypt</li>
<li>Boot into the USB drive.</li>
<li>Run Bliss OS in Live mode to test things out. If all is well, continue to next step</li>
<li>Boot into the USB drive, and choose Bliss OS Install</li>
</ul>
<p>Let's get started!</p>
<h3 id="part-1-gather-your-tools">Part 1 - Gather Your Tools</h3>
<p><strong>Please note that this method is not supported on all machines.</strong></p>
<p>Download <a href="https://rufus.ie">Rufus</a> and the 32-bit <code>.iso</code> or 64-bit <code>.iso</code>/<code>.img</code> file of Bliss OS, depending on the architecture of the machine you are installing Bliss OS on.</p>
<p>You will need a decent speed USB drive (4 GB or larger is recommended).</p>
<h3 id="part-2-flashing-bliss-os-to-the-usb-drive">Part 2 - Flashing Bliss OS to the USB drive</h3>
<p>Plug in your USB drive, and load up Rufus. Once loaded, click on the icon next to the ISO Image dropdown menu. Now browse to where you have your Bliss OS (32-bit) <code>.iso</code>, <em>or</em> your Bliss OS (64-bit) <code>.iso</code>/<code>.img</code> file. Once chosen, the dropdown should switch to the correct image type, and fill the rest in for you. Once you are ready, click Start.</p>
<h3 id="part-3-testing-bliss-os-on-your-system">Part 3 - Testing Bliss OS on your system</h3>
<p><strong>This is very important!</strong> If you, as a user, <strong>do NOT</strong> test the OS first to make sure it is compatible with your device, please <strong>do NOT</strong> expect us to help you if you happen to install it blindly and something goes wrong.</p>
<p>Reboot your machine, and enter the BIOS. Most motherboards have the default key as "F2". Change the boot order so that the USB is the first thing the device will boot to. Once the boot orders are changed, reboot. If everything goes well, you should see a <code>grub</code> boot screen. Select the "Live CD" option, and if your machine is compatible, you should then see a little bit of text, and then the Bliss OS boot animation. This will go on for a few minutes, but should eventually boot to Bliss OS. If the system never boots to Bliss OS, this is a bad sign that your system might not be compatible. If it does boot, and you would like to install it, continue to the next step.
For those wanting to use root, you will need to install the OS and be running of that install. Root will not function properly in Live Mode. </p>
<h4 id="troubleshooting-booting-from-the-usb-kicks-me-back-to-bios-or-back-to-my-windowsmacoslinux-installation">Troubleshooting - Booting from the USB kicks me back to BIOS, or back to my Windows/macOS/Linux installation.</h4>
<p>Your drive is incompatible or you have formatted it incorrectly. Try flashing the image again to the drive with Rufus. If that does not work, your device does not support booting from USB and you will have to try an alternate method.</p>
<h3 id="part-3-alternate-using-bliss-os-from-your-usb-drive">Part 3 (alternate) - Using Bliss OS from your USB drive</h3>
<p>If you choose to use Bliss from the USB drive, the data you modify or create on the live install will be in an ephemeral state unless you create a <code>data.img</code> to store the data. You can create a <code>data.img</code> in the root directory of the USB drive (make sure you have a minimum of 4-5 GB free on the drive). We suggest using a tool like RMXtools from XDA to create it (version 1.7 is recommended). Check the tool's thread for detailed usage instructions. You will want to create your <code>data.img</code> inside the root directory of your USB drive, with all the other <code>.img</code> files. From there, just boot into live mode, setup your system the way you want, and the data should be persistant across reboots.</p>
<h3 id="part-4-setting-up-and-installing-bliss-os-on-your-hddssdsd-card">Part 4 - Setting up and Installing Bliss OS on your HDD/SSD/SD card</h3>
<p>Quick warning again, in case you missed it. Team Bliss is <strong>NOT responsible</strong>, directly or indirectly, for any damages caused by this guide. By continuing, you automatically agree to these terms.</p>
<p>This is where things start to get a little tricky, especially with how devices vary. Make sure you have a backup plan in case something goes wrong.</p>
<p>Start off by opening your favorite partition management software, such as Disk Management in Windows, and create a new partition, making it the size you want (suggested minimum is 8 GB). Just format it to NTFS for now, because it will be formatted by the installer later into the process anyway. Remember what drive you have created here as it's important later on. For Windows machines, it will typically be <code>sda4</code> or <code>sda5</code>. Also create another 300 MB FAT32 partition for the <code>grub</code> bootloader to install to. (This part might require a third-party partition manager as Windows Disk Management might not let it be that small.)</p>
<p>Boot up the Bliss OS USB, and select the "Installation" option in <code>grub</code>. (It is the second one down, usually.)</p>
<p>The installer will load, and you will have an option to choose the partition you created earlier. Pick it, and select <code>ext4</code>. <strong>DO NOT</strong> blindly choose the partition, as an incorrect flash can mess up your drive and cause serious data loss. <strong>You do NOT want to get this step wrong.</strong> If you are unsure, boot back into Windows/macOS/Linux and write it down.</p>
<p>When it asks if you want to install system as R/W, select "YES" if you want to use root (SuperSU), and "No" if you do not need root.</p>
<p>When it asks if you want to install <code>grub</code>, select "Grub for Legacy BIOS boot type", "Grub2 for UEFI boot type", or neither if you are already running a Linux system. If you chose to install <code>grub</code>, the installer will allow you to choose the partition to install <code>grub</code> to. Make sure you select the 300 MB partition you set up earlier for <code>grub</code>.</p>
<p>The process will install and create the data directory/image, so be patient. When finished, the installer will then ask if you want to run Android-x86. You can just reboot here. Make sure you remove the USB drive.</p>
<p>If we have followed all the directions correctly, you should be presented with a <code>grub</code> boot menu. You can choose your <code>bliss_android_x86</code> option (or <code>android-x86</code>), and it will boot into Bliss OS. If you want to customize your <code>grub</code> boot entry, search the web first. We use the same <code>grub</code> setup that the Android-x86 project uses, so their forums will contain just about all the info you will need. </p>
<p>Congratulations! We hope you enjoy using Bliss OS.</p>
<h2 id="conclusion">Conclusion</h2>
<p>Thanks for following along! If you want to check out the next guide, <a href="../extras/">click here!</a></p>
<p>Having problems with your new installation? <a href="../troubleshooting/">Check out Troubleshooting.</a></p>
                
                  
                
              
              
                


              
            </article>
          </div>
        </div>
      </main>
      
        
<footer class="md-footer">
  
    <div class="md-footer-nav">
      <nav class="md-footer-nav__inner md-grid">
        
          <a href="../installation-guide-surface-devices/" title="Installation Guide (Surface devices)" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev">
            <div class="md-flex__cell md-flex__cell--shrink">
              <i class="md-icon md-icon--arrow-back md-footer-nav__button"></i>
            </div>
            <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
              <span class="md-flex__ellipsis">
                <span class="md-footer-nav__direction">
                  Previous
                </span>
                Installation Guide (Surface devices)
              </span>
            </div>
          </a>
        
        
          <a href="../taking-bug-reports/" title="Taking bug reports" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next">
            <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
              <span class="md-flex__ellipsis">
                <span class="md-footer-nav__direction">
                  Next
                </span>
                Taking bug reports
              </span>
            </div>
            <div class="md-flex__cell md-flex__cell--shrink">
              <i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i>
            </div>
          </a>
        
      </nav>
    </div>
  
  <div class="md-footer-meta md-typeset">
    <div class="md-footer-meta__inner md-grid">
      <div class="md-footer-copyright">
        
        powered by
        <a href="https://www.mkdocs.org">MkDocs</a>
        and
        <a href="https://squidfunk.github.io/mkdocs-material/">
          Material for MkDocs</a>
      </div>
      
    </div>
  </div>
</footer>
      
    </div>
    
      <script src="../../assets/javascripts/application.ac79c3b0.js"></script>
      
      <script>app.initialize({version:"1.0.4",url:{base:"../.."}})</script>
      
    
  </body>
</html>