[Comm] bad block на загрузочном секторе usb-драйва
Konstantin S. Uvarin
=?iso-8859-1?q?khedin_=CE=C1_mail=2Eru?=
Сб Мар 22 08:57:49 MSK 2008
On Friday 21 March 2008 22:48:35 Andrey Kutuzov wrote:
> Konstantin S. Uvarin пишет:
> > Можно еще попробовать что-то типа mount /dev/sdX /mnt/smth -o
> > loop,ro,offset=многобайт -- так, чтобы offset пришелся на начало
> > раздела
>
> Хм, а как определить этот самый offset? 512 байт - это MBR, а дальше ещё
> что-то есть? Пробовал монтировать с offset 512 и 32256 - бесполезно.
Я проверял вот какой командой:
# for i in `seq 1 1000`; do echo -n "$i:"; dd if=/dev/sdc bs=512 count=2
skip=$i | file -; done 2>/dev/null | grep -v ': data'
Что она делает: читает 2 сектора, начиная с разных оффсетов, определяет тип
прочитанного файла, и если это не "данные" -- печатает количество секторов,
на которое был сдвиг, и тип файла.
Соответственно в выводе будет и начало первой файловой системы:
63:/dev/stdin: x86 boot sector, Microsoft Windows 98 Bootloader
IO.SYS+MSDOS.SYS, code offset 0x3c, OEM-ID "MSWIN4.1", sectors/cluster 32,
root entries 512, Media descriptor 0xf8, sectors/FAT 256, heads 255, hidden
sectors 63, sectors 2047937 (volumes > 32 MB) , serial number 0x4c040460,
label: "USB DISK ", FAT (16 bit)
63*512 = 32256 как раз
и это число получалось на нескольких дисках...
--
Konstantin S. Uvarin
"Пароходом выехать не могу думаю баржей"
"Думайте головой выезжайте чем хотите"
Подробная информация о списке рассылки community