LINUX.ORG.RU

ksh-скрипт


0

0
Проблема: надо написать ksh-скрипт, который бы проверял поддерживает ли файловая система файлы большого размера(>2Гб)... Вопрос: реально ли это и если да, то каким образом? Решения, типа создания файла большого размера для проверки оного прошу не принимать во внимание.. Всем ответившим заранее спасибо.
★
Хм, это же зависит от файловой системы, так? Тогда может просто определить, какая файловая система установлена и сделать вывод о том, поддерживает она большие файлы или нет
AxD
()
Ответ на: комментарий от AxD
Была такая идея, только есть такие файловые системы (к примеру VxFS), которые вроде как и поддерживают файлы большого размера, но только когда их создали с поддержкой больших файлов, типа: mkfs -F vxfs -o largefiles special_device size Поэтому и ищется более универсальное решение, если таковое вообще имеется. =(
X-Ray ★
() автор топика
Ответ на: комментарий от X-Ray
ну тогда непонятно, как вы собираетесь это
проверить без создания файла.

по моему, super_block->->s_maxbytes никак
нельзя получить.

но вы можете с помощью dd легко попытаться
создать sparse файл > 2Gb.
idle ★★★★★
()
Ответ на: комментарий от idle
т.е. по другому абсолютно нереально? в принципе к чему и я склоняюсь...
X-Ray ★
() автор топика
Ответ на: комментарий от idle
2idle :

> но вы можете с помощью dd легко попытаться создать sparse файл > 2Gb.

Конечно!

Но я лично сталкивался со следующими проблемами:

1. dd спокойно все писАл, но прочие утилиты (особенно tar) валяли ваньку. Конечно, _файловая_система_, однозначно, все поддерживала, но вот половиной системных вещей пользоваться было нельзя. И я не уверен, что API с даже с _FILE_OFFSET_BITS=64 будет работать правильно.

2. Обратная ситуация: dd не работал (и все остальное, естественно), но я спокойно открывал/писал/читал длинные файлы с _FILE_OFFSET_BITS=64

Короче, надо самому попробовать.

Die-Hard ★★★★★
()
Ответ на: комментарий от Die-Hard
Die-Hard:
>
> Но я лично сталкивался со следующими проблемами:
>
> dd спокойно все писАл, но прочие утилиты (особенно tar) валяли ваньку.

забавно...

> И я не уверен, что API с даже с _FILE_OFFSET_BITS=64 будет работать правильно.

я думаю, это можно легко проверить, сделать strace, и убедиться что:

        open() имеет O_LARGEFILE флаг

        llseek() а не lseek()

        truncate64() а не truncate()

вроде бы, остальное роли не играет.
idle ★★★★★
()
Ответ на: комментарий от idle
2idle :

>> dd спокойно все писАл, но прочие утилиты (особенно tar) валяли ваньку.

>забавно...

Кстати, у меня на всех СЮЗЯХ (с 7.2 по 8.1) проблема с tar'ом.

После 2GB архивируемые файлы превращаются в кашу. multi-volume не помогает. Файлы извлекаются с верным размером, но внутри -- абракадабра.

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