LINUX.ORG.RU

Изготовление мини-образа с FAT.


0

1

Казалось-бы нет ничего проще: «sudo mkfs -t vfat ./img.fat», но... Порой туплю хуже некуда!

Файл должен быть не очень большим и отформатированым в FAT как на обычной флэшке. Для начала создал по такой схеме диск на 6 МБ:

sudo dd if=/dev/zero of=img.fat bs=$((1024*1024)) count=6

На что при форматировании получил жалобу: типа, мало места.

Увеличил до 10-ти - форматирование прошло без ошибок. Монтирую:

sudo mount -o loop ./img.fat ./img

Готово. Пробую создать там что-нибудь и получаю облом: нет прав. Исправление прав доступа не помогло. В чём проблема и как можно создать «кусочек флэшки» с фатом размером в 3-6 мегабайт?

★★

У команды mount помимо опции loop есть еще много полезных опций. В частности отвечающих за права

man mount

anonymous
()

А еще есть FAT12, FAT16 и FAT32. А еще есть разный размер кластера. А еще есть копии FAT. И все это влияет на размер самой ФС.

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

Дык понимаю я это. Просто знаний категорически не хватает. Мне тяжело даётся понимание текста мануалов (особенно иноязычных) и вместе с этим я гораздо проще обучаюсь на примерах. Это, конечно, создаёт пробелы в знаниях... Но мне реально проще изучить что-либо на примере с объяснением. Я больше практик( Вот уже два дня мучаюсь - не получается даже с чтением мануалов.

Образ создаю для OS Android в качестве замены SD-карты. Там не очень комповый бизибокс, у которого не все параметры присущие большому брату поддерживаются. Зачем длеаю этот изврат объяснять не хочу, просто такие ситуации, когда это нужно, бывают. Монтировать буду sh скриптом.

zzdnx ★★
() автор топика
Ответ на: комментарий от Kroz
mcopy -i /tmp/img.fat /etc/issue.net ::/
sudo mount -t msdos -o loop /tmp/img.fat /mnt
ls -la /mnt
drwxr-xr-x  2 root root 7168 янв.   1  1970 .
drwxr-xr-x 26 root root 4096 окт.   4 19:21 ..
-rwxr-xr-x  1 root root   19 окт.  18 18:49 issue.net

mount
...
/tmp/img.fat on /mnt type msdos (rw)

cd /mnt
mkdir 1
mkdir: невозможно создать каталог «1»: Отказано в доступе

sudo mkdir 1 && ls -la
итого 12
drwxr-xr-x  3 root root 7168 окт.  18 18:52 .
drwxr-xr-x 26 root root 4096 окт.   4 19:21 ..
drwxr-xr-x  2 root root  512 окт.  18 18:52 1
-rwxr-xr-x  1 root root   19 окт.  18 18:49 issue.net

Ну вот что я не так делаю-то? Почему доступ на запись в FAT только для root? о_О

zzdnx ★★
() автор топика
Последнее исправление: zzdnx (всего исправлений: 1)
Ответ на: комментарий от zzdnx
#!/bin/bash -x

G_ID=$(id -g)
U_ID=$(id -u)

mkdir img
dd if=/dev/zero of=img.fat bs=1024 count=35 2>/dev/null
mkfs -t vfat ./img.fat

sudo mount -o gid=$G_ID,uid=$U_ID,loop ./img.fat ./img
mount | grep img

pushd img >/dev/null
ls
mkdir qwe
touch asd
ls
popd >/dev/null

sudo umount ./img
anonymous
()
Ответ на: комментарий от anonymous

Так работает. Но на андройде это не проходит. Раздел монтируется из терминала, из терминала виден и доступен, но из приложений его видят дай бог пара... Остальные не видят, глючат или падают. Есть такая команда как sdcard, но у неё нету хэлпа.

Думаю, тему можно закрывать, так как к новой проблеме она отношения не имеет.

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

конкретно для той версии ядра в исходнике есть следующая вещь:

static int usage()
{
    ERROR("usage: sdcard [-t<threads>] <source_path> <dest_path> <uid> <gid>\n"
            "    -t<threads>: specify number of threads to use, default -t%d\n"
            "\n", DEFAULT_NUM_THREADS);
    return 1;
}
в нужной тебе версии, не очень старой, возможно найти подобную инструкцию

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

У меня дроид 2.3.7, а эти инструкции мне знакомы по одной статье как инструкции для андройда с многопользовательстким режимом (4.х.х.х). Там было сказано, что новая версия sdcard поддерживает не 3, а 4 пераметра, прямо как в Вашей цитате: <source_path> <dest_path> <uid> <gid>. У меня sdcard поддерживает 3 параметра (определил оытным путём): <dest_path> <uid> <gid>

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