Linux - SoftwareThis forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
I have two disks in my computer, one of them my main (IDE) drive & a new one (S-ATA). Basically, I want to make the entire sata drive the new primary hard drive, but have it completely under control of the volume manager (except for boot, which I understand has to be on a physical partition). The original (IDE) disk had root and swap as separate, physical partitions. Here's what I've tried:
1. Partition the disk with a 32 meg sda1 and the whole rest of the disk (1 TB total) as sda2.
2. Copy everything from the IDE /boot directory to the sata sda1 (mounted as /target).
3. Set up lvm on the rest of the disk, with logical volumes for root, swap, home, usr, and var.
4. Copy everything from the IDE to the appropriate sata lv's. This is done and everything mounts fine.
5. Mount the sata drive's root lv on /target, the sata boot sda1 on /target/boot, and the other lv's appropriately.
6. Do a chroot to target.
7. Run grub, with the following input:
This seems to have run with no problem.
What happens is that when I boot, it just hangs, with no output, evidently not even getting to grub. I *think* I may know what's wrong, but am open to any other suggestions.
What I *think* is that none of the above really wrote the MBR (I thought grub would do it, but evidently not). When I check the limits of the partitions, it appears that sda1 starts on cylinder #1, but the 63rd sector, so as far as I know (unless grub was supposed to do it), the MBR hasn't been written.
Can someone either a) confirm that this is correct, and/or b) tell me how to get the MBR correctly written (preferably the "and" condition;-).
No, I wanted to have both disks in there at the end of the day. In the bios, I made the sata drive the primary drive, so it's trying to boot from it. When I change the primary drive to the IDE, it boots from it fine, just as always. When the sata is the primary drive, it goes through the normal boot process up to where it would normally display the GRUB menu, then an underscore cursor just sits there on an otherwise blank screen about an inch or two below the top left corner.
Ha! For anyone out there listening, I solved one problem, and got a GRUB boot menu from my sata disk. I used the interactive grub listed in my first post, using hd1 instead of hd0 (I have this in the device.map file, and didn't know what I was doing earlier).
Now, I get the grub menu, but when it goes to boot, I get a "Error 15: file not found", regardless of which menu item I choose. Here they are, from the /boot/grub/menu.lst file:
title Debian GNU/Linux, kernel 2.6.26 Using LVM with SATA Disk
kernel /boot/vmlinuz-2.6.26 root=/dev/ram0 lvm2root=/dev/mapper/sda_vol-root
The first one is the one I want to boot. I am going to try changing the "root (hd0,0)" to "root (hd1,0)" and see if that works, but the second line should be my old hard drive, and I get the same message there, which I don't understand.
Also, maybe I should use either (or both) of the:
# kopt=root=/dev/sda1 ro
lines in the menu.lst, but they also have the mysterious comment about "## DO NOT UNCOMMENT THEM, Just edit them to your needs", which I don't understand. Are they comments or not?
Mmmm - Debian; IDE and SATA.
This sounds like a problem I had with Ubuntu. It looks to me like screwed up init scripts, which I was advised go all the way back to the Debian base. The BIOS gives grub a different view of the disk layout than the running system does - cute.
I played around for a while then gave up, however I later saw a comment that using /dev/disk/by-id was a way around it.
Last edited by syg00; 02-22-2009 at 03:47 PM.
Hmm! That "by-id" thing is pretty interesting, but I'm not sure how to use it. I've made some further progress- I've moved ahead to where I no longer get the "File not found". I had to go into the device.map and menu.lst to set the hd0 and hd1 to sda and hda, respectively, because I found out the one I boot from is set as hd0, regardless of whether it's the ide or sata drive. I'm now am at the point where I get the boot menu from grub but it appears that when it tries to load the kernel it can't find the right disk driver.
On the other hand, how could it get to the grub menu and start booting linux if that were the case?
What happens is I get a bunch of messages scrolling by, it actually goes into the framebuffer "smaller character" mode, then I get this message:
List of all partitions:
0300 488386584 ide driver: ide-disk
0301 29294496 hda1
On second thought, it looks more like it couldn't find whatever lvm driver it needed. Here's a more complete list of the boot messages, appearing right after something about the keyboard:
Ramdisk: compressed image found at block 0
List of all partitions:
0300 488386584 hda driver: ide-disk
0301 29294496 hda1
0302 1951897 hda2
0303 457137607 hda3
1600 4590208 hdc driver: ide-cdrom
No filesystem could mount root, tried: ext3 cramfs
Kernel panic- not syncing: VFS: Unaboel to mount root fs on unknown block-block(1,0)
So, I'm thinking right there where it says "No filesystem could mount root, tried: ext3 cramfs", if it had tried the lvm driver it would have succeeded. Any idea how to make it do that?
I still haven't gotten this to work. I'm at the place above, where the system boots to saying something about my keyboard, then lists "all partitions", NOT to include the lvm filesystems.
I've fooled with this for the past week, and found a bug in lvm2create_initrd in the way it parsed out the required libraries, fixed it, then found out it was known, so got a later version where it was fixed "officially". That version ran out of space on the ram disk creating links to busybox, so I upped the added space from 512 to 1024, and it ran; however, it still bombs as above when I boot.
The lvm2rescue doesn't work, either, bombing in exactly the same way.
Does anyone know how to tell the boot ramdisk file system that it's got lvm volumes?
Also, supposedly, you can put an "linuxrc" file out on the initrd system. How do you do this? I thought I'd like to execute a shell during the boot process to see what is installed in the initrd (actually, I thought that's what lvm2rescue was supposed to do), but would like to try that from linuxrc.