|
Разбор msdos партишна linuxом, есть flash с partition->boot_ind == 0x6F вместо 0x80 ! |
|
|
|
Jan 16 2007, 11:18
|
Участник

Группа: Новичок
Сообщений: 46
Регистрация: 20-01-05
Пользователь №: 2 090

|
Один из имеющихся четырёх флэшек (usb) не мог определиться в linuxе(2.6) - unknown partition. Полез в исходники - в сравнении с другими usb-дисками (жёсткими в том числе) , оказалось что не проходит проверку на старший бит в partition->boot_ind http://kernel.org/pub/linux/kernel/people/...-checking.patchтак как там у него "сидит" не 0x80 а 0x20! Тем временем Windowsы работают с этой флэшкой(128M) корректно. Там же форматнул её FATом. Значение boot_ind - которое теперь читает linux - стало 0x6F, а у второй партишн - 0x69 (у "нормальных" флэшек все три следующие по нулям). Форматнул её FAT32ым. Всё то же. Что делать?
|
|
|
|
|
 |
Ответов
(1 - 9)
|
Jan 17 2007, 09:38
|

Гуру
     
Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904

|
Если флешка была отформатирована в Windows XP, то таблицы разделов на ней нет (Windows XP ее не создает) и загрузочный сектор FAT размещается в первом секторе носителя. Т.е. там, где должен быть MBR. Такая особенность. Поэтому, как Вам правильно сказали, монтировать нужно не раздел (sda1, sda2, ... , sdaN), а сам носитель - /dev/sda.
--------------------
BR, Makc В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
|
Jan 17 2007, 13:24
|
Участник

Группа: Новичок
Сообщений: 46
Регистрация: 20-01-05
Пользователь №: 2 090

|
Да, но что если маунтить нечего? Вот лог подключения usb-винта, который впоследствии успешно маунтится: Код / $ usb 1-1: USB disconnect, address 6 usb 1-1: new high speed USB device using ST40-ehci and address 7 usb 1-1: Product: Mass Storage Device usb 1-1: Manufacturer: Prolific Technology Inc. usb 1-1: configuration #1 chosen from 1 choice scsi6 : SCSI emulation for USB Mass Storage devices Vendor: TOSHIBA Model: MK8025GAS Rev: KA02 Type: Direct-Access ANSI SCSI revision: 00 SCSI device sda: 156301488 512-byte hdwr sectors (80026 MB) sda: Write Protect is off sda: assuming drive cache: write through SCSI device sda: 156301488 512-byte hdwr sectors (80026 MB) sda: Write Protect is off sda: assuming drive cache: write through sda:<7>usb-storage: queuecommand called sda1 sd 6:0:0:0: Attached scsi disk sda А вот лог подключения usb-флэшки: Код / $ usb 1-1: USB disconnect, address 2 usb 1-1: new high speed USB device using ST40-ehci and address 3 usb 1-1: Product: USB DISK usb 1-1: Manufacturer: SMI usb 1-1: SerialNumber: AA04012700553 usb 1-1: configuration #1 chosen from 1 choice scsi2 : SCSI emulation for USB Mass Storage devices Vendor: SMI Model: USB DISK Rev: 3000 Type: Direct-Access ANSI SCSI revision: 00 SCSI device sda: 252928 512-byte hdwr sectors (129 MB) sda: Write Protect is off sda: assuming drive cache: write through SCSI device sda: 252928 512-byte hdwr sectors (129 MB) sda: Write Protect is off sda: assuming drive cache: write through sda:<7>usb-storage: queuecommand called unknown partition table sd 2:0:0:0: Attached scsi removable disk sda В случае с винтом видно что встал он под sda1, а здесь - unknown partition. Как я понимаю - и маунтить то нечего! А почему партишн анноун - потому как мусор всякий в поле partition->boot_ind. Посмотрите ещё раз линк из первого поста - этот патч на детекцию мсдос партиции на данный день официально "имплементирован" (как покажут исходники Ваших ядер). У винта(и у других флэшек) там в первой структуре 0х80 и по нулям в трёх следующих: если поле отлично от нуля и старший бит стоит - быть здесь мсдос партиции а если не стоИт то это не мсдос -> подбираем тип партиции дальше (и в конечном счёте обламываемся со всеми) Из комментариев к исходникам видно что старший бит означает что партишн активный. Так вот вопрос что это за boot_ind, нафик его проверяют и где вообще про него почитать? В WXP флэшка работает корректно.
|
|
|
|
|
Jan 17 2007, 13:52
|
Участник

Группа: Новичок
Сообщений: 46
Регистрация: 20-01-05
Пользователь №: 2 090

|
Цитата Еще раз повторяю, на флэшках, созданных (отформатированных) под Windows XP таблицы разделов НЕТ . Вы уверены? Вот другая флэшка - только что форматнул в WXP. Как в FAT так и FAT32 - пробовал оба. Код / $ usb 1-1: USB disconnect, address 5 usb 1-1: new high speed USB device using ST40-ehci and address 6 usb 1-1: Product: Flash Disk usb 1-1: Manufacturer: USB 2.0 usb 1-1: SerialNumber: 91974500ab14b5 usb 1-1: configuration #1 chosen from 1 choice scsi5 : SCSI emulation for USB Mass Storage devices Vendor: USB 2.0 Model: Flash Disk Rev: 0.00 Type: Direct-Access ANSI SCSI revision: 02 SCSI device sda: 2015231 512-byte hdwr sectors (1032 MB) sda: Write Protect is off sda: assuming drive cache: write through SCSI device sda: 2015231 512-byte hdwr sectors (1032 MB) sda: Write Protect is off sda: assuming drive cache: write through sda:<7>usb-storage: queuecommand called sda1 sd 5:0:0:0: Attached scsi removable disk sda
|
|
|
|
|
Jan 17 2007, 14:07
|

Гуру
     
Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904

|
Цитата(vvj @ Jan 17 2007, 13:52)  Цитата Еще раз повторяю, на флэшках, созданных (отформатированных) под Windows XP таблицы разделов НЕТ . Вы уверены? Вот другая флэшка - только что форматнул в WXP. Как в FAT так и FAT32 - пробовал оба. Уверен и проверял на Windows XP Corporate SP2 Rus. Но при этом отсутствие таблицы разделов на флешках, отформатированных в XP, является фактом эмпирическим. Причем это не только мое наблюдение, т.к. я встречал такие слова: Цитата Сейчас флэшки по состоянию "из магазина" обычно имеют таблицу разделов с одним разделом на весь объем. Стандартный форматер Винды не будет создавать разделы (я его заставить не смог, хотя флэшка была девственно занулена). Он сделает раздел с самого начала флэшки (т. е. вместо MBR будет сразу загрузочный сектор раздела). Если Вам хочется таблицу разделов с одним разделом, это несложно сделать в WinHex, там есть шаблон MBR. Чтобы Винда нормально работала с разделом, CHS-координаты можно не задавать. Необходимо задать смещение начала раздела (в секторах), размер раздела (в секторах), сигнатуру 55 AA (в двух последних байтах нулевого сектора). Это так, если поиграть захочется..
--------------------
BR, Makc В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
|
Jan 17 2007, 15:37
|
Участник

Группа: Новичок
Сообщений: 46
Регистрация: 20-01-05
Пользователь №: 2 090

|
Спасибо - замаунтил! Под sda. Но точно могу сказать что тот флэш который с партишном (sda1) как был с ней - так и отался. Несмотря на форматирование в WXPSP2.
|
|
|
|
|
Jan 17 2007, 15:44
|

Гуру
     
Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904

|
Цитата(vvj @ Jan 17 2007, 15:37)  Спасибо - замаунтил! Под sda. Но точно могу сказать что тот флэш который с партишном (sda1) как был с ней - так и отался. Несмотря на форматирование в WXPSP2. Я уже сейчас точно не помню, как нужно форматировать, чтобы потерять таблицу разделов. А попробовать сейчас не на чем - все флешки мне нужны.  Возможно дело в опции "быстрого" форматирования, при установке которой таблица разделов не стирается. Но я точно помню последний факт форматирования, когда на битой флешке (у нее в первых 16 мегабайтах было множество битых секторов и для их обхождения была создана соответсвующая таблица разделов), после форматирования в Windows XP, пропала таблица разделов и, соответственно, пропала возможность нормального использования этой флешки. Пришлось переразбивать ее снова из-под Linux'a.
--------------------
BR, Makc В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|