Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have to use pci=nocrs with my hardware to get my USB ports to work. But because I have to use an external USB DVD drive, I have difficulty booting without passing that parameter.

I am able to edit the files on the disk before burning it, but it appears to all be pretty compressed and unreadable by a human. Are there any tricks or anything for editing grub boot parameters on a livecd like this? I'm using the Gnome 3 livecd (opensuse) if that matters.

The way I'm doing it on my Kubuntu install (not livecd) is this: GRUB_CMDLINE_LINUX="pci=nocrs" and then running update-grub.

I could probably do it "on-the-fly" each time I boot, but I'd like to avoid that. I'd also like to avoid installing it to the HDD (which, I know, would definitely solve my problem)

I am, however, open to making a new boot DVD if there's some way I could boot into the OS just once by manually (and temporarily) editing the parameter at boot time and then making the necessary changes from within the OS and then reauthoring the DVD based on the current image loaded in memory. (if there's any way to do that)


edit:

The /boot/grub directory only has one file, and that's mbrid. The contents of that file is only the following: 0x131f4e78

I'm guessing the filesystem is compressed into a single file which is uncompressed one piece at a time at runtime.

Also, here is the directory structure of the disk: (courtesy the TREE command in DOS)

│   GNOME_3-read-only.x86_64-1.0.0
│   config.isoclient
│
└───boot
    ├───grub
    │       mbrid
    │
    └───x86_64
        └───loader
            │   08000600.spl
            │   10240768.spl
            │   12801024.spl
            │   16x16.fnt
            │   af.hlp
            │   af.tr
            │   ar.hlp
            │   ar.tr
            │   back.jpg
            │   bg.tr
            │   bootlogo
            │   ca.hlp
            │   ca.tr
            │   chain.c32
            │   cs.hlp
            │   cs.tr
            │   da.hlp
            │   da.tr
            │   de.hlp
            │   de.tr
            │   el.hlp
            │   el.tr
            │   en.hlp
            │   en.tlk
            │   en.tr
            │   es.hlp
            │   es.tr
            │   et.hlp
            │   et.tr
            │   fi.hlp
            │   fi.tr
            │   fr.hlp
            │   fr.tr
            │   gfxboot.c32
            │   gfxboot.cfg
            │   gl.tr
            │   gu.hlp
            │   gu.tr
            │   hapysuse.mod
            │   hi.tr
            │   hr.hlp
            │   hr.tr
            │   hu.hlp
            │   hu.tr
            │   id.tr
            │   initrd
            │   isolinux.bin
            │   isolinux.cfg
            │   isolinux.msg
            │   it.hlp
            │   it.tr
            │   ja.hlp
            │   ja.tr
            │   ka.tr
            │   ko.hlp
            │   ko.tr
            │   kroete.dat
            │   ky.hlp
            │   ky.tr
            │   linux
            │   lt.hlp
            │   lt.tr
            │   mboot.c32
            │   memtest
            │   mr.hlp
            │   mr.tr
            │   nb.hlp
            │   nb.tr
            │   nl.hlp
            │   nl.tr
            │   pa.hlp
            │   pa.tr
            │   pabout.txt
            │   panim.jpg
            │   panim_a.jpg
            │   pback.jpg
            │   phead.jpg
            │   pl.hlp
            │   pl.tr
            │   pt.hlp
            │   pt.tr
            │   pt_BR.hlp
            │   pt_BR.tr
            │   ro.hlp
            │   ro.tr
            │   ru.hlp
            │   ru.tr
            │   sk.hlp
            │   sk.tr
            │   sl.tr
            │   sr.tr
            │   sv.hlp
            │   sv.tr
            │   ta.tr
            │   text.jpg
            │   tg.tr
            │   th.hlp
            │   th.tr
            │   timer_a.jpg
            │   tr.tr
            │   uk.hlp
            │   uk.tr
            │   wa.tr
            │   welcome.jpg
            │   xh.hlp
            │   xh.tr
            │   zh_CN.hlp
            │   zh_CN.tr
            │   zh_TW.hlp
            │   zh_TW.tr
            │   zu.tr
            │
            ├───animations
            └───branding
                    bootsplash-1024x768.cfg
                    bootsplash-1024x768.jpg
                    bootsplash-1280x1024.cfg
                    bootsplash-1280x1024.jpg
                    bootsplash-800x600.cfg
                    bootsplash-800x600.jpg
                    logo.mng
                    logov.mng
                    silent-1024x768.jpg
                    silent-1280x1024.jpg
                    silent-800x600.jpg

edit 2:

Here are the contents of /boot/x86_64/loader/isolinux.cfg. This does, in fact, appear to be the correct place to put it. I will test it later tonight and update this to reflect the solution.

default GNOME3
implicit 1
display isolinux.msg
ui gfxboot bootlogo isolinux.msg
prompt   1
timeout  200
label GNOME3
  kernel linux
  append initrd=initrd ramdisk_size=512000 ramdisk_blocksize=4096 splash=silent showopts 
label Failsafe_--_GNOME3
  kernel linux
  append initrd=initrd ramdisk_size=512000 ramdisk_blocksize=4096 splash=silent showopts ide=nodma apm=off acpi=off noresume selinux=0 nosmp noapic maxcpus=0 edd=off

label harddisk
  localboot 0x80

label memtest
  kernel memtest

It looks like I'll be able to add my parameter to the end of this: append initrd=initrd ramdisk_size=512000 ramdisk_blocksize=4096 splash=silent showopts

share|improve this question

1 Answer 1

A LiveCD will have a directory structure like this:

|-- autorun.inf
|-- boot
|   |-- grub
|   |   |-- desktops
|   |   |-- extended
|   |   |-- grldr
|   |   |-- iso9660_stage1_5
|   |   |-- menu.lst <--- GRUB Menu Listing
|   |   |-- message
|   |   `-- stage2
|   |-- initrd-nx08.gz
|   |-- pxelinux.0
|   |-- pxelinux.cfg
|   |   |-- default
|   |   `-- default2
|   |-- syslinux
|   |   `-- syslinux.cfg
|   |-- syslinux.bin
|   |-- vesamenu.c32
|   `-- vmlinuz-nx08
|-- boot.catalog
`-- ...

You want to modify the ISO and edit the "grub.lst" file (which you can search for if you do not find). You then want to repack it into a bootable ISO and burn it to disk.

I've seen ISOMaster recommended for such tasks, so that'd be the first leaf I turn over.


Some distributions also use isolinux, and their config details can be found in isolinux.cfg, and use a LILO-like syntax, which uses append to add arguments.

share|improve this answer
    
I updated the question to address your answer. As you can see from the directory tree I included, there is no grub.lst on the disk. (at least not as an standalone uncompressed file - it might be in a tarball somewhere) Also, I believe (but I could be wrong) GRUB2 (the latest version of GRUB) depreciated grub.lst and replaced it with /etc/default/grub. When I boot into the disk, I am able to navigate to that directory (/etc/default/), but it doesn't show up on the disk. I'm guessing it's compressed in a file somewhere but I don't actually know. –  advs89 Apr 26 '11 at 19:47
    
@advs89 It may very well be that you will find the config in isolinux.cfg - I've not dealt with isolinux, so that this may not be the case (and note that my example uses syslinux, which may decrease its applicability to your situation). –  new123456 Apr 26 '11 at 21:28
    
It looks like isolinux.cfg is going to be it. I'll mark you as accepted after I try it (just to make sure). –  advs89 Apr 26 '11 at 21:42

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.