Ответить
  • svtbox Neophyte PosterАвтор темы
    офлайн
    svtbox Neophyte Poster Автор темы

    17

    15 лет на сайте
    пользователь #184778

    Профиль
    Написать сообщение

    17
    # 3 сентября 2009 18:03

    Помогите пожалуйста разрешить проблему!

    У меня есть старый ноут Compaq Armada M700. У него не работает DVD-привод, а нужно было переустановить Виндовс ХР. В boot-меню для установки можно выбрать только Multibay и Ethernet. Установить через сеть никак не получилось, а Multibay - это отделение под неработающий внутренний привод. Подключить внешний привод дисков или специально подготовленную флешку через usb не получается - ноут выдает PXE: Media test failure, check cable. Наверное видит только внутренний Multibay. Я снял винт, подключил его через переходник к своему компьютеру и установил на него Виндовс напрямую (с компакт-диска). Но когда вернул винт в ноут, то при запуске появляется сообщение "NTLDR is missing", хотя при подключении винта к компьютеру в системном разделе есть все необходимые файлы: ntldr, boot.ini, NTDETECT и все остальные. Насколько понимаю проблема возникла или потому, что во время установки Виндовс компьютер сохранил свои собственные параметры или же на моем ноутбуке очень старая биос. Пока что нет возможности найти внутренний привод и потому интересует как исправить то что уже есть. Как найти причину и как разрешить проблему в первом случае и во втором? Спасибо!

  • trustmeimanengineer Senior Member
    офлайн
    trustmeimanengineer Senior Member

    2747

    20 лет на сайте
    пользователь #23416

    Профиль
    Написать сообщение

    2747
    # 3 сентября 2009 18:06

    svtbox, в boot.ini что пропейсано?

    Vaše hovna - naše radost!
  • stean Senior Member
    офлайн
    stean Senior Member

    1175

    17 лет на сайте
    пользователь #82285

    Профиль
    Написать сообщение

    1175
    # 3 сентября 2009 18:13 Редактировалось stean, 1 раз.

    форматируйте винт в дос, обычный дос (подключив к другому компьютеру), затем просто подключив винт к ноутбуку и загрузившись в дос, из командной строки запускайте winnt (из папки i386) и устанавливайте windows. Проследите чтобы в config.sys был прописан драйвер himem.sys

    Все ставится замечательно :)

    Я там где ребята толковые, я там где плакаты "Вперед!"...
  • ASM Senior Member
    офлайн
    ASM Senior Member

    5306

    21 год на сайте
    пользователь #6161

    Профиль
    Написать сообщение

    5306
    # 3 сентября 2009 18:13

    svtbox, флоп есть?

  • ASM Senior Member
    офлайн
    ASM Senior Member

    5306

    21 год на сайте
    пользователь #6161

    Профиль
    Написать сообщение

    5306
    # 3 сентября 2009 18:14

    stean, не всегда... можно получить с таким же успехом что IO.sys не найден ;)

  • stean Senior Member
    офлайн
    stean Senior Member

    1175

    17 лет на сайте
    пользователь #82285

    Профиль
    Написать сообщение

    1175
    # 3 сентября 2009 18:16 Редактировалось stean, 1 раз.

    asm, сколько уж так ставил раз - никогда не встречал "io.sys" не найден :).

    Чтобы такого не было, загружаемся на ББ с загрузочного диска, где подцеплен какой-нить dos, и командой sys облагораживаем наш, заранее отформатированный в fat32 ноутбучный винт. Потом вручную правим autoexec и config

    p.s. может там кстати, уже винт при смерти :-?

    Я там где ребята толковые, я там где плакаты "Вперед!"...
  • ASM Senior Member
    офлайн
    ASM Senior Member

    5306

    21 год на сайте
    пользователь #6161

    Профиль
    Написать сообщение

    5306
    # 3 сентября 2009 18:17

    stean, Вы ставили, а я дизассемблировал загрузчик в MBR и в boot. ловите разницу.

  • stean Senior Member
    офлайн
    stean Senior Member

    1175

    17 лет на сайте
    пользователь #82285

    Профиль
    Написать сообщение

    1175
    # 3 сентября 2009 18:19

    asm: ну будь у меня pc3000 я бы тоже много чего делал ;)

    И что вы в дизассемблированном коде такое там усмотрели, что может помочь ТС ? :) Я пересаживал собаке почки, и что с этого ? :lol:

    Я там где ребята толковые, я там где плакаты "Вперед!"...
  • svtbox Neophyte PosterАвтор темы
    офлайн
    svtbox Neophyte Poster Автор темы

    17

    15 лет на сайте
    пользователь #184778

    Профиль
    Написать сообщение

    17
    # 3 сентября 2009 18:33

    Флопа к сожалению нету вообще (т.е. даже дырки под него нету)

    а в boot.ini написано следующее:

    [boot loader]

    timeout=30

    default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

    [operating systems]

    multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional RU" /fastdetect

  • stean Senior Member
    офлайн
    stean Senior Member

    1175

    17 лет на сайте
    пользователь #82285

    Профиль
    Написать сообщение

    1175
    # 3 сентября 2009 18:35

    svtbox : попробуйте упомянутый мной способ. Поставить ос из дистрибутива расположенного НА винте.

    Я там где ребята толковые, я там где плакаты "Вперед!"...
  • ASM Senior Member
    офлайн
    ASM Senior Member

    5306

    21 год на сайте
    пользователь #6161

    Профиль
    Написать сообщение

    5306
    # 3 сентября 2009 18:36

    stean, усмотрел причину этого самого NTLDR missing. и IO.sys missing вот и прекрасно понимаю что нет смысла отправлять топикстартера в дисковый редактор и предлагать править несколько байт. Поэтому и интересуюсь наличием флопа, дабы порекомендовать дальнейшие шаги.

    P.S. кстати каким боком РС3000 по вашему до дизассемблирования загрузчиков? И если РС3000 с ваших слов открывает такие горизонты - так купите ее ;) (только знайте, кнопок там типа "все привести в порядок" нет :) )

  • ASM Senior Member
    офлайн
    ASM Senior Member

    5306

    21 год на сайте
    пользователь #6161

    Профиль
    Написать сообщение

    5306
    # 3 сентября 2009 18:37

    stean,

    svtbox : попробуйте упомянутый мной способ. Поставить ос из дистрибутива расположенного НА винте.

    этот способ поможет при условии что загрузчик дос ляжет правильно. (иначе IO.sys missing и все сначала)

  • svtbox Neophyte PosterАвтор темы
    офлайн
    svtbox Neophyte Poster Автор темы

    17

    15 лет на сайте
    пользователь #184778

    Профиль
    Написать сообщение

    17
    # 3 сентября 2009 20:27

    ребята, может я чего-то не понимаю, но как можно скопировать дистрибютив на винт ноута и установливать с него виндовс через дос, если унету флопа? как можно дос получить без флопа? если бы флоп был или еще лучше рабочий сд-привод. тогда все решается, но как можно решить проблему описанную вначале?

  • Неизвестный кот Member
    офлайн
    Неизвестный кот Member

    160

    15 лет на сайте
    пользователь #184734

    Профиль

    160
    # 3 сентября 2009 20:51

    svtbox, замените внутренний привод, он всё равно пригодится.

  • Неизвестный кот Member
    офлайн
    Неизвестный кот Member

    160

    15 лет на сайте
    пользователь #184734

    Профиль

    160
    # 3 сентября 2009 20:55

    как можно дос получить без флопа?

    установите на компьютере, разумеется.

  • svtbox Neophyte PosterАвтор темы
    офлайн
    svtbox Neophyte Poster Автор темы

    17

    15 лет на сайте
    пользователь #184778

    Профиль
    Написать сообщение

    17
    # 3 сентября 2009 21:02

    да тут как говорят "цена вопроса", пока что я бы и без него обходился, ведь флешки есть; интересно все же как можно без привода виндовс установить; тут мне к стати на другом форуме написали, что можно винт разделить на два разделы, первый сделать активным и ДОСовым, а на другой закинуть дистрибутив и потом с винта на ноут установливать; если это действительно разрешение проблемы, тогда пишите пожалуйста в этом направлении

  • svtbox Neophyte PosterАвтор темы
    офлайн
    svtbox Neophyte Poster Автор темы

    17

    15 лет на сайте
    пользователь #184778

    Профиль
    Написать сообщение

    17
    # 3 сентября 2009 21:03

    это относительно привода, а относительно ДОСа, то как его можна на ноут установить?

  • ASM Senior Member
    офлайн
    ASM Senior Member

    5306

    21 год на сайте
    пользователь #6161

    Профиль
    Написать сообщение

    5306
    # 3 сентября 2009 22:12

    svtbox,

    Извлечь винт из ноута. Через переходник (в случае IDE) подключить к ПК и поставить DOS c любого старого загрузочного CD на основе DOS 7.10 или 8.0 (раздел не более 8Гб.(чтобы не нарываться на неприятности) форматируем в FAT32)

    format x: /s /q

    (где X - первый раздел вашего ноутбучного винта)

    далее дописать HIMEM.SYS в CONFIG.SYS указаеть его загрузку. (про синтаксики в config.sys и autoexec.bat найдете в поиске, там ничего сложного нет)

    обязательно подгрузить smartdrv.exe из autoexec.bat

    после загнать дистрибутив ОС (i386)

    загрузиться с винта (где все подготовлено)

    cd i386

    winnt

    и все пошло при условии что не будет ошибок в загрузчике. Далее когда все станет размер раздела на удобный можно изменить с помощью софта вроде Partition Magic.

    если же ошибки будут то боюсь для вас будет самый простой способ поставить работающий CD (DVD). (вряд ли ради этого стоит разбираться в тонкостях загрузчиков и способах адрессации главного загрузчика ОС)

  • noname76 Junior Member
    офлайн
    noname76 Junior Member

    74

    17 лет на сайте
    пользователь #80684

    Профиль
    Написать сообщение

    74
    # 4 сентября 2009 02:54

    возможно повреждены загрузочные файлы на системном разделе windows xp нужно загрузится с загрузочного диска windows xp ,выйти в консоль восстановления выбрать восстанавливаемую ос и набрать команды fixboot- Запись в системный раздел нового загрузочного сектора, fixmbr-Восстановление основной загрузочной записи загрузочного диска-Предупреждение. Данная команда может повредить таблицу разделов диска

  • ASM Senior Member
    офлайн
    ASM Senior Member

    5306

    21 год на сайте
    пользователь #6161

    Профиль
    Написать сообщение

    5306
    # 4 сентября 2009 09:12

    noname76,

    сообщения "A disk error occurred", "NTLDR missing", "NTLDR compressed" выдает загрузчик в boot секторе в случае обнаружения им той или иной проблемы (это я к тому что fixmbr тут совсем не при делах, по причине, что MBR свою функцию по загрузке boot сектора выполняет)

    Для некоторых особо непонятливых стоит пояснить, что загрузчик в boot секторе на работает с файловой системой, он стартует единственный файл используя INT 13h для загрузки

    см ниже

    ......

    seg000:0048 ; ---------------------------------------------------------------------------

    seg000:0048 mov ds:0CA9Ah, ax

    seg000:004B mov ch, al ; DATA XREF: sub_7B+6r

    seg000:004B ; sub_AA+9r ...

    seg000:004D retf 1E88h

    seg000:004D ; ---------------------------------------------------------------------------

    seg000:0050 db 0

    seg000:0051 db 0

    seg000:0052 db 0

    seg000:0053 db 0

    seg000:0054 ; ---------------------------------------------------------------------------

    seg000:0054 cli

    seg000:0055 xor ax, ax

    seg000:0057 mov ss, ax

    seg000:0059 mov sp, 7C00h

    seg000:005C sti

    seg000:005D mov ax, 7C0h

    seg000:0060 mov ds, ax

    seg000:0062 assume ds:nothing

    seg000:0062 call sub_7B

    seg000:0065 mov ax, 0D00h

    seg000:0068 mov es, ax

    seg000:006A assume es:nothing

    seg000:006A xor bx, bx

    seg000:006C mov byte ptr ds:0Eh, 10h

    seg000:0071 call sub_C7

    seg000:0074 push 0D00h

    seg000:0077 push 26Ah

    seg000:007A retf

    seg000:007B

    seg000:007B ; =============== S U B R O U T I N E =======================================

    seg000:007B

    seg000:007B

    seg000:007B sub_7B proc near ; CODE XREF: seg000:0062p

    seg000:007B mov dl, ds:24h

    seg000:007F mov ah, 8

    seg000:0081 int 13h ; DISK - DISK - GET CURRENT DRIVE PARAMETERS (XT,AT,XT286,CONV,PS)

    seg000:0081 ; DL = drive number

    seg000:0081 ; Return: CF set on error, AH = status code, BL = drive type

    seg000:0081 ; DL = number of consecutive drives

    seg000:0081 ; DH = maximum value for head number, ES:DI -> drive parameter

    seg000:0083 jnb short loc_8A

    seg000:0085 mov cx, 0FFFFh

    seg000:0088 mov dh, cl

    seg000:008A

    seg000:008A loc_8A: ; CODE XREF: sub_7B+8j

    seg000:008A movzx eax, dh

    seg000:008E inc ax

    seg000:008F movzx edx, cl

    seg000:0093 and dl, 3Fh

    seg000:0096 mul dx

    seg000:0098 xchg cl, ch

    seg000:009A shr ch, 6

    seg000:009D inc cx

    seg000:009E movzx ecx, cx

    seg000:00A2 mul ecx

    seg000:00A5 mov ds:20h, eax

    seg000:00A9 retn

    seg000:00A9 sub_7B endp

    seg000:00A9

    seg000:00AA

    seg000:00AA ; =============== S U B R O U T I N E =======================================

    seg000:00AA

    seg000:00AA

    seg000:00AA sub_AA proc near ; CODE XREF: sub_C7+2Dp

    seg000:00AA mov ah, 41h ; 'A'

    seg000:00AC mov bx, 55AAh

    seg000:00AF mov dl, ds:24h

    seg000:00B3 int 13h ; DISK -

    seg000:00B5 jb short locret_C6

    seg000:00B7 cmp bx, 0AA55h

    seg000:00BB jnz short locret_C6

    seg000:00BD test cl, 1

    seg000:00C0 jz short locret_C6

    seg000:00C2 inc byte ptr ds:14h

    seg000:00C6

    seg000:00C6 locret_C6: ; CODE XREF: sub_AA+Bj

    seg000:00C6 ; sub_AA+11j ...

    seg000:00C6 retn

    seg000:00C6 sub_AA endp

    seg000:00C6

    seg000:00C7

    seg000:00C7 ; =============== S U B R O U T I N E =======================================

    seg000:00C7

    seg000:00C7

    seg000:00C7 sub_C7 proc near ; CODE XREF: seg000:0071p

    seg000:00C7 pushad

    seg000:00C9 push ds

    seg000:00CA push es

    seg000:00CB

    seg000:00CB loc_CB: ; CODE XREF: sub_C7+91j

    seg000:00CB mov eax, ds:10h

    seg000:00CF add eax, ds:1Ch

    seg000:00D4 cmp eax, ds:20h

    seg000:00D9 jb loc_117

    seg000:00DD push ds

    seg000:00DE push large 0

    seg000:00E1 push eax

    seg000:00E3 push es

    seg000:00E4 push bx

    seg000:00E5 push large 10010h

    seg000:00EB cmp byte ptr ds:14h, 0

    seg000:00F0 jnz loc_100

    seg000:00F4 call sub_AA

    seg000:00F7 cmp byte ptr ds:14h, 0

    seg000:00FC jz loc_161

    seg000:0100

    seg000:0100 loc_100: ; CODE XREF: sub_C7+29j

    seg000:0100 mov ah, 42h ; 'B'

    seg000:0102 mov dl, ds:24h

    seg000:0106 push ss

    seg000:0107 pop ds

    seg000:0108 assume ds:nothing

    seg000:0108 mov si, sp

    seg000:010A int 13h ; DISK -

    seg000:010C pop eax

    seg000:010E pop bx

    seg000:010F pop es

    seg000:0110 assume es:nothing

    seg000:0110 pop eax

    seg000:0112 pop eax

    seg000:0114 pop ds

    seg000:0115 jmp short loc_144

    seg000:0117 ; ---------------------------------------------------------------------------

    seg000:0117

    seg000:0117 loc_117: ; CODE XREF: sub_C7+12j

    seg000:0117 xor edx, edx

    seg000:011A movzx ecx, ds:word_18

    seg000:0120 div ecx

    seg000:0123 inc dl

    seg000:0125 mov cl, dl

    seg000:0127 mov edx, eax

    seg000:012A shr edx, 10h

    seg000:012E div ds:word_1A

    seg000:0132 xchg dl, dh

    seg000:0134 mov dl, ds:byte_24

    seg000:0138 mov ch, al

    seg000:013A shl ah, 6

    seg000:013D or cl, ah

    seg000:013F mov ax, 201h

    seg000:0142 int 13h ; DISK - READ SECTORS INTO MEMORY

    seg000:0142 ; AL = number of sectors to read, CH = track, CL = sector

    seg000:0142 ; DH = head, DL = drive, ES:BX -> buffer to fill

    seg000:0142 ; Return: CF set on error, AH = status, AL = number of sectors read

    seg000:0144

    seg000:0144 loc_144: ; CODE XREF: sub_C7+4Ej

    seg000:0144 jb loc_161

    seg000:0148 mov ax, es

    seg000:014A add ax, 20h ; ' '

    seg000:014D mov es, ax

    seg000:014F assume es:nothing

    seg000:014F inc ds:dword_10

    seg000:0154 dec ds:word_E

    seg000:0158 jnz loc_CB

    seg000:015C pop es

    seg000:015D assume es:nothing

    seg000:015D pop ds

    seg000:015E popad

    seg000:0160 retn

    seg000:0161 ; ---------------------------------------------------------------------------

    seg000:0161

    seg000:0161 loc_161: ; CODE XREF: sub_C7+35j

    seg000:0161 ; sub_C7:loc_144j

    seg000:0161 mov al, ds:byte_1F8

    seg000:0164 call sub_170

    seg000:0167 mov al, ds:byte_1FB

    seg000:016A call sub_170

    seg000:016D sti

    seg000:016E

    seg000:016E loc_16E: ; CODE XREF: sub_C7:loc_16Ej

    seg000:016E jmp short loc_16E

    seg000:016E sub_C7 endp ; sp-analysis failed

    seg000:016E

    seg000:0170

    seg000:0170 ; =============== S U B R O U T I N E =======================================

    seg000:0170

    seg000:0170

    seg000:0170 sub_170 proc near ; CODE XREF: sub_C7+9Dp

    seg000:0170 ; sub_C7+A3p

    seg000:0170 mov ah, 1

    seg000:0172 mov si, ax

    seg000:0174

    seg000:0174 loc_174: ; CODE XREF: sub_170+10j

    seg000:0174 lodsb

    seg000:0175 cmp al, 0

    seg000:0177 jz short locret_182

    seg000:0179 mov ah, 0Eh

    seg000:017B mov bx, 7

    seg000:017E int 10h ; - VIDEO - WRITE CHARACTER AND ADVANCE CURSOR (TTY WRITE)

    seg000:017E ; AL = character, BH = display page (alpha modes)

    seg000:017E ; BL = foreground color (graphics modes)

    seg000:0180 jmp short loc_174

    seg000:0182 ; ---------------------------------------------------------------------------

    seg000:0182

    seg000:0182 locret_182: ; CODE XREF: sub_170+7j

    seg000:0182 retn

    seg000:0182 sub_170 endp

    seg000:0182

    seg000:0182 ; ---------------------------------------------------------------------------

    seg000:0183 db 0Dh

    seg000:0184 db 0Ah

    seg000:0185 aADiskReadError db 'A disk read error occurred',0

    seg000:01A0 db 0Dh

    seg000:01A1 db 0Ah

    seg000:01A2 aNtldrIsMissing db 'NTLDR is missing',0

    seg000:01B3 db 0Dh

    seg000:01B4 db 0Ah

    seg000:01B5 aNtldrIsCompres db 'NTLDR is compressed',0

    seg000:01C9 db 0Dh

    seg000:01CA db 0Ah

    seg000:01CB aPressCtrlAltDe db 'Press Ctrl+Alt+Del to restart',0Dh,0Ah,0

    seg000:01EB db 0

    seg000:01EC db 0

    seg000:01ED db 0

    seg000:01EE db 0

    seg000:01EF db 0

    seg000:01F0 db 0

    seg000:01F1 db 0

    seg000:01F2 db 0

    seg000:01F3 db 0

    seg000:01F4 db 0

    seg000:01F5 db 0

    seg000:01F6 db 0

    seg000:01F7 db 0

    seg000:01F8 byte_1F8 db 83h ; DATA XREF: sub_C7:loc_161r

    seg000:01F9 db 0A0h ; а

    seg000:01FA db 0B3h ; ¦

    seg000:01FB byte_1FB db 0C9h ; DATA XREF: sub_C7+A0r

    seg000:01FC db 0

    seg000:01FD db 0

    seg000:01FE db 55h ; U

    seg000:01FF db 0AAh ; к

    seg000:01FF seg000 ends

    seg000:01FF

    seg000:01FF

    seg000:01FF end