Сайт | Скачать | Видео | Wiki

Автор Тема: guess_fs  (Прочитано 4522 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн bit777

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1037
  • Репутация: +127/-0
guess_fs
« : 21 Октябрь 2010, 14:46:45 »
У меня просьба к тем к то знает СИ
Во вложении находятся исходниники двух файла guess_fstype
При использовании более нового файла Puppy видит разделы EXT4. При использовании более старого файла разделы EXT4 нельзя просмотреть.
 Но есть одно но. На моей мобилке имеется встроенная память 26мб и картчка на 1гб. Так вот более новый файл guess_fstype не видит встроенную память, в отличии от старого.
 Помогите разобраться в чем дело.

Оффлайн Lexeii

  • Почетный участник
  • Постоялец
  • *
  • Сообщений: 147
  • Репутация: +24/-0
    • блог Lexeii
Re: guess_fs
« Ответ #1 : 21 Октябрь 2010, 16:49:04 »
Дима Игорь, прости, в составе какой программы используется эта "штучка"?

Она имеет одну "точку входа" - скрипт mount.sh, который использует стандартный системный mount. В качестве параметра -t передается "угаданный" тип файловой системы. Нельзя ли обойтись без этой поделки? Разве стандартный mount не может сам прочитать тип файловой системы (например, из таблицы разделов). Если ядро поддерживает ФС, то вроде как она должна монтироваться на автомате. ???

Память мобилки можно попробовать смонтировать вручную, без опции -t и с ней (особенно, с разными типами FAT).
« Последнее редактирование: 22 Октябрь 2010, 23:14:55 от Lexeii »
Linux is user friendly... It's just picky about who it  becomes friends with.

Оффлайн bit777

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1037
  • Репутация: +127/-0
Re: guess_fs
« Ответ #2 : 21 Октябрь 2010, 20:06:48 »
Дима, в составе какой программы используется эта "штучка"?
Например, Pmount. Кроме того используется для отображения дисков на рабочем столе.
« Последнее редактирование: 21 Октябрь 2010, 20:08:35 от bit777 »

Оффлайн bit777

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1037
  • Репутация: +127/-0
Re: guess_fs
« Ответ #3 : 21 Октябрь 2010, 20:48:56 »
Попробовал сам кое что исправить. Компиляция прошла с ошибками, но полученный файл видит и ext4 и мою мобилку.

Оффлайн Lexeii

  • Почетный участник
  • Постоялец
  • *
  • Сообщений: 147
  • Репутация: +24/-0
    • блог Lexeii
Re: guess_fs
« Ответ #4 : 21 Октябрь 2010, 22:30:53 »
К сожалению, в своем PuppyRus Jeans я не нашел ни mount.sh, ни guess_fstype. Не нашел я их упоминание и в /usr/sbin/pmount
Хотел поэкспериментировать: удалить guess_fstype и привести mount.sh к простейшему виду:
Код
#!/bin/bash

echo "mount $1 /mnt/disk"

Пришлось ограничиться только экспериментами в терминале:
Код
mount /dev/dvd /mnt/dvd
cd /mnt/dvd
ls -l

mount /dev/hda6 /mnt/hda6
cd /mnt/hda6
ls -l

и т.д.

В случае с dvd ругался, что ФС только для чтения. В остальных случаях молчал как партизан и молча делал свое дело. К сожалению, все разделы у меня в ext3, так что это не показатель.
Linux is user friendly... It's just picky about who it  becomes friends with.

Оффлайн bit777

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1037
  • Репутация: +127/-0
Re: guess_fs
« Ответ #5 : 21 Октябрь 2010, 23:59:18 »
К сожалению, в своем PuppyRus Jeans я не нашел ни mount.sh, ни guess_fstype.
/sbin/guess_fstype.

Не нашел я их упоминание и в /usr/sbin/pmount
А там он может быть и не будет он упоминаться, но упоминается probepart и(или) probedisk которые, насколько я помню, используют guess_fstype.

Оффлайн Фарватер

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 552
  • Репутация: +41/-0
Re: guess_fs
« Ответ #6 : 05 Январь 2011, 22:46:57 »
Проблема-то в итоге решена?

В позднем файле:

Блок, распознающий ext4 (строка 532):
Код
#define EXT3_FEATURE_INCOMPAT_EXTENTS        0x0040 /* actually ext4 */
assemble4le(sb.e2s.s_feature_incompat) );
/* Distinguish between ext4 and ext3 */
if (assemble4le(sb.e2s.s_feature_incompat) &
    EXT3_FEATURE_INCOMPAT_EXTENTS)
    type = "ext4";    /* "ext3 / ext4 test" */
}

Блок, видимо, ошибочно неправильно определяющий файловую систему мобильника (строка 166):
Код
if (b.fats != 2)
(вместо if (b.fats == 0 || b.fats > 4 ) в раннем файле)

Решение - привести строку 166 в новом файле к раннему виду. (к сожалению протестировать результат  не смогу)

Оффлайн bit777

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1037
  • Репутация: +127/-0
Re: guess_fs
« Ответ #7 : 05 Январь 2011, 22:56:00 »
Спасибо. Сейчас протестировать не могу. Завтра напишу о результатах.

Оффлайн bit777

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1037
  • Репутация: +127/-0
Re: guess_fs
« Ответ #8 : 07 Январь 2011, 11:24:04 »
Не работает. Пока использую свой
Попробовал сам кое что исправить. Компиляция прошла с ошибками, но полученный файл видит и ext4 и мою мобилку.