[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: вопросик по NTFS



On Thu, Jul 27, 2006 at 10:53:10PM +0200, MaSJaN wrote:
> делаешь стартовую дискету с grub'ом, чтобы потом запустить линух, 
> восстанавливаешь NTFS как это описано здесь: 
> http://support.microsoft.com/kb/121517/EN-US/
> , далее бутуешь с дискеты (если при восстановлении NTFS был переписан 
> MBR) и нормально переконфигурируешь GRUB.
> 
> ну или ставишь read/write ntfs модули и с их помощью восстанавливаешь
> > NTFS-fs warning (device hda1): read_ntfs_boot_sector(): Hot-fix: 
> Recovery of
> > primary boot sector failed: Read-only mount.
> (насколько я понимаю он как раз это и пытается сделать! только опасность 
> в том, что может не только не восстановить, но и добить то, что осталось!)
> 
> надеюсь, что хоть чем-то помог! я так пару раз после suse спасал нтфсы и 
> винду...

Заглянул в код linux/fs/ntfs/super.c на предмет read_ntfs_boot_sector().
Оказалось все довольно просто: резервный бутсектор хранится в конце диска (в
NT 4 и выше). Также подтверждается ссылкой выше. Так что сделал вот что:

Смотрим вывод fdisk:

Disk /dev/hda: 122.9 GB, 122942324736 bytes
255 heads, 63 sectors/track, 14946 cylinders, total 240121728 sectors
Units = sectors of 1 * 512 = 512 bytes

   Device Boot      Start         End      Blocks   Id  System
   /dev/hda1   *          63    31358879    15679408+   7  HPFS/NTFS
   /dev/hda2        31358880   240107489   104374305    f  W95 Ext'd (LBA)
       [ скипнуто ]

# dd if=/dev/hda1 of=dump bs=512 skip=31358816 count=1
(Пояснение: 31358816 = 31358879 - 63 + 1) 

Смотрим в dump, убеждаемся, что получили то, что надо, и затем
# dd if=dump of=/dev/hda1 bs=512 count=1

Сработало.

-- 
Станислав



Reply to: