LINUX.ORG.RU

Не получается загрузить MHDD с usb-флешки, писал образ через dd

 mhdd dd


1

1

Здравствуйте. Значит, есть у меня флешка и на неё нужно записать образ MHDD. Решил пойти простым путем; dd if=~/mhdd32ver4.6.iso of=/dev/sdb нормально записывает образ диска, без ошибок. Перезагружаюсь, выбираю загрузку с флешки, на секунду появляется Boot from CD/DVD: и появляется граб.

Вот что дает hexdump:

rustam@debianpc:~/cdrtools-3.00$ sudo dd if=/dev/sdb | hexdump -C | head -n 30
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00008000  01 43 44 30 30 31 01 00  20 20 20 20 20 20 20 20  |.CD001..        |
00008010  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00008020  20 20 20 20 20 20 20 20  4d 48 44 44 34 36 20 20  |        MHDD46  |
00008030  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00008040  20 20 20 20 20 20 20 20  00 00 00 00 00 00 00 00  |        ........|
00008050  83 03 00 00 00 00 03 83  00 00 00 00 00 00 00 00  |................|
00008060  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00008070  00 00 00 00 00 00 00 00  01 00 00 01 01 00 00 01  |................|
00008080  00 08 08 00 0a 00 00 00  00 00 00 0a 15 00 00 00  |................|
00008090  00 00 00 00 00 00 00 16  00 00 00 00 22 00 14 00  |............"...|
000080a0  00 00 00 00 00 14 00 08  00 00 00 00 08 00 69 08  |..............i.|
000080b0  10 0b 06 00 f0 02 00 00  01 00 00 01 01 00 20 20  |..............  |
000080c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00008230  20 20 20 20 20 20 20 20  20 20 20 20 20 20 4e 45  |              NE|
00008240  52 4f 20 42 55 52 4e 49  4e 47 20 52 4f 4d 20 20  |RO BURNING ROM  |
00008250  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00008320  20 20 20 20 20 20 20 20  20 20 20 20 20 32 30 30  |             200|
00008330  35 30 38 31 36 31 31 30  36 30 30 30 30 f0 32 30  |5081611060000.20|
00008340  30 35 30 38 31 36 31 31  30 36 30 30 30 30 f0 30  |05081611060000.0|
00008350  30 30 30 30 30 30 30 30  30 30 30 30 30 30 30 00  |000000000000000.|
00008360  30 30 30 30 30 30 30 30  30 30 30 30 30 30 30 30  |0000000000000000|
00008370  00 01 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00008380  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00008800  00 43 44 30 30 31 01 45  4c 20 54 4f 52 49 54 4f  |.CD001.EL TORITO|
00008810  20 53 50 45 43 49 46 49  43 41 54 49 4f 4e 00 00  | SPECIFICATION..|

cdrecord:

rustam@debianpc:~/cdrtools-3.00$ sudo cdrecord/OBJ/i686-linux-cc/cdrecord ~/mhdd32ver4.6.iso /dev/sdb
cdrecord/OBJ/i686-linux-cc/cdrecord: No write mode specified.
cdrecord/OBJ/i686-linux-cc/cdrecord: Assuming -sao mode.
cdrecord/OBJ/i686-linux-cc/cdrecord: If your drive does not accept -sao, try -tao.
cdrecord/OBJ/i686-linux-cc/cdrecord: Future versions of cdrecord may have different drive dependent defaults.
Cdrecord-ProDVD-ProBD-Clone 3.00 (i686-pc-linux-gnu) Copyright (C) 1995-2010 J�rg Schilling
Linux sg driver version: 3.5.34
Using libscg version 'schily-0.9'.
No target specified, trying to find one...
Using dev=4,0,0.
Device type    : Removable CD-ROM
Version        : 5
Response Format: 2
Capabilities   : 
Vendor_info    : 'Optiarc '
Identifikation : 'DVD RW AD-7173S '
Revision       : '1-02'
Device seems to be: Generic mmc2 DVD-R/DVD-RW/DVD-RAM.
Using generic SCSI-3/mmc   CD-R/CD-RW driver (mmc_cdr).
Driver flags   : MMC-3 SWABAUDIO BURNFREE 
Supported modes: TAO PACKET SAO SAO/R96R RAW/R96R
cdrecord/OBJ/i686-linux-cc/cdrecord: Warning: Cannot read drive buffer.
cdrecord/OBJ/i686-linux-cc/cdrecord: Warning: The DMA speed test has been skipped.
cdrecord/OBJ/i686-linux-cc/cdrecord: Track 2 has unknown length.
cdrecord/OBJ/i686-linux-cc/cdrecord: Use tsize= option in SAO mode to specify track size.

Вот так вот не выходит. Есть идеи?

Запуск с CD/DVD и запуск с компакт-диска - очень разные вещи. В случае isolinux образ можно специально отредактировать так, чтобы он одновременно содержал в себе MBR (для флешки) и ElTorito no-emulation Boot Record (для компакт-диска).

В Вашем случае isolinux не используется. Вместо него в загрузочном секторе диска записан образ дискеты, который эмулирует BIOS.]

Решение: запишите на флешку сразу образ дискеты (*.ima, *.img).

AITap ★★★★★
()
Ответ на: комментарий от AITap

Пытаюсь найти образ floppy, не выходит... Читал, что можно заблокировать запись на определенные сектора диска через fsck -l <файл с бэдблоками> /dev/sd*. Обязательно ли создавать файловую систему для этого?
Спасибо за ответ.

ms-dos32
() автор топика
Ответ на: комментарий от ms-dos32

Читал, что можно заблокировать запись на определенные сектора диска через fsck

Но только при записи на файловую систему (это же fsck). При записи напрямую никакой fsck, естественно, не поможет.

Обязательно ли создавать файловую систему для этого?

Нет. Более того, не нужно. И это вообще не спасёт.

Пытаюсь найти образ floppy, не выходит...

Варианты:
1) Извлечь из ISO-образа программой для работы с ElTorito Boot Sector (возможно, geteltorito поможет).
2) Расковырять Last version of MHDD, self-extracting floppy image
3) Вывалить на флешку любой DOS (например, Balder - сборка FreeDOS), и в полученную файловую систему вывалить архив Last version of MHDD, just-an-archive (MS-DOS executables only, no SCSI support)
(Файлы по ссылкам можно взять с http://hddguru.com/software/2005.10.02-MHDD/)

AITap ★★★★★
()
Ответ на: комментарий от GArik

Появилась тут такая проблема: можно нормально загрузиться с флешки через qemu, но если перезагрузить комп и выбрать в качестве загрузочного диска USB-HDD, то isolinux выплевывает no DEFAULT or UI configuration directories detected. Я и конфиги переименовывал, и ФС менял, и даже под виндой ставил этот systemrescuecd - всегда один результат. Такое ощущение, будто syslinux.cfg вообще отсутствует

ms-dos32
() автор топика
Ответ на: комментарий от ms-dos32

В общем рассказываю как сделать труе-флешку (то есть так, как у меня).

Берёшь флешку, в любом менеджере разделов делаешь на ней разделы такого вида:

sdc3            Основной  ext4             [SysRescCD]       524,29
sdc2            Основной  ext4             [Tails]           734,01
sdc1            Основной  vfat             [GArik]         14971,57
sdc3 у меня тут как раз для sysresccd, на него хватит где-нибудь 500Мб. Основной раздел, куда будешь файлы скидывать, обязательно должен быть первым (у меня здесь это sdc1), иначе не откроется в винде. Когда разбил флешку, форматируешь разделы: основной в fat, а под систему лучше в ext4 без журнала:
# mkdosfs -n GArik /dev/sdc1
# mke2fs -L Tails -T floppy -m 0 -t ext4 -O ^has_journal /dev/sdc2 
# mke2fs -L SysRescCD -T floppy -m 0 -t ext4 -O ^has_journal /dev/sdc3
Потом монтируешь образ с sysresccd и копируешь содержимое на свежий раздел:
# mount /dev/sdc3 /media/SysRescCD/
# mount -o loop SysRescCD/systemrescuecd-x86-2.5.0.iso /media/hd/
# cp -a /media/hd/* /media/SysRescCD/
Затем ставишь grub на флешку (лучше хотя бы версии 1.99):
# grub-install --no-floppy --root-directory=/media/SysRescCD/ /dev/sdc
После установки grub'а у тебя появится новый каталог /media/SysRescCD/boot/grub/. Туда кладёшь конфиг такого вида:
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default=«0»
if [ ${prev_saved_entry} ]; then
  set saved_entry=${prev_saved_entry}
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z ${boot_once} ]; then
    saved_entry=${chosen}
    save_env saved_entry
  fi
}
insmod ext2
set root='(hd0,3)'
set menu_color_normal=white/black
set menu_color_highlight=blue/light-gray
set timeout=5

submenu «SystemRescueCd» {
	menuentry «SystemRescueCd x86» {
		linux  /isolinux/rescuecd scandelay=1 setkmap=ru
		initrd /isolinux/initram.igz
	}

	menuentry «SystemRescueCd x86_64» {
		linux  /isolinux/rescue64 scandelay=1 setkmap=ru
		initrd /isolinux/initram.igz
	}

	menuentry «SystemRescueCd alt x86» {
		linux  /isolinux/altker32 scandelay=1 setkmap=ru
		initrd /isolinux/initram.igz
	}

	menuentry «SystemRescueCd alt x86_64» {
		linux  /isolinux/altker64 scandelay=1 setkmap=ru
		initrd /isolinux/initram.igz
	}
}

menuentry «Tails» {
	set root='(hd0,2)'
	linux	/live/vmlinuz root=/dev/sda2 boot=live config noswap live-media=removable nopersistent noprompt keyboard-layouts=us,ru
	initrd	/live/initrd.img
}

menuentry «FreeDOS» {
	linux16  /isolinux/memdisk floppy
	initrd16 /bootdisk/freedos.img
}

menuentry «MemTest+» {
	linux16  /bootdisk/memtestp
}

menuentry «MHDD (HDD diagnostic tool)» {
	linux16  /isolinux/memdisk floppy
	initrd16 /bootdisk/mhdd.img
}

menuentry «HDT (Hardware Detection Tool)» {
	linux16  /isolinux/memdisk floppy
	initrd16 /bootdisk/hdt.img
}

menuentry «Boot from HDD» {
	exit
}

menuentry «Reboot» {
	reboot
}

menuentry «Halt» {
	halt
}

Это всё. Энжой.

GArik ★★★
()
Ответ на: комментарий от GArik

Ага, спасибо, помогло. Если бы почитал ман по грабу, то сделал бы и раньше. Может, в вики добавить инструкцию?

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