You are not logged in.
Hello community,
recently I purchased an SSD drive and am now having trouble doing an Arch install on it. Before that a 2TB HDD was in use. After building in the SSD I partitioned it (msdos partition table) creating partitions for swap, / and /home. Then I copied the files from the old /home partition on the freshly created one and installed Arch on the new / partition. Here's the partition setup:
$ LANG=C sudo fdisk -l
Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003a234
Device Boot Start End Blocks Id System
/dev/sda1 2048 3907028991 1953513472 5 Extended
/dev/sda5 16065 4192964 2088450 82 Linux swap / Solaris
/dev/sda6 4196352 65720319 30761984 83 Linux # old /
/dev/sda7 65722368 577720319 255998976 83 Linux # old /home
/dev/sda8 577722368 3907028991 1664653312 83 Linux
Disk /dev/sdb: 128.0 GB, 128035676160 bytes
255 heads, 63 sectors/track, 15566 cylinders, total 250069680 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000a9841
Device Boot Start End Blocks Id System
/dev/sdb1 51863552 241582079 94859264 83 Linux # new /home
/dev/sdb2 241582080 250068991 4243456 82 Linux swap / Solaris
/dev/sdb3 2048 51863551 25930752 83 Linux # new /
Partition table entries are not in disk order
The problem is: booting from the SSD fails as follows: On the first try to select some Grub entry I get an error 22 "No such partition.". On any further try I get error 18 "Selected cylinder exceeds maximum supported by bios".
What works is to boot up the new system from the Grub residing on the HDD. So the problem is just the new Grub install in the SSD's MBR. Also it's not a thing of Grub's configuration, since copying the working menu.lst from the HDD install and reinstalling grub via grub-install /dev/sdb gives the correct Grub entries but selecting them results in the same errors.
So currently I'm booting from the HDD and selecting the boot entry for the freshly installed SSD system there, which works fine. But of course I'd like the SSD to be able to boot without "help" on the part of the HDD.
I tried to activate AHCI in the Bios but it didn't make any difference. The SSD is a Crucial M4 128GB.
Thanks for any hints,
PhotonX
Last edited by PhotonX (2012-07-26 06:04:53)
Desktop: http://www.sysprofile.de/id15562, Arch Linux | Notebook: Thinkpad L13 Yoga Gen2, Manjaro
The very worst thing you can do with free software is to download it, see that it doesn't work for some reason, leave it, and tell your friends that it doesn't work. - Tuomas Lukka
Offline
I dont see a bootable flag ("*" in boot column) in your listings. Maybe you try to set that for your sdb grub partition?
Maybe also you have to switch boot order in bios.
Offline
Thanks for your reply! Of course I've set the SSD on the first place in the Bios' priority list when trying to boot from it. Otherwise I would've booted from the HDD which works fine anyway.
The boot flag is a good idea! In fact I wrote Grub on sda and sdb respectively when installing it on the HDD or SSD (so no sdaX or sdbX partition, just sda and sdb). On the HDD this always worked, maybe it'll really help to make a separate boot partition on the SSD and give it a boot flag. I'll test it and report back later.
Desktop: http://www.sysprofile.de/id15562, Arch Linux | Notebook: Thinkpad L13 Yoga Gen2, Manjaro
The very worst thing you can do with free software is to download it, see that it doesn't work for some reason, leave it, and tell your friends that it doesn't work. - Tuomas Lukka
Offline
I would put the boot flag where is your sdb /boot is now.
Besides, are you sure that stays "sdb" when you switch bios orders around? (you can test by booting from the arch iso and looking at partitions then). Maybe you should try the UUID for the new grub config, if that's the case.
Offline
I created a /boot partition now:
$ LANG=C sudo fdisk -l
Disk /dev/sdb: 128.0 GB, 128035676160 bytes
255 heads, 63 sectors/track, 15566 cylinders, total 250069680 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000a9841
Device Boot Start End Blocks Id System
/dev/sdb1 51863552 241582079 94859264 83 Linux # /home
/dev/sdb2 241582080 249831423 4124672 82 Linux swap / Solaris
/dev/sdb3 2048 51863551 25930752 83 Linux # /
/dev/sdb4 * 249831424 250068991 118784 83 Linux # /boot
Partition table entries are not in disk order
Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003a234
Device Boot Start End Blocks Id System
/dev/sda1 2048 3907028991 1953513472 5 Extended
/dev/sda5 16065 4192964 2088450 82 Linux swap / Solaris
/dev/sda6 4196352 65720319 30761984 83 Linux
/dev/sda7 65722368 577720319 255998976 83 Linux
/dev/sda8 577722368 3907028991 1664653312 83 Linux
Then installed Grub on this partition: "grub-install /dev/sdb4". Then placed the SSD on the first position in the Bios, booted but got the same errors in Grub. So it doesn't matter where exactly Grub is installed, if it's somewhere on the SSD, it fails...
edit: Concerning using UUIDs: I couldn't find any howto regarding Grub (legacy) configuration with UUID's. Could you point me to some example config?
edit2: I now put the SSD on the first place in the boot list and started PartedMagic. But fdisk still recognizes the SSD as sdb and the HDD as sda. I think, the sdX identifier can be changed only by plugging the SSD in the first SATA port and the HDD in the second (while now it is the other way around).
edit3: I tried to install Grub from the HDD installation on the SSD (executed "grub-install /dev/sdb4" from the HDD system) and found out that, though I created a /boot partition on the SSD, the Grub files installed directly on /dev/sdb are used. So I tried to install Grub from the HDD system onto /dev/sdb (executed "grub-install /dev/sdb" from the HDD system) and got error 22 even before Grub's boot list was shown. But maybe it's really a bad idea to install Grub on another drive than the system it belongs to is located.
Last edited by PhotonX (2012-05-18 21:54:56)
Desktop: http://www.sysprofile.de/id15562, Arch Linux | Notebook: Thinkpad L13 Yoga Gen2, Manjaro
The very worst thing you can do with free software is to download it, see that it doesn't work for some reason, leave it, and tell your friends that it doesn't work. - Tuomas Lukka
Offline
Ok, yes - UUID's are in grub2. In legacy you can use labels: https://wiki.archlinux.org/index.php/Gr … g_by_label
Does not matter though, since you tested that the SSD stays the same (sdb).
Your sdb3/4 are ext2?
Offline
Nope, sdb3 is ext4 and sdb4 is ext2 but as I wrote, it seems that the Grub install on sdb4 isn't used at all.
Desktop: http://www.sysprofile.de/id15562, Arch Linux | Notebook: Thinkpad L13 Yoga Gen2, Manjaro
The very worst thing you can do with free software is to download it, see that it doesn't work for some reason, leave it, and tell your friends that it doesn't work. - Tuomas Lukka
Offline
Maybe pull the plug on your HDD, then you know if the problem is your grub install or the bios.
Offline
It's really strange, but without the HDD it really could boot from the SSD! Of course it dropped me to a recovery shell since all the entries in the fstab were incorrect with the SSD being sda now, but it worked! I'm a bit in a hurry now, so I'll try to find out whether the problem occurs if the SSD is not the first drive or if it is not the only drive in the system later and report back.
Thanks for your assistance!
Desktop: http://www.sysprofile.de/id15562, Arch Linux | Notebook: Thinkpad L13 Yoga Gen2, Manjaro
The very worst thing you can do with free software is to download it, see that it doesn't work for some reason, leave it, and tell your friends that it doesn't work. - Tuomas Lukka
Offline
You can use UUID's in grub-legacy, you just use root=/dev/disk/by-uuid/bed24ac3-5fb2-4fec-80c4-228e2a717e02 instead of root=/dev/sda1 (with your own values of course!) Give that a go first with the SSD only then with the HDD. I personally use labels as it's the easiest way, as long as you use different labels everywhere. It would be root=/dev/disk/by-label/arch or whatever.
D:
Offline
Thanks, will try that when I'm back home.
Desktop: http://www.sysprofile.de/id15562, Arch Linux | Notebook: Thinkpad L13 Yoga Gen2, Manjaro
The very worst thing you can do with free software is to download it, see that it doesn't work for some reason, leave it, and tell your friends that it doesn't work. - Tuomas Lukka
Offline
MisterAnderson, thanks to your hint I could solve this problem also. Here a quite strange thing happened, too. Before reordering the drives everything looked like this:
HDD - 1. boot priority - hd0 - sda
SSD - 2. boot priority - hd1 - sdb
Changing the boot priority results in
SSD - 1. boot priority - hd0 - sdb
HDD - 2. boot priority - hd1 - sda
So the hdN labels follow the boot priority while the sdX ones don't. Now that I know this, I could correct my menu.lst and it works now even with /dev/sdX paths.
Thanks again,
PhotonX
Desktop: http://www.sysprofile.de/id15562, Arch Linux | Notebook: Thinkpad L13 Yoga Gen2, Manjaro
The very worst thing you can do with free software is to download it, see that it doesn't work for some reason, leave it, and tell your friends that it doesn't work. - Tuomas Lukka
Offline
That's cool, glad it's working. I think that /dev/sdX paths will (usually) follow the ports on your board, meaning sata 0 will be sda, sata 1 will be sdb and so on (if you're not using any it just skips them). I've got a couple of rigs with 3 and 4 drives in each and both follow this pattern.
D:
Offline