проблемма с CФ картами

КПК с Linux, установка Linux на iPaq и другие модели, программы
Аватара пользователя
sil
Кандидат (3 lvl)
Сообщения: 170
Зарегистрирован: Вт дек 09, 2003 17:17

Сообщение sil » Пт янв 23, 2004 18:05

mkfs.vfat пишет attempling to create a too large file system

попробовал fat 32 пишет зараза unable to allocate space for FAT image in memory
zaurus SL 760

ВадимП
Нобелевский лауреат (7 lvl)
Сообщения: 6385
Зарегистрирован: Ср июн 04, 2003 15:03

Сообщение ВадимП » Пт янв 23, 2004 18:06

Честно говоря, мне ничего не приходит в голову....
Я плохо знаю файловые системы ms-dos, но смутно припоминаю, что, вроде бы максимальный размер fat16 был 512MB.
Можно, конечно, разрезать карту на два раздела (fdisk'ом), но этот вариант мне не нравится...
Подождем, сейчас кто-нибудь придет из тех, кто с vfat работает - может чего посоветуют...

Reaper
Академик (6 lvl)
Сообщения: 1269
Зарегистрирован: Вс окт 19, 2003 13:24

Сообщение Reaper » Вс янв 25, 2004 13:19

Максимальный размер раздела на FAT16 - 2 гигабайта (2047 мегабайт, если совсем точно). То, что Вы упоминали (ограничение на 502 мегабайта или на 528 миллионов байт) - это результат суммирования ограничений FAT16 и старых версий BIOS, не поддерживавших LBA. Карточки до 2 гигабайт включительно, по отзывам использовавших людей, форматируются на FAT16 без проблем.
Последний раз редактировалось Reaper Вс янв 25, 2004 13:26, всего редактировалось 1 раз.
Zaurus C3000

Reaper
Академик (6 lvl)
Сообщения: 1269
Зарегистрирован: Вс окт 19, 2003 13:24

Сообщение Reaper » Вс янв 25, 2004 13:24

P.S. sil, мой Вам совет: форматируйте карты до 2 гигабайт под FAT16. Малость устарело, зато совместимо со всем и вся (даже в старую камеру сунуть можно :) ) и проблем с разметкой тоже быть не должно. Кстати, платформа Palm не очень ровно работает с картами большой емкости, так что на нее равняться не стОит. Отформатируйте Ваши карты в карт-ридере (так быстрее) на FAT16 и будьте счастливы. :)
Zaurus C3000

Аватара пользователя
sil
Кандидат (3 lvl)
Сообщения: 170
Зарегистрирован: Вт дек 09, 2003 17:17

Сообщение sil » Вс янв 25, 2004 15:42

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

балуясь с fdisk увидел что первые четыре байта на обеих картах забиты нулями то есть в таком виде 00 00 00 00. С чем это может быть связано? может в этом проблема.

вышеописанную проблему mkfs.vfat удалось решить только так
сначала сделал
mkfs.ext2
потом mkfs.vfat, как и mkfs.vfat - F32 делались без ошибок .

в итоге получаю в mount - vfat но карты повторяюсь, работают нормально только в заурусе. через обычный картридер одна виснет ПК, другую ПК видит, позволяет читать и писать но после повторного включения выводит бытые названия имеющихся папок....

что же делать непонятно...... где то или ошибка в софте или я пропускаю какую то важную команду в цепи...

может кто то еще раз опишет как полностью размонтировать удалив все данные и сведения о разделах или что там еёе есть а потом так сказать с нуля начать.

буду очень признателен, так как по факу неочевиден порядок действий и имеющаяся информация приводит вот к такому как у меня результату.....
zaurus SL 760

ВадимП
Нобелевский лауреат (7 lvl)
Сообщения: 6385
Зарегистрирован: Ср июн 04, 2003 15:03

Сообщение ВадимП » Вс янв 25, 2004 15:49

sil писал(а): балуясь с fdisk увидел что первые четыре байта на обеих картах забиты нулями то есть в таком виде 00 00 00 00. С чем это может быть связано? может в этом проблема.
Первые четыре байта где?
В MBR или самой таблице раделов?
В MBR - это нормально, поскольку загрузка с этой карты невозможна в принципе, то и программа-загрузчик в MBR не записана.
Сообщение о нулях в таблице разделов выдается только для информации и является признаком того, что ни одного раздела на карте нет.

Аватара пользователя
sil
Кандидат (3 lvl)
Сообщения: 170
Зарегистрирован: Вт дек 09, 2003 17:17

Сообщение sil » Вс янв 25, 2004 16:57

я не знаю как правильно это обозвать
короче fdisk /dev/hda

далле команду х
далее d (view raw data in the partition table
zaurus SL 760

ВадимП
Нобелевский лауреат (7 lvl)
Сообщения: 6385
Зарегистрирован: Ср июн 04, 2003 15:03

Сообщение ВадимП » Вс янв 25, 2004 17:07

Понятно.
Не обращать внимания: это он сообщает, что на диске вообще никакой таблицы в данный момент нет.

P.S. Это если Вы выбрали именно байты относящиеся к таблице разделов. Потому что он печатает всю MBR

ВадимП
Нобелевский лауреат (7 lvl)
Сообщения: 6385
Зарегистрирован: Ср июн 04, 2003 15:03

Сообщение ВадимП » Вс янв 25, 2004 17:23

Я позволю себе напомнить расположение таблицы разделов в MBR для тех, кто этого не знает или уже забыл:

В MBR (1-ый сектор нулевой дорожки нулевой головки) предусмотрено место для 4-х 16-байтных записей.
1ый раздел хранится в этом секторе со смещением 0x1BE. Остальные, соответственно, 0x1CE, 0x1DE и 0x1EE.
Последние два байта представляют из себя "подпись" отличающую MBR от других секторов и состоят из чередующихся единиц и нулей: 0x55AA.
Остальная часть сектора (т.е. все начало до первой записи) - это программа-загрузчик.

Запись в таблице разделов состоит из следующих полей:

1 байт - признак загружаемого раздела
1 байт - стартовая головка
2 байта - стартовый сектор(6 бит)/стартовая дорожка(10 бит)
1 байт - тип файловой системы (от 0 до 255)
1 байт - конечная головка
2 байта - конечый сектор(6 бит)/конечная дорожка(10 бит)
4 байта - смещение
4 байта - размер раздела в секторах

Поскольку номер сектора не может быть равен нулю (по неизвестной мне причине нумерация секторов начинается с 1) первые четыре байта равные 0 в таблице разделов означает, что никакого раздела тут вообще не определено.

В то же время первые четыре байта в самой MBR (в любом месте до 0x1BE) вообще ничего не значат, поскольку являются частью программы-загрузчика, а не таблицы разделов.

ВадимП
Нобелевский лауреат (7 lvl)
Сообщения: 6385
Зарегистрирован: Ср июн 04, 2003 15:03

Сообщение ВадимП » Пн янв 26, 2004 09:53

sil писал(а): буду очень признателен, так как по факу неочевиден порядок действий и имеющаяся информация приводит вот к такому как у меня результату.....
Сидел сейчас полчаса, пытался отредактировать FAQ (не тот, что в форуме, а тот, что к меня на диске - они несколько разные). Потом плюнул и все стер. Не получается у меня. Хоть бы посоветовали что - нужно что-то понятное "сделай сперва это, потом то", а с другой подходящее "на все случаи жизни".

SergL
Кандидат (3 lvl)
Сообщения: 107
Зарегистрирован: Вт сен 16, 2003 11:40

Сообщение SergL » Пн янв 26, 2004 13:44

Я тут поэкспериментировал, пожертвовав одной sd картой - записал на нее с помощью dd первый попавшийся бинарник, а потом попытался ее оживить. Вот что получилось в стиле "сделай то, а потом это":

1. (Необязательно, но желательно, на всякий случай)

dd if=/dev/zero of=/dev/mmcda count=1 bs=512

2.

fdisk /dev/mmcda

(в случае, если появится какое-либо сообщение об ошибке, вынуть карту, через несколько секунд снова вставить и повторить вызов fdisk)

n<enter> - add new partition
p<enter> - (primary partition)
1<enter> - partition number=1
<enter> - first cylinder
<enter> - last cylinder

(В результате будет создан primary раздел, занимающий всю карту, с system id = linux (0x83).
Если будет использоваться vfat и планируется использовать карту и на заурусе, и на десктопе под виндами, надо сделать следующее:)

t<enter> - change partition's system id
1<enter> - partition number
b<enter> - Win95 FAT32 (или 6<enter> - FAT16)

w<enter> - write table to disk and exit

3.

mkfs.xxx /dev/mmcda1


PS. Совершенно не понимаю, почему fdisk не проверяет имя устройства, данное в качестве аргумента. Какой смысл писать таблицу разделов в раздел (в случае fdisk /dev/mmcda1)? Только если попытаться угробить файловую систему в разделе.

Аватара пользователя
sil
Кандидат (3 lvl)
Сообщения: 170
Зарегистрирован: Вт дек 09, 2003 17:17

Сообщение sil » Пн янв 26, 2004 13:51

короче попробую с этого боку подойти к вопросу.

Что такое монтированая карта что такое немонтированная?

1. к чему приводит команда umount /dev/hda1 без каких нибудь ключей? к размонтированию карты или нет?

2. к чему приводит команда mount /dev/hda1 к монтированию карты или нет?

3. как командой fdisk можно привести к рабочему состоянию карту yfghxm убитую карту?

с какими ключами правильно? Например очереджность "o", "n" (вот тут то же не ясно что нужно делать..., ну допустим создадим толтько primary в первой таблице), "w" - верна?
Короче - какое нужно разделение на таблицы?
zaurus SL 760

ВадимП
Нобелевский лауреат (7 lvl)
Сообщения: 6385
Зарегистрирован: Ср июн 04, 2003 15:03

Сообщение ВадимП » Пн янв 26, 2004 14:11

На всякий случай немножко азов для тех, кто никогда раньше не работал с Unix:
Концепция монтирования в Unix очень проста: в MS-DOS было какое-то количество устройств. Каждое устройство обозначалось буквой. Эта схема использовалась и до MS-DOS во многих операционных системах (только имена устройств там состояли больше, чем из одной буквы).
Когда подключается новое устройство, оно становится доступно по имени устройства.
В Unix используется другая схема - единая древовидная структура. Каждое устройство (или раздел, который тоже можно рассматривать как устройство) содержит в себе собственную древовидную структуру каталогов. Для начала берется один из этих разделов и объявляется корневым. Корень этого раздела становится корнем файловой системы. Затем в этом разделе создаются директории, которые будут являться точками монтирования других файловых систем.

При монтировании древовидная файловая система какого-то устройства "прививается" к корневой в точке монтирования. Точки монтирования могут находиться в любой файловой системе, то есть можно "прививать" файловые системы к уже "привитому" стволу (/proc/usb на /proc).
Если в директории, которая стала точкой монтирования были какие-то файлы то они становятся недоступны. На их месте видны файлы из корня привитой файловой системы. Поэтому в тачестве точек монтировния как правило используют пустые директории.

ВадимП
Нобелевский лауреат (7 lvl)
Сообщения: 6385
Зарегистрирован: Ср июн 04, 2003 15:03

Сообщение ВадимП » Пн янв 26, 2004 14:26

Теперь отвечаю на Ваши вопросы: Монтированная карта - это карта (точнее раздел, обычно он на карте один) файловая система которой "привита" к основному дереву.
"демонтированая" карта - это карта, файловая система которой удалена из дерева директорий. Соответственно ни один файл на ней через файловую систему недоступен. Но сами блоки физически могут быть доступны, например, для программы dd.

cf-карте соответствует устройство /dev/hda
sd-карте - /dev/mmcda

hda - "h"ard "d"isk "a" (т.е. 1-ый) - это стандартное в linux обозначение для master устройства на primary ide-интерфейсе.
mmcda - mmc disk "a"

/dev/hda1 - обозначение для 1-го раздела на устройстве /dev/hda.

Когда Вы даете команду "mount /dev/hda1" программа mount открывает и просматривает файл конфигурации /etc/fbtab и ищет в нем строчку содержащую /dev/hda1. когда она ее находит, она подставляет из этой строчки пропущеные параметры и любая из команд "mount /dev/hda1" или "mount /mnt/cf" преобразуется в полную форму: mount -t auto /dev/hda1 /mnt/cf".
Т.е. "монтировать устройство /dev/hda1 на директорию /mnt/cf автоматически определяя тип файловой системы на этом устройстве".

Вы обращали внимание, что если заглянуть в немонтированную директорию /mnt/cf то можно увидеть там "Not Available"? Это не какое-то специальное сообщение которое zaurus выдает мистическим образом определяя, что Вы заглядываете в директорию на которую ничего не монтировано. Все гораздо проще - в директории /mnt/cf действительно существует файл с именем "Not Available". Который, как объяснялось выше, становится недоступен если на эту директорию что-то монтировано.
Последний раз редактировалось ВадимП Пн янв 26, 2004 14:44, всего редактировалось 1 раз.

ВадимП
Нобелевский лауреат (7 lvl)
Сообщения: 6385
Зарегистрирован: Ср июн 04, 2003 15:03

Сообщение ВадимП » Пн янв 26, 2004 14:43

Итак, mount /dev/hda1 монтирует первый раздел cf карты на /mnt/cf, umount /dev/hda1 (или umount /mnt/cf, что то же самое) демонтирует эту карту и файлы на ней становятся недоступны.
Обычно операции записи/чтения файловой системы кэшируются. То есть, при записи информация сперва сбрасывается в дисковые буфера в оперативной памяти и только потом потихоньку переносится на диск (диск, дискета, флеш - один хрен). Прочитанная с диска информация не только поступает затребовавшему ее приложению, но и сохраняется в кэше. Размеров буферов и кэша можно просмотреть как по команде "free", так и воспользовавшись утилитой "информация о системе".
Когда Вы даете команду umount она сначала выполняет "sync" - сброс всех буферов.
Поэтому запись на флеш или дискету может завершиться вроде бы за считаные секунды, а демонтирование (сразу после записи, пока информация еще в буферах) этих носителей занять очень долгое время.

Закрыто

Вернуться в «КПК и смартфоны на Linux: Zaurus, планшеты Nokia, прочее»