The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"А что tcopy не копирует файлы более 2 Gb ?"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Открытые системы на сервере (Solaris привязка / Solaris)
Изначальное сообщение [ Отслеживать ]

"А что tcopy не копирует файлы более 2 Gb ?"  +/
Сообщение от Im27th (ok) on 21-Янв-10, 18:13 
В общем сейчас начальник озадачил, что не смоглося у него вчера скопировать с ленты файл размером гигабайт в 10. Говорит, что доходит до 2 Gb и всё. Причём последний блок, запись которого превысит переписываемый файл в 2 Gb, разрывает, и дописывает к файлу кусок блока до 2 Gb, а оставшийся кусок выкидывает.

Сам я не пробовал - завтра попробую попробовать - но в начальнику верю.
Пошарился в интернете сейчас - ничего интересного не нашёл.
И вообще не помню, чтобы у меня такие проблемы возникали, может просто не встречались большие файлы?

В общем озадачил он меня поискать может какая-то новая версия tcopy есть, либо достать исходник его, он отдаст программистам - может они найдут куда там возможность копирования lagrefile дописать.

Я не знаю на чём он пробовал, либо RedHat, либо Solaris, а я завтра на Solaris 8 буду пробовать. А сейчас просто теоретичеcки хочу поинтересоваться, чтобы завтра подготовленным быть, если реально такая проблема существует.

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "А что tcopy не копирует файлы более 2 Gb ?"  +/
Сообщение от lavr email on 21-Янв-10, 20:55 
>[оверквотинг удален]
>не встречались большие файлы?
>
>В общем озадачил он меня поискать может какая-то новая версия tcopy есть,
>либо достать исходник его, он отдаст программистам - может они найдут
>куда там возможность копирования lagrefile дописать.
>
>Я не знаю на чём он пробовал, либо RedHat, либо Solaris, а
>я завтра на Solaris 8 буду пробовать. А сейчас просто теоретичеcки
>хочу поинтересоваться, чтобы завтра подготовленным быть, если реально такая проблема существует.
>

http://src.opensolaris.org/source/xref/netvirt/usr/src/cmd/t...

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "А что tcopy не копирует файлы более 2 Gb ?"  +/
Сообщение от Im27th (ok) on 26-Янв-10, 11:01 
В общем, поскольку не программирую уже больше 10 лет, трудно понять что именно надобно сотворить.
В исходнике tcopy
http://src.opensolaris.org/source/xref/netvirt/usr/src/cmd/t...
нет тех функций, к примеру D_FILE_OFFSET_BITS, которые требуют отредактировать в этих документах
http://www.gnu.org/software/coreutils/faq/coreutils-faq.html...
http://www.sun.com/software/whitepapers/wp-largefiles/largef...

И вообще не смотря на то, что проблема типа стара, я не нашёл ни в одном форуме или блоге, чтобы хоть кто-то описывал, что решил эту проблему. Я думаю за эти годы уже саму tcopy можно было переделать 300 раз.

В общем-то хочется понять что же требуется?
- либо отредактировать функции как для 64-разрядной системы, но ссылки оставить на 32-разрядные библиотеки;
- либо наоборот отредактировать оставить функции, но ссылки сделать на 64-разрядные библиотеки и установить эти бибилиотеки;
Потому что если редактировать всё, то не проще ли взять и скопировать tcopy из 64-разрядной системы?

Заранее благодарен!
Пните в нужном направлении, а то ваще туплю.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "А что tcopy не копирует файлы более 2 Gb ?"  +/
Сообщение от Aquarius (ok) on 26-Янв-10, 14:20 
>Потому что если редактировать всё, то не проще ли взять и скопировать
>tcopy из 64-разрядной системы?

бинарник из 64-битной системы не будет работать в 32-битной

>Пните в нужном направлении, а то ваще туплю.

гугл?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "А что tcopy не копирует файлы более 2 Gb ?"  +/
Сообщение от Im27th (ok) on 26-Янв-10, 15:03 
>>Пните в нужном направлении, а то ваще туплю.
>гугл?

Это послание говорит только о том, что Вы не разбираетесь в вопросе и сказать Вам нечего. Ну так и молчали бы и не позорились, сидели в ветке флейма.

Я написал: "И вообще не смотря на то, что проблема типа стара, я не нашёл ни в одном форуме или блоге, чтобы хоть кто-то описывал, что решил эту проблему."

Это означает, что я уже перерыл всё, что мог. То, что осталось не перерытым, видимо за гранью моего понимания как составить запрос.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "А что tcopy не копирует файлы более 2 Gb ?"  +/
Сообщение от lavr email on 26-Янв-10, 14:51 
>[оверквотинг удален]
>В общем-то хочется понять что же требуется?
>- либо отредактировать функции как для 64-разрядной системы, но ссылки оставить на
>32-разрядные библиотеки;
>- либо наоборот отредактировать оставить функции, но ссылки сделать на 64-разрядные библиотеки
>и установить эти бибилиотеки;
>Потому что если редактировать всё, то не проще ли взять и скопировать
>tcopy из 64-разрядной системы?
>
>Заранее благодарен!
>Пните в нужном направлении, а то ваще туплю.

я не смотрел исходник, но думаю что логика у tcopy проста, тупо копировать в цикле
до достижения end of tape с одной ленты до другой.
Нужно посмотреть переменную которая отвечает за размер ленточного файла и чтобы она
было больше чем int.

ps. ну можно собрать из tcopy.c бинарник с debug или собственными printf и посмотреть
где и почему вылетает при выполнии или используя gdb

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "А что tcopy не копирует файлы более 2 Gb ?"  +/
Сообщение от Im27th (ok) on 15-Фев-10, 15:20 
Да, всё получилось!

В исходнике поменял в двух местах open() на open64() и откомпилировал:
gcc -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 tcopy2.c -o tcopy2

И на CentOS 5.2. и на Solaris 8 всё откомпилировалось без ошибок.

Но долго не удавалось проверить - не было доступа к ленточным устройствам.

Сегодня получил доступ на Solaris 8 и удалось скопировать с ленты на диск 10-гигабайтный файл.
Правда он всё равно что-то в конце гадостливое сказал на прощание:

file 1: records 223462 to 223463: size 512
file 1: records 223464 to 223523: size 64512
file 1: record 223524: size 52992
file 1: record 223525: size 4
file 1: record 223526: size 512
file 1: records 223527 to 223529: size 64512
file 1: record 223530: size 49824
file 1: record 223531: size 4
file 1: records 223532 to 223635: size 512
file 1: eof after 223635 records: 10195176924 bytes
Write EOF: Inappropriate ioctl for device

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру