grub error: out of disk when booting 12.04 server with hardware RAID5 and gpt

185

biosgrub and /boot partitions are two different things. The biosgrub partition only needs to be 1 MB, and must NOT be mounted anywhere. A /boot partition needs to be more like 150-200 MB and formatted with a filesystem, like ext4. You might try reinstalling with both a biosgrub and a 200 MB /boot partition and see if that fixes it. Or try booting the grub rescue cd and running ls -l to see how large the bios reports the size of the disk is. It may be that the megaraid bios has a limit on its bios size.

Share:
185

Related videos on Youtube

Sangeeta Singh
Author by

Sangeeta Singh

Updated on September 18, 2022

Comments

  • Sangeeta Singh
    Sangeeta Singh over 1 year

    I have a sample xml like below.I have a requirement were I need to cross reference various xml attributes. I have identified the below format, but not sure how to interpret this in java.

    How do i interpret this xml in java. For example, how do I retireve details of a teacher with teacher id="T72100";

    <schedule term="Fall" year="98" xmlns:data="x-schema:idSchema.xml"
                                    xmlns:ref="x-schema:refSchema.xml">
      <classes>
        <data:class id="ENGL6004">
          <title>From Here to Eternity: Studies in the Futureenter code here
            and other Temporal Genres</title>
          <ref:teacherRef ref="T31330"/>
          <students>
            <ref:student ref="S50245"/>
            <ref:student ref="S87901"/>
            <ref:student ref="S19272"/>
            <ref:student ref="S48984"/>
          </students>
        </data:class>
        <data:class id="HIST6010">
          <title>The You Decade: A History of Finger Pointing
            in Post-War America</title>
          <ref:teacher ref="T72100"/>
          <students>
            <ref:student ref="S60912"/>
            <ref:student ref="S87901"/>
            <ref:student ref="S84281"/>
            <ref:student ref="S44098"/>
          </students>
        </data:class>
        <data:class id="ENGL6020">
          <title>Reading between the Lines: The Literature
            of Waiting</title>
          <ref:teacher ref="T31330"/>
          <students>
            <ref:student ref="S84281"/>
            <ref:student ref="S19272"/>
            <ref:student ref="S48984"/>
            <ref:student ref="S44098"/>
          </students>
        </data:class>
      </classes>
      <teachers>
        <data:teacher id="T31330">
          <name>Margaret Doornan</name>
          <position>Associate Professor</position>
          <classes>
            <ref:class ref="ENGL6004"/>
            <ref:class ref="ENGL6020"/>
          </classes>
        </data:teacher>
        <data:teacher id="T72100">
          <name>Hal Canter</name>
          <position>Instructor</position>
          <classes>
            <ref:class ref="HIST6010"/>
          </classes>
        </data:teacher>
      </teachers>
      <students>
        <data:student id="S44098">
          <name>Kelly Griftman</name>
          <year>Senior</year>
          <status>full-time</status>
          <classes>
            <ref:class ref="HIST6010"/>
            <ref:class ref="ENGL6020"/>
          </classes>
        </data:student>
        <data:student id="S48984">
          <name>Norbert James</name>
          <year>Senior</year>
          <status>full-time</status>
          <classes>
            <ref:class ref="ENGL6004"/>
            <ref:class ref="ENGL6020"/>
          </classes>
        </data:student>
        </students>
    </schedule>
    

    Update: Tried to use XPath to get the desired output but maybe either my expression is incorrect or I don't understand Xpath so well:

    String expression = "/schedule/teachers/teacher[@id='T72100']";
            Node node = (Node) xPath.compile(expression).evaluate(xmlDocument, XPathConstants.NODE);
            if(null != node) {
                NodeList nodeList = node.getChildNodes();
                for (int i = 0;null!=nodeList && i < nodeList.getLength(); i++) {
                    Node nod = nodeList.item(i);
                    if(nod.getNodeType() == Node.ELEMENT_NODE)
                        System.out.println(nodeList.item(i).getNodeName() + " : " + nod.getFirstChild().getNodeValue());
                }
            }
    

    OUTPUT:

    name : Hal Canter
    position : Instructor
    classes :
    

    This gives no information about the classes. How can I retrieve details of classes as well. The expected output is

    name : Hal Canter
        position : Instructor
        classes :
            id: HIST6010
            title: "The You Decade: A History of Finger Pointing in Post-War America"
    
    • Dawood ibn Kareem
      Dawood ibn Kareem over 9 years
      Have a look at docs.oracle.com/javase/7/docs/api/javax/xml/xpath/… and comment if there's any part that you'd like clarification of.
    • Sangeeta Singh
      Sangeeta Singh over 9 years
      Thanks for response David. I had tried using XPath(though not an expert) to interpret but failed to get information what I require.
    • Dawood ibn Kareem
      Dawood ibn Kareem over 9 years
      Did you manage to write a program that applied some XPath? I am asking so I can work out whether to help you with the Java programming, or to help you work out a suitable XPath expression.
    • Sangeeta Singh
      Sangeeta Singh over 9 years
      Hi David..I have updated my original post with my code. please suggest.
    • Dawood ibn Kareem
      Dawood ibn Kareem over 9 years
      Right, I was just reading it. It looks like you came quite a long way to solving this (and I think teacher in your XPath should have been data:teacher to match your input). I think when you come to the classes node, you'll need to iterate through it, the same way you iterated through the teacher node; that is, with nod.getChildNodes().
    • Dawood ibn Kareem
      Dawood ibn Kareem over 9 years
      Are you expecting to be able to traverse an arbitrary number of levels into the subtree under the node you identify? Or will it always just have one or two levels?
    • Sangeeta Singh
      Sangeeta Singh over 9 years
      It is going to be arbitrary number of levels.
    • Dawood ibn Kareem
      Dawood ibn Kareem over 9 years
      So you're going to have to write some kind of recursive method to print out the contents of one node - either its value if it's a text node, or its children if it's an element node. From looking at your code sample above, I figure you won't need my help with the actual coding. Am I right?
    • Sangeeta Singh
      Sangeeta Singh over 9 years
      I am unable to extend this to get the classes information. Can you please give a sample code to retrieve classes info for that particular teacher?
    • Dawood ibn Kareem
      Dawood ibn Kareem over 9 years
      OK, I would suggest that you move the line if(null != node) and everything in the { } that follow it into a separate method, with node as a parameter. You'll call that method from the point where the if statement is currently. Then you'll add an extra call to that method, inside the method itself, underneath the System.out.println line - and that will give you the recursion. Is that clear?
    • Sangeeta Singh
      Sangeeta Singh over 9 years
      I will try the recursive and post the output in a while. thanks for your help!
    • Dawood ibn Kareem
      Dawood ibn Kareem over 9 years
      You're welcome, Sangeeta, and good luck. I am going to go offline for a few hours now, but I'll come back here later and see how you're getting on.
  • Kieran
    Kieran about 11 years
    Partition 1 is the biosgrub parition, which I just named /boot. I set it to be 10MB based on the comment in the installed about selecting "generic: include all available drivers" for drivers to include in initrd. Partition 3 is 5.5TB in size, formatted as ext4 and contains the full filesystem. It is the only partition that is mounted.
  • psusi
    psusi about 11 years
    @Kieran, the initrd goes with the kernel and most grub files in /boot. The bios_grub partition only holds the grub core, which is much less than 1 MiB in size. If it is a size limitation with the megaraid bios, using a /boot partition near the start of the disk will fix it.
  • Rod Smith
    Rod Smith about 11 years
    I agree with psusi, and then some: On a BIOS-based installation on a GPT disk, GRUB 2 works best with a BIOS Boot Partition, which is not mounted anywhere. Calling it "/boot" is just confusing. With a disk of the size you've got (essentially a 6TB physical disk, as far as the BIOS is concerned), keeping the kernel below the 2TiB limit is likely to be necessary for a successful boot. Thus, you should have a separate ext2/3/4fs partition, mounted at /boot, to hold your kernel. Place it early on the disk -- BIOS Boot Partition first, then /boot, then your other partitions.
  • Kieran
    Kieran about 11 years
    Created an extra 200MB ext4 partition mounted at /boot at the start of the disk after the biosgrub partition. This solved the problem. System now boots fine. Thanks for your help!
  • Dawood ibn Kareem
    Dawood ibn Kareem over 9 years
    This is true, but it's not really an answer. Also, Sangeeta has managed to extract the required "teacher" node already, and processing the children of that node doesn't really require any special treatment of the namespaces.
  • Cfx
    Cfx over 9 years
    Where did you read about the successful extraction of the teacher? Sangeeta needs to provide namespace prefixes, or disable namespaces in the xml parser completely, or use a library. XMLBeam is suitable, because it does exactly this.
  • Dawood ibn Kareem
    Dawood ibn Kareem over 9 years
    She updated her question to show her output. I'm not sure why her XPath expression is working when she hasn't specified whatever namespace data: is indicating. But then she said it was just the classes information that she was missing.
  • Cfx
    Cfx over 9 years
    You are right. She gets a filled nodelist. So its the ` nod.getFirstChild().getNodeValue()` that does not work. Should be + ((Element)nod.getFirstChild()).getAttribute("ref") instead. FirstChild can be anything, e.g. a text node with just a linefeed.
  • Dawood ibn Kareem
    Dawood ibn Kareem over 9 years
    Right, which means she should iterate through the children, and handle each one the way it needs to be handled - which in her case is going to involve recursion.
  • Cfx
    Cfx over 9 years
    This gets really complicated for such a simple task. Now I definetly would recommend to use a library. Provided an example in my answer.
  • Dawood ibn Kareem
    Dawood ibn Kareem over 9 years
    Wow, this is a much better answer now. +1.
  • Sangeeta Singh
    Sangeeta Singh over 9 years
    True that! It is getting really complex. I will try using a library . thanks for the example.