Автор: mikkey , 26 октября 2006
Есть винт, на нём был некий загрузчик, который был затёрт при установке ХР.
[code:1]Physical number of disk 0 : 2527a2c7
0 : C:* type=7 (HPFS/NTFS), size= 10241406 KB, Lba Pos=63
1 : C: type=f (Win95 XInt 13 extended), size= 67898722 KB, Lba Pos=20482875
2 : C: type=7 (HPFS/NTFS), size= 35840983 KB, Lba Pos=20482938
3 : C: type=5 (Extended), size= 25551382 KB, Lba Pos=92164905
4 : C: type=b (Win95 Fat32), size= 25551351 KB, Lba Pos=92164968
5 : C: type=5 (Extended), size= 2096482 KB, Lba Pos=143267670
6 : C: type=83 (Linux native), size= 2096451 KB, Lba Pos=143267733
7 : C: type=5 (Extended), size= 425722 KB, Lba Pos=147460635
8 : C: type=82 (Linux swap), size= 425691 KB, Lba Pos=147460698
9 : C: type=5 (Extended), size= 1389622 KB, Lba Pos=148312080
10 : C: type=83 (Linux native), size= 1389591 KB, Lba Pos=148312143
11 : C: type=5 (Extended), size= 2136645 KB, Lba Pos=151091325
12 : C: type=83 (Linux native), size= 2136613 KB, Lba Pos=151091388
13 : C: type=5 (Extended), size= 377527 KB, Lba Pos=155364615
14 : C: type=83 (Linux native), size= 377496 KB, Lba Pos=155364678
15 : C: type=5 (Extended), size= 80325 KB, Lba Pos=156119670
16 : C: type=82 (Linux swap), size= 80293 KB, Lba Pos=156119733
[/code:1]
При его старте было примерно такие варианты (по памяти):
[list]Linux Setup
Linux Mandrake
(Какая-то почта)
(Ещё чегото-там)
.......
Windows XP
(Ещё чегото-там)[/list:u]

Раньше с линуксом не работал, побыстрому пошарившись в инете, понял что дело обстоит не так как хотелось бы, придётся долго вникать.

Поэтому спрашиваю у спецов - можно ли в пару действий вернуть всё на место?

Добавлено спустя 59 минут 47 секунд:

Точнее там наверное не почта, это я с SMTP перепутал :)
Вот что находится в 6 разделе (отбрасывая ext реально это 4-ый логический диск) в \boot\map
linux-smp
linux
linux-nonfb
2425-2smp
263-7
2425-2
failsafe
windows
floppy

Вроде такое меню и выскакивало.
Попробовал bootpart'ом добавить - не грузит с винта, пытается из сети или флопаря... :(
Содержимое данного поля является приватным и не предназначено для показа.

BBCode

  • HTML-теги не обрабатываются и показываются как обычный текст
  • You may use the following BBCode tags:
    • [align]
    • [b]
    • [code]
    • [color]
    • [font]
    • [hr]
    • [i]
    • [img]
    • [list]
    • [quote]
    • [s]
    • [size]
    • [spoiler]
    • [sub]
    • [sup]
    • [table]
    • [u]
    • [url]
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.

Llama

19 лет 4 месяца назад

1) Берем livecd линуксовый, грузимся с него
2) В консоли выполняем команду fdisk -l - получаем в выводе что-то вида:

[pre]
Disk /dev/sda: 73.4 GB, 73406611456 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 24 192748+ 83 Linux
/dev/sda2 25 753 5855692+ 83 Linux
/dev/sda3 754 2212 11719417+ 83 Linux
/dev/sda4 2213 8924 53914140 5 Extended
/dev/sda5 2213 3671 11719386 83 Linux
/dev/sda6 3672 8924 42194691 83 Linux
[/pre]

Дале с помошь команды mount (см. man mount ) монтируете девайсы в каталоги (для конкретики предположим что он называется /traget/ ) Надо найти как минимум корневой каталог. В нем - см. /etc/fstab и далее монтируеете относительно target руками все дисковые девайсы. В результате - получите дерево файловой системы в каталоге /target/ опсле чего делаете
mount -t proc proc none /target/proc
mount -t sysfs sysfs mone /target/sys (этак команда может не срабоатьа на дистрибутивах на яде 2.4)
После чего - сделаете chroot /target/ /bin/sh и попадаете собственно в ваш линукс. Далее вам предстоит только восстановить загрузчик - для этого см. наличие /etc/lilo.conf либо /boot/grub/menu.lst (подразумеваются пути после выполнения chroot). В зависимости от того какой загрузчик установлен, надо выполнить либо lilo без параметров либо grub-install передава ему в качестве парамтре имя файла диска на который ему надобно устанавливаться.

Если что-то в написаном мною не понятно, от постарайтесь дать больше информации и показать все упомнутые в конфиге файлы, благо что FAT-разделаы там похоже есть, значит и переписать фалики на них можно.
PS: интересно, это мудачьё из M$ когда-нибудь додумается пофиксить свой инсталлер?

mikkey

19 лет 4 месяца назад

Вот что в упомянутом выше разделе в папке boot сидит:
[list]grub\
config (special file)
map
message (special file)
message-graphic
message-text
vmlinuz (special file)
vmlinuz-smp (special file)
boot.0300
config-2.4.25-2mdk
System.map-2.4.25-2mdk
vmlinuz-2.4.25-2mdk
config-2.4.25-2mdksmp
System.map-2.4.25-2mdksmp
vmlinuz-2.4.25-2mdksmp
config-2.6.3-7mdk
kernel.h-2.6.3-7mdk
System.map-2.6.3-7mdk
vmlinuz-2.6.3-7mdk
config-2.6.3-7mdksmp
kernel.h-2.6.3-7mdksmp
System.map-2.6.3-7mdksmp
vmlinuz-2.6.3-7mdksmp
kernel.h (special file)
diag1.img
diag2.img
initrd-2.4.25-2mdk.img
initrd-2.4.25-2mdksmp.img
initrd-2.6.3-7mdk.img
initrd-2.6.3-7mdksmp.img
initrd.img (special file)
initrd-smp.img (special file)
ru4.klt
System.map (special file)
kernel.h-2.6.3-7mdk.tmp (special file)[/list:u]
grub\
[list]e2fs_stage1_5
fat_stage1_5
ffs_stage1_5
jfs_stage1_5
minix_stage1_5
reiserfs_stage1_5
stage1
stage2
vstafs_stage1_5
xfs_stage1_5[/list:u]
Щас посмотрю что в etc...

Добавлено спустя 10 минут 49 секунд:

Вот что в etc/lilo.conf
[code:1]# File generated by DrakX/drakboot
# WARNING: do not forget to run lilo after modifying this file

boot=/dev/hda
map=/boot/map
default="linux-smp"
keytable=/boot/ru4.klt
prompt
nowarn
timeout=100
message=/boot/message
menu-scheme=wb:bw:wb:bw
image=/boot/vmlinuz
label="linux"
root=/dev/hda10
initrd=/boot/initrd.img
append="devfs=mount acpi=ht splash=silent"
vga=788
read-only
image=/boot/vmlinuz
label="linux-nonfb"
root=/dev/hda10
initrd=/boot/initrd.img
append="devfs=mount acpi=ht"
read-only
image=/boot/vmlinuz-2.4.25-2mdksmp
label="2425-2smp"
root=/dev/hda10
initrd=/boot/initrd-2.4.25-2mdksmp.img
append="devfs=mount acpi=ht splash=silent"
read-only
image=/boot/vmlinuz-2.6.3-7mdk
label="263-7"
root=/dev/hda10
initrd=/boot/initrd-2.6.3-7mdk.img
append="devfs=mount acpi=ht splash=silent"
read-only
image=/boot/vmlinuz-smp
label="linux-smp"
root=/dev/hda10
initrd=/boot/initrd-smp.img
append="devfs=mount acpi=ht splash=silent"
read-only
image=/boot/vmlinuz-2.4.25-2mdk
label="2425-2"
root=/dev/hda10
initrd=/boot/initrd-2.4.25-2mdk.img
append="devfs=mount acpi=ht splash=silent"
read-only
image=/boot/vmlinuz
label="failsafe"
root=/dev/hda10
initrd=/boot/initrd.img
append="failsafe acpi=ht devfs=nomount"
read-only
other=/dev/hda1
label="windows"
table=/dev/hda
other=/dev/fd0
label="floppy"
unsafe [/code:1]
Насколько я понял, загрузчик тут Lilo а не Grub?
Т.е. чтоб восстановить загрузчик, нужно обязательно линуксом загрузиться или MS можно?

Llama

19 лет 4 месяца назад

Забавно. Их там два. Каой был в MBR - сказать трудно. Грузиться надо таки в linux. Процедуру я вам описал.

mikkey

19 лет 4 месяца назад

Ну и тяжко однако скажу я Вам...
То что их два я тоже догадался, но судя по отсутствию /boot/grub/menu.lst и наличию etc/lilo.conf загрузчик от Lilo.

Короче, загрузился с UBCD Insert'oм.
Долго вникал и пытался дать команды, описанные Вами, удалось смонтировать hda7, а вот с proc и sysfs проблемы, вроде не получилось, но chroot и lilo сработало, однако как оказывается не до конца :)
Загрузчик появился (который был раньше), но вот кроме Win ничего не загружает, точнее пытается линукс - но ругается.
Пытался скопировать лог, да не смог запустить какой-нить редактор + выделить - выделяется, а вот как в буфер воткнуть?... :(

Щас будет вторая попытка.

--
P.S. Вместо sysfs надо писать ext3? (там ext3)
P.P.S. По два раза тоже не надо повторять?

Llama

19 лет 4 месяца назад

а как ругается-то при попытке загрузать linux ?
PS: вместо sysft ext3 писать не надо.
PPS: что именно повторять два раза? Не совсем понял вопрос.

mikkey

19 лет 4 месяца назад

mount /dev/hda7 /home - OK
mount -t proc none /home/proc - OK
mount -t ext3 none /home/sys - ругается на несуществующее устройство none или типа того :(
lilo - [code:1]linux-smp
linux
linux-nonfb
2425-2smp
263-7
2425-2
failsafe
windows
floppy[/code:1]
Ребут - на загрузке ругается на kernel...

Добавлено спустя 2 минуты 37 секунд:

[code:1]Kernel panic: No init found. Try passing init= option to kernel.[/code:1]

Llama

19 лет 4 месяца назад

про третий mount забудьте, это актуально только для ядра 2.6, у вас 2.4
Как гругается на kernel - в духе "Kernel panic: VFS: Unable to mount root fs" ?
1) Покажите все же вывод fdisk -l
2) Скорее всего надо повторить процедуру еще раз, замени в lilo.conf root=/dev/hda10 на root=/dev/hda7
3) Использовались ли после установки linux но перед установкой венды тулзы типа Partition Magick, и если да, то что ими делалось?

mikkey

19 лет 4 месяца назад

[code:1] :/ramdisk/home/insert # fdisk -l

Disk /dev/hda: 80.0 GB, 80026361344 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 * 1 1275 10241406 7 HPFS/NTFS
/dev/hda2 1276 9728 67898722+ f W95 Ext'd (LBA)
/dev/hda5 1276 5737 35840983+ 7 HPFS/NTFS
/dev/hda6 5738 8918 25551351 b W95 FAT32
/dev/hda7 8919 9179 2096451 83 Linux
/dev/hda8 9180 9232 425691 82 Linux swap
/dev/hda9 9233 9405 1389591 83 Linux
/dev/hda10 9406 9671 2136613+ 83 Linux
/dev/hda11 9672 9718 377496 83 Linux
/dev/hda12 9719 9728 80293+ 82 Linux swap
:/ramdisk/home/insert # mount /dev/hda7 /home/targ
:/ramdisk/home/insert # mount -t proc none /home/targ/proc
:/ramdisk/home/insert # mount -l
/dev/root on / type ext2 (rw)
/dev/scd0 on /cdrom type iso9660 (ro)
/dev/cloop on /INSERT type iso9660 (ro)
/ramdisk on /ramdisk type tmpfs (rw,size=199280k)
/proc/bus/usb on /proc/bus/usb type usbdevfs (rw,devmode=0666)
/dev/hda6 on /home type vfat (rw)
/dev/hda7 on /home/targ type ext3 (rw) []
none on /home/targ/proc type proc (rw)
:/ramdisk/home/insert # chroot /home/targ/ /bin/sh
sh-2.05b# lilo
Added linux
Added linux-nonfb
Added 2425-2smp
Added 263-7
Added linux-smp *
Added 2425-2
Added failsafe
Added windows
Added floppy
sh-2.05b# mount -l
/dev/ide/host0/bus0/target0/lun0/part10 on / type ext3 (rw)
none on /proc type proc (rw)
none on /dev type devfs (rw)
sh-2.05b# fdisk -l

Disk /dev/hda: 80.0 GB, 80026361344 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 * 1 1275 10241406 7 HPFS/NTFS
/dev/hda2 1276 9728 67898722+ f W95 Ext'd (LBA)
/dev/hda5 1276 5737 35840983+ 7 HPFS/NTFS
/dev/hda6 5738 8918 25551351 b W95 FAT32
/dev/hda7 8919 9179 2096451 83 Linux
/dev/hda8 9180 9232 425691 82 Linux swap
/dev/hda9 9233 9405 1389591 83 Linux
/dev/hda10 9406 9671 2136613+ 83 Linux
/dev/hda11 9672 9718 377496 83 Linux
/dev/hda12 9719 9728 80293+ 82 Linux swap
sh-2.05b# [/code:1]

mount -t proc proc none /target/proc
mount -t sysfs sysfs mone /target/sys (этак команда может не срабоатьа на дистрибутивах на яде 2.4)

Если proc proc два раза - то ошибка со справкой по использованию.
Так, похоже надо не sysfs а sysft, щас испробую.

Добавлено спустя 1 минуту 59 секунд:

РМ не использовались, по крайней мере мной, и следов их не видно.
Менять на hda10 hda7 не пробовал, раньше ведь грузилось... пока так мучаю.

Добавлено спустя 23 минуты 20 секунд:

sysft - пофиг, но как я уже понял, это для более свежего ядра.
Поменял hda10 на hda7 - пошла загрузка, дальше обычного, тормознуло на:
[code:1]Активизируются разделы для свопинга: swapon: dev/hda11: invalid argument
[FAILED][/code:1]
Потом запустилась проверка ФС на hda12 - ругнулось на суперблок и на Magic Number и т.д. и.т.п. :(

Llama

19 лет 4 месяца назад

/dev/hda10 монтировать и смотреть не пробывали?
Попробуйте прегрузится и в командной строке lilo напишите linux root=/dev/hda7 devfs=mount acpi=ht

mikkey

19 лет 4 месяца назад

/dev/hda10 монтировать и смотреть не пробывали?

Там ничего нет, только lost&found, да и то вроде оно создалось при проверке ФС.

Насколько я понял ситуацию, поменялась "структура разделов", т.е. раньше теперешний hda7 был hda10, или lilo так думал, поэтому при загрузке с него, свап должен быть на hda8, но lilo думает что hda11 (10+1=11), и пытается его подключить как свап, но реально hda11 - не свап, поэтому и выскакивает ошибка при проверке ФС, аналогично с hda9 - lilo думает что это сейчас hda12, который является свапом, и никаких суперблоков там нет и быть не может (наверное..., со структурой линуксовой ФС я не знаком, сужу по сообщениям e2fsck).

Попробуйте прегрузится и в командной строке lilo напишите linux root=/dev/hda7 devfs=mount acpi=ht

Эта операция должна указать lilo откуда "считать" разделы, но как в эту строку попасть?
Я попробовал:
[code:1]:/ramdisk/home/insert # chroot /home/hd7/ /bin/sh
sh-2.05b# lilo
Added linux
Added linux-nonfb
Added 2425-2smp
Added 263-7
Added linux-smp *
Added 2425-2
Added failsafe
Added windows
Added floppy

sh-2.05b# linux root=/dev/hda7 davfs=mount acpi=ht
sh: linux: command not found

sh-2.05b# lilo linux root=/dev/hda7 davfs=mount acpi=ht
usage: lilo [ -C config_file ] -q [ -m map_file ] [ -v N | -v ... ]
lilo [ -C config_file ] [ -b boot_device ] [ -c ] [ -g | -l | -L ]
[ -F ] [ -i boot_loader ] [ -m map_file ] [ -d delay ]
[ -v N | -v ... ] [ -t ] [ -s save_file | -S save_file ]
[ -p ][ -P fix | -P ignore ] [ -r root_dir ] [ -w | -w+ ]
lilo [ -C config_file ] [ -m map_file ] -R [ word ... ]
lilo [ -C config_file ] -I name [ options ]
lilo [ -C config_file ] [ -s save_file ] -u | -U [ boot_device ]
lilo -A /dev/XXX [ N ] inquire/activate a partition
lilo -M /dev/XXX [ mbr | ext ] install master boot record
lilo -T help list additional options
lilo -X internal compile-time options
lilo -V [ -v ] version information

sh-2.05b# [/code:1]
:?:
Или можно какой-нить конфиг ручками подправить?

Добавлено спустя 40 минут 39 секунд:

Нашол! :mrgreen:
/etc/fstab
[code:1]/dev/hda10 / ext3 defaults 1 1
none /dev/pts devpts mode=0620 0 0
/dev/hda12 /home ext3 defaults 1 2
/dev/hdd /mnt/cdrom auto umask=0,user,iocharset=koi8-u,codepage=866,noauto,ro,exec 0 0
none /mnt/floppy supermount dev=/dev/fd0,fs=ext2:vfat,--,umask=0,iocharset=koi8-u,sync,codepage=866 0 0
/dev/hda1 /mnt/win_c ntfs umask=0,nls=koi8-u,ro 0 0
/dev/hda5 /mnt/win_d ntfs umask=0,nls=koi8-u,ro 0 0
/dev/hda6 /mnt/win_e vfat umask=0,iocharset=koi8-u,codepage=866 0 0
none /proc proc defaults 0 0
/dev/hda8 swap swap defaults 0 0
/dev/hda11 swap swap defaults 0 0 [/code:1]
заменил на
[code:1]/dev/hda7 / ext3 defaults 1 1
none /dev/pts devpts mode=0620 0 0
/dev/hda9 /home ext3 defaults 1 2
/dev/hdd /mnt/cdrom auto umask=0,user,iocharset=koi8-u,codepage=866,noauto,ro,exec 0 0
none /mnt/floppy supermount dev=/dev/fd0,fs=ext2:vfat,--,umask=0,iocharset=koi8-u,sync,codepage=866 0 0
/dev/hda1 /mnt/win_c ntfs umask=0,nls=koi8-u,ro 0 0
/dev/hda5 /mnt/win_d ntfs umask=0,nls=koi8-u,ro 0 0
/dev/hda6 /mnt/win_e vfat umask=0,iocharset=koi8-u,codepage=866 0 0
none /proc proc defaults 0 0
/dev/hda8 swap swap defaults 0 0
/dev/hda12 swap swap defaults 0 0 [/code:1]
Дефолтный линукс грузится нормально, второй останавливается на "пустом рабочем столе" с курсором Х, наверное он такой и был...

Спасибо за помощь!