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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.