LINUX.ORG.RU
ФорумAdmin

Centos, MBR - откуда код?


0

1

После установки центоси на рэйд и граба на рэйд-раздел, в мбр лег интересный бут-код. Дамп - http://rghost.ru/58671440

Собссно вопрос - откуда он берется? Ну т.е. где его в случае чего искать для записи на винты?

Не, можно конечно и сислинукс поставить и егойный мбр взять, но все же...

★★★★★

Ответ на: комментарий от NiTr0

И подозрительно малого объема.

А я уж начал рассматривать на предмет «интересности». Код копирует себя в 0:0600, потом ищет первый active primary раздел, читает его бут-сектор в 0:7c00 и запускает. Сообщений об ошибках нет, потому и маленький.

i-rinat ★★★★★
()
Ответ на: комментарий от NiTr0

Ну все же вопрос стоит в том откуда он берется

Это parted: http://git.savannah.gnu.org/cgit/parted.git/tree/libparted/mbr.s

	cli

	mov	ax, #0x1000
	mov	ss, ax
	mov	sp, #0xB000

	mov	ax, #0x0000
	mov	ds, ax
	mov	es, ax

	sti

; Copy what the BIOS loaded (i.e. the MBR + head of partition table) from
; 0000:7c00 to 0000:0600

	mov	si, #0x7c00
	mov	di, #0x0600
	mov	cx, #0x200
	rep
	movsb

; Jump to the copy of the MBR

	jmp	0x0000:find_boot_partition + 0x0600

find_boot_partition:
	mov	si, #0x07BE

check_next_bootable:
	cmp	[si], al
	jnz	found_bootable
	add	si, #0x0010
	cmp	si, #0x07FE
	jnz	check_next_bootable
	jmp	error

found_bootable:

; Load in the boot sector at 0000:7c00

	mov	ah, #2			; BIOS command (read)
	mov	al, #1			; count
	mov	bx, #0x7c00		; destination pointer
	mov	dl, #0x80		; drive
	mov	dh, byte ptr [si + 1]	; head
	mov	cx, word ptr [si + 2]	; sector / cylinder
	int	#0x13			; BIOS read interrupt

	jmp	0x0000:0x7c00		; hand control to boot sector

error:
	jmp	error

А вот mbr, который у тебя:

00000000 <.data>:
   0:	fa                   	cli    
   1:	b8 00 10             	mov    ax,0x1000
   4:	8e d0                	mov    ss,ax
   6:	bc 00 b0             	mov    sp,0xb000
   9:	b8 00 00             	mov    ax,0x0
   c:	8e d8                	mov    ds,ax
   e:	8e c0                	mov    es,ax
  10:	fb                   	sti    
  11:	be 00 7c             	mov    si,0x7c00
  14:	bf 00 06             	mov    di,0x600
  17:	b9 00 02             	mov    cx,0x200
  1a:	f3 a4                	rep movs BYTE PTR es:[di],BYTE PTR ds:[si]
  1c:	ea 21 06 00 00       	jmp    0x0:0x621
  21:	be be 07             	mov    si,0x7be
  24:	38 04                	cmp    BYTE PTR [si],al
  26:	75 0b                	jne    0x33
  28:	83 c6 10             	add    si,0x10
  2b:	81 fe fe 07          	cmp    si,0x7fe
  2f:	75 f3                	jne    0x24
  31:	eb 16                	jmp    0x49
  33:	b4 02                	mov    ah,0x2
  35:	b0 01                	mov    al,0x1
  37:	bb 00 7c             	mov    bx,0x7c00
  3a:	b2 80                	mov    dl,0x80
  3c:	8a 74 01             	mov    dh,BYTE PTR [si+0x1]
  3f:	8b 4c 02             	mov    cx,WORD PTR [si+0x2]
  42:	cd 13                	int    0x13
  44:	ea 00 7c 00 00       	jmp    0x0:0x7c00
  49:	eb fe                	jmp    0x49

i-rinat ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.