How to install Grub2 on Macbook Pro with the grub-install command without warning about "blocklists" requiring the use of --force?

2,260

My first reaction is to note that you're using a hybrid MBR, which is an ugly and dangerous hack that Apple uses to simplify dual-boots with OS X. Your fdisk output only shows the MBR side of the hybrid MBR, but both OS X and Linux ignore this, instead favoring the GPT side. To show the GPT partitions, you'll need to use parted, gdisk, or some other GPT-aware utility.

Second, the "blocklists" error suggests that you've booted in BIOS mode (using the compatibility system Apple created for use by Windows), but your GPT doesn't include a BIOS Boot Partition, which GRUB 2 uses on GPT disks to store part of its BIOS-mode boot loader. One way around this error is to tweak your partitions so that you do have a BIOS Boot Partition. This can probably be done relatively painlessly, but there might be unintended consequences to such a change. In particular, if you need to resize any partitions with GParted, it's likely to wipe out the hybrid MBR, which will prevent the system from booting Linux in its current configuration because the hybrid MBR is what activates the Mac's BIOS compatibility mode. This problem can be corrected by creating a fresh hybrid MBR.

Since you don't seem to have Windows, you may want to look into booting Linux in EFI mode, which will obviate the need for the BIOS compatibility layer and the hybrid MBR. I've got a Web page about doing this: http://www.rodsbooks.com/ubuntu-efi/index.html. In brief, the procedure from a working Ubuntu installation is to uninstall grub-pc and to install and configure grub-efi or some other EFI-capable boot loader. This method has its drawbacks, though. In particular, on some systems some hardware (possibly including video hardware) may not be activated, which in extreme cases can make the system unusable.

Incidentally, rEFIt isn't likely to be a problem; it's an EFI-mode boot manager that doesn't conflict with BIOS-mode boot programs. rEFIt seems to have been abandoned, though. My fork, rEFInd, picks up development, adding features and fixing bugs. It's got some options that are particularly useful for booting Linux, but some of these apply only if you've got a 3.3.0 or later kernel, which no version of Ubuntu yet provides.

Share:
2,260
thauburger
Author by

thauburger

Updated on September 18, 2022

Comments

  • thauburger
    thauburger over 1 year

    I am currently working on a project using the Express framework. I have a directory "/static", from which I'd like to serve static js and css files.

    The project directory structure is as follows:

    /
      visits.js
      /static
        /css
          style.css
        /js
          jquery.flot.js
      /views
    

    In the app configuration, I am setting up the static file server with the following:

    app.configure(function(){
        app.use(express.logger());
        app.use(express.static(__dirname + '/static'));
        app.set('views', __dirname + '/views');
        app.set('view options', { layout : true });
        app.set('view engine', 'jade');
    });
    

    When I run the app on my local machine, everything works great. My network console shows:

    GET http://myserver.com/ [HTTP/1.1 200 OK 13ms]
    GET http://myserver.com/css/style.css [HTTP/1.1 200 OK 3ms]
    GET http://myserver.com/js/jquery.flot.js [HTTP/1.1 200 OK 4ms] 
    

    However, when I push the same application up to my test server, the static files are not found (404 errors):

    GET http://myserver.com/visits/ [HTTP/1.1 200 OK 195ms]
    GET http://myserver.com/css/style.css [HTTP/1.1 404 Not Found 95ms]
    GET http://myserver.com/js/jquery.flot.js [HTTP/1.1 404 Not Found 93ms]
    

    The only difference that I can think of is on my local machine, I simply access the application at:

    127.0.0.1:4000/
    

    But on the test server, I have the app sitting behind an nginx server. I use a proxy_pass that forwards requests to:

    myserver.com/visits/
    

    I'm wondering if the forwarding is affecting the path that the static file server is using to look up the css and js files?

    Any ideas / help would be greatly appreciated.

    Thanks!

  • tomodachi
    tomodachi almost 12 years
    In your case switching to EFI should be without consequences. I have the same GFX card in my MBP when i compare our models on wikipedia and it's working splendid
  • user1441287
    user1441287 over 9 years
    I am having the same problem, what did your conf file look like?