vBulletin Search Engine Optimization
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| Hello I wonder if someone could help me out with Linux installation. I've done a few installs before with Mandrake, but my latest has given me some problems (I'm a relative newbie). In a nutshell, it appears I have screwed up my partition table, and I wonder if I can fix it without blatting the disk and doing a complete re-install. In summary: - Trying to dual-boot Win 2000 and Linux - Used Partition magic to set-up a 50MB boot partition at the start of the disk, then windows partition, then linux - Successfully installed Mandrake 9.2 - Tampering with grub prevented a proper boot into Mandrake - After much faffing, decided to reinstall. - Subsequent Mandrake reinstall failed (though win 2000 still boots fine) So now Partition Magic hangs before starting, Red Hat Fedora install won't complete (gave up on Mandrake). But Mandrake install allows you to get fdisk started, or use the Mandrake repartitioning tool. This I did and have deleted my Linux partitions, ready for new install. Looks like fdisk is my best hope from here, but I'm not sure what to do. (see below for fdisk output) So, can I salvage this situation and install Linux without having to clear the Windows partition? Matt ========== $ fdisk /dev/hda1 (verify output) partition 1 does not end on cylinder boundary partition 2 does not end on cylinder boundary warning partition 1 overlaps partition 2 partition 3 does not end on cylinder boundary total allocated sectors <some huge number> is greater than the maximum <some smaller number> $ fdisk /dev/hda disk /dev/hda: 255 heads, 63 sectors, 3736 cylinders Nr Af Hd Sec Cyl Hd Sec Cyl Start Size Id 1 80 1 1 7 254 63 1023 112518 30587697 07 2 00 0 0 0 0 0 0 0 0 0 3 00 0 0 0 0 0 0 0 0 0 4 00 0 0 0 0 0 0 0 0 0 |
| |||
| On 31 Jan 2004 09:27:39 -0800, matt hegarty <mash101@talk21.com> wrote: > So, can I salvage this situation and install Linux without having to > clear the Windows partition? My guess is that Windows is fine. > $ fdisk /dev/hda1 /dev/hda1 is not a disk, it's a partition, and it drove me nuts the first 2 times I did it. It will likely look like your partition table is Swiss cheese. > $ fdisk /dev/hda > disk /dev/hda: 255 heads, 63 sectors, 3736 cylinders > > Nr Af Hd Sec Cyl Hd Sec Cyl Start Size Id > 1 80 1 1 7 254 63 1023 112518 30587697 07 > 2 00 0 0 0 0 0 0 0 0 0 > 3 00 0 0 0 0 0 0 0 0 0 > 4 00 0 0 0 0 0 0 0 0 0 I'm not great at reading partition tables, but it looks like you have 1 NTFS partition that doesn't start at the beginning of the disk. I assume PM rewrites the partition table when it hides partitions (I don't have it.) If my assumption is correct, you might want to make sure PM is showing all partitions, or just create the linux partitions and let the distro install Grub/Lilo to the MBR which I'd assume would bypass PM when booting. I'm assuming that PM/Boot Magic(?) is out of sync with the partition table on /dev/hda. Some think hiding partitions is a good idea, but to my knowledge it usually only complicates things. HTH, If someone could point me to a "good" primer on how PM works I'd appreciate it. Michael C. -- mcsuper5@usol.com http://mcsuper5.freeshell.org/ Registered Linux User #303915 http://counter.li.org/ |
| |||
| > $ fdisk /dev/hda > disk /dev/hda: 255 heads, 63 sectors, 3736 cylinders > > Nr Af Hd Sec Cyl Hd Sec Cyl Start Size Id > 1 80 1 1 7 254 63 1023 112518 30587697 07 > 2 00 0 0 0 0 0 0 0 0 0 > 3 00 0 0 0 0 0 0 0 0 0 > 4 00 0 0 0 0 0 0 0 0 0 Those numbers are unusual and inconsistent. DOS partitions usually start and end on a cylinder boundary, except that a primary partition may start at C/H/S of 0/1/1 (which is the second track) because the first sector has the MBR (Master Boot Record) and the rest of the first track is reserved (for GRUB [or Cedilla :-)].) Primary partition Nr 1 above begins at C/H/S 7/1/1 which is one track into a cylinder. A Size of (30587697 + 63) corresponds to 1904 cylinders [1904 == (30587760 / (255 * 63))] yet the table says that primary partition Nr 1 ends after cylinder 1023. Ordinarily a program such as Partition Magic would correct this by relying on the LBA info (30587697 sectors starting at 112518), but perhaps PM objects to not starting on a cylinder boundary. Let's try to figure the layout of the beginning of the drive when it had a /boot partition (that was later deleted.) Cylinders are numbered from 0 thru 3735, Heads [tracks] are numbered from 0 thru 254, and Sectors within a track are numbered from 1 thru 63. LBA (Logical Block [sector] Address) begins at 0. --lowest--- ---highest-- ---LBA--- --sectors- Nr Af Hd Sec Cyl Hd Sec Cyl Start Size Id 0 1 0 0 1 0 0 1 MBR (Master Boot Record) 0 2 0 0 63 0 1 62 rest of 1st track; reserved 1 00 1 1 0 254 63 6 63 112392 83 ext2/ext3 54.9MB /boot 0 1 7 0 63 7 112455 63 0 unused track [partitioning mistake] 2 80 1 1 7 254 63 1910 112518 30587697 07 NTFS 14.9GB Windows [not on Cyl boundary] 0 1 1911 254 63 3735 30700215 29318625 0 14.3GB unused rest of disk So the NTFS partition does not start on a cylinder boundary, but instead starts one whole track later. This is unusual; many softwares expect partitions to start and end on cylinder boundaries (except for the partition that is adjacent to the very first track which contains the MBR and 62 sectors of "reserved" space.) Evaluate the following strategy to see how well it might meet your needs: Backup the NTFS data, run fdisk, create a new empty DOS partition table, re-create the /boot and NTFS partitions [in order] by entering _exactly_ the right numbers to describe where they were [are], write out the partition table, exit, reboot. Re-run fdisk, print the partition table, check it. Boot a Linux rescue disk, run fsck on both partitions. [If you want Partition Magic to work, my guess is that you'll have to align the NTFS partition to a cylinder boundary.] -- |
| |||
| John Reiser <jreiser@BitWagon.com> wrote in message: Many thanks for your replies chaps. Given that I'm quite inexperienced, I think my best option is to try and get Partition Magic working. I suppose that by following John's advice this might be possible, so I have a couple of questions from here. > re-create the /boot and NTFS partitions [in order] by entering _exactly_ > the right numbers to describe where they were [are], Sorry but I don't understand what is meant here. Where do I find the numbers to describe the correct locations for the partitions? > write out the partition table, exit, reboot. Re-run fdisk, > print the partition table, check it. > Boot a Linux rescue disk, run fsck on both partitions. So presumably if this works OK, my partition table will be restored to some semblance of normality, meaning I can recover the situation from there by running Partition Magic? Or if not, what is the goal of performing these operations? > [If you want Partition Magic to work, my guess is that you'll have to > align the NTFS partition to a cylinder boundary.] Please can you clarify this for me. How do I determine the cylinder boundary? cheers Matt |
| |||
| One of the best resources on partitions is http://www.partitionsupport.com/partitionnotes.htm Under Utilities you will see the application 'findpart' for download; and also partition editing software. Findpart will give you an excellent detailed view of all your existing partitions. Similarly, Powerquests Partinfo does a somewhat similar job. This should be on your PM CD. I believe it is packaged with both PM, and also DriveImage. Of interest, when I installed RH9 on my XP system, using PM, I had left about 10Gb unallocated at the front of my second drive specifically for Linux. I then let Disk Druid partition that unallocated space during the Linux installation. Much later DriveImage was telling me that all my Fat32 and NTFS partititions over the 1023 cyl boundary were deemed to have #116 errors, ie CHS address not same as LBA. Fortunately both XP and Linux still worked. At the time I let DI correct the errors. Later I discovered findpart, and was able to check my partitions and I am reasonably confident all is fine. Subsequently I discovered from these and other newsgroups that partition managers provided with Linux distributions often screw things up as far as PM and DI is concerned, but sometimes real, sometimes not. |
| ||||
| matt hegarty wrote: > John Reiser <jreiser@BitWagon.com> wrote in message: > > Many thanks for your replies chaps. > > Given that I'm quite inexperienced, I think my best option is to try > and get Partition Magic working. I suppose that by following John's > advice this might be possible, so I have a couple of questions from > here. Do you have a complete, working backup of the NTFS data? Did you test the restore process and all the media? Back it up again. I mean it. It will be the best 21 CD-R (or 3 DVD-R) [and few hours] you ever spent. >>re-create the /boot and NTFS partitions [in order] by entering _exactly_ >>the right numbers to describe where they were [are], > > > Sorry but I don't understand what is meant here. Where do I find the > numbers to describe the correct locations for the partitions? > _IF_ this table [from my previous message] is correct: ===== disk /dev/hda: 255 heads, 63 sectors, 3736 cylinders --lowest--- ---highest-- ---LBA--- --sectors- Nr Af Hd Sec Cyl Hd Sec Cyl Start Size Id 0 1 0 0 1 0 0 1 MBR (Master Boot Record) 0 2 0 0 63 0 1 62 rest of 1st track; reserved 1 00 1 1 0 254 63 6 63 112392 83 ext2/ext3 54.9MB /boot 0 1 7 0 63 7 112455 63 0 unused track [partitioning mistake] 2 80 1 1 7 254 63 1910 112518 30587697 07 NTFS 14.9GB Windows [not on Cyl boundary] 0 1 1911 254 63 3735 30700215 29318625 0 14.3GB unused rest of disk ===== then the first partition [/dev/hda1, /boot] is from C/H/S 0/1/1 [LBA 63] through C/H/S 6/254/63 [LBA 112454], and the second partition [/dev/hda2, NTFS] is from C/H/S 7/1/1 [LBA 112518] through C/H/S 1910/254/63 [LBA 30700214]. The ending points are just _before_ C/H/S 7/0/1 [LBA 112455] and 1911/0/1 [LBA 30700215], respectively. >>write out the partition table, exit, reboot. Re-run fdisk, >>print the partition table, check it. >>Boot a Linux rescue disk, run fsck on both partitions. > > > So presumably if this works OK, my partition table will be restored to > some semblance of normality, meaning I can recover the situation from > there by running Partition Magic? Or if not, what is the goal of > performing these operations? > I'm guessing that Partition Magic will still complain because the NTFS partition does not start on a cylinder boundary. However, the goal of doing these operations is to see if the filesystem consistency checkers available under "linux rescue" can verify the existence of good on-disk structure [filesystems] when given a partition table which describes where we think the partitions actually live. If the filesystems check OK, then we proceed. If the filesystems do not check OK, then either the filesystem data has been destroyed, or the presumed partition table is incorrect. If a different [better] partition table cannot be reconstructed, then the only choice is to go back to the very beginning, start with an empty partition table, create cylinder-aligned partitions, and restore the NTFS filesystem from the backups [that's why backups are so important!!] > >>[If you want Partition Magic to work, my guess is that you'll have to >>align the NTFS partition to a cylinder boundary.] Suppose that the partition table above describes filesystems that check OK. Then change the partition table so that for the NTFS partition, fdisk says 2 80 0 1 7 254 63 1910 112455 30587760 07 NTFS which is one track (63 sectors larger) at the beginning: the one track of free space before the old NTFS partition has been concatenated onto the front of the NTFS. Boot "linux rescue" then slide the old NTFS partition data to the beginning of the new on-disk partition using dd if=/dev/hda2 bs=63b skip=1 of=/dev/hda2 The "bs=63b" means use a blocksize of 63 disk blocks [sectors]; 'b' means 512-byte "blocks", and 63 is the number of sectors per track. See "man dd". This will take about 50 minutes to transfer 14.9GB in + 14.9GB out at 10MB/s, plus _another_ 50 minutes if it misses revolutions by not being fast enough. [Sometimes the transfer rate is not so large, so don't give up too soon. If you quit too soon, then the NTFS on disk will be destroyed.] The resulting NTFS partition will be cylinder-aligned at both the beginning and the end, and will have the same [correct] contents as the old NTFS partition in the first (30587760 - 63) sectors, and will have garbage in the last 63 sectors. Run NFTS fsck (or scandisk under Windows) to clean up the tail end of the partition. The expected diagnosis is something like "63 missing sectors" and the expected action is "63 missing sectors added to the free list." > > Please can you clarify this for me. How do I determine the cylinder > boundary? > A cylinder boundary is C/H/S of any/0/1, which is equivalent to an LBA that is divisible by (63 * 255) which is 16065. [Obviously, you are engaging in risky business here. If your electrical power fails, if your machine overheats because you are running it with reduced cooling because you have the covers off, if you forgot to tell us everything, or left out something important, then we cannot help you. Backup your data first!] -- |