Ubuntu - на пристрої не залишилось місця (NTFS)


11

У мене є сервер, який зберігає багато даних, я зберігаю багато вкладених каталогів з мільйонами файлів у них.

Під час спроби перемістити один великий каталог (~ 700 Гб) з одного диска на інший я отримав помилку:

mv /media/storage3/dir /media/storage4/

"No space left on device"

Також спроба створити невеликий txt-файл на диску не працює:

Error opening file '/media/storage4/Untitled Document': No space left on device

Я перевірив багато варіантів в Інтернеті, жоден не працював.

df -h вихід:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sdg7        77G  9.2G   64G  13% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev             32G  4.0K   32G   1% /dev
tmpfs           6.3G  1.4M  6.3G   1% /run
none            5.0M     0  5.0M   0% /run/lock
none             32G   76K   32G   1% /run/shm
none            100M   48K  100M   1% /run/user
/dev/sdg6        19G  6.7G   11G  39% /home
/dev/sdb1       440G  278G  140G  67% /var
/dev/sda1       2.8T  2.0T  764G  73% /media/storage1
/dev/sdh1       2.8T  1.6T  1.3T  56% /media/storage2
/dev/sdi1       2.8T  1.7T  1.2T  60% /media/storage3
/dev/sdf1       2.8T  876G  1.9T  32% /media/storage4

df -i вихід:

Filesystem         Inodes    IUsed      IFree IUse% Mounted on
/dev/sdg7         5079040   514215    4564825   11% /
none              8242449        2    8242447    1% /sys/fs/cgroup
udev              8239750      611    8239139    1% /dev
tmpfs             8242449      696    8241753    1% /run
none              8242449        5    8242444    1% /run/lock
none              8242449        4    8242445    1% /run/shm
none              8242449       28    8242421    1% /run/user
/dev/sdg6         1220608   218613    1001995   18% /home
/dev/sdb1        29310976 12863877   16447099   44% /var
/dev/sda1       858436804 41630853  816805951    5% /media/storage1
/dev/sdh1      1356948436 38728057 1318220379    3% /media/storage2
/dev/sdi1      1217505624 34748869 1182756755    3% /media/storage3
/dev/sdf1      2048962648 36308921 2012653727    2% /media/storage4

Читаючи в Інтернеті, люди сказали, що подібні проблеми трапляються через доступ до величезної кількості файлів і через те, що встановлення fs.inotify.max_user_watches на високу кількість може це вирішити, я збільшив її з 8192 до 1000000, але це не допомогло.


Ви пробували lsof +L1? man lsof: Специфікація форми + L1 вибере відкриті файли, від’єднані.
AB

Причин для mvвикористання inotifyмеханізму немає. Подивіться тут : деякі процеси все ще можуть використовувати від’єднані файли з цільової файлової системи.
Джон У. Сміт

Видалені файли все одно відображатимуться у використанні, яке надає df...
Стівен Кітт

@StephenKitt. Ні. Пов’язані файли, які зберігаються у файловій підсистемі через посилання на інде. Ті, хто повністю не використовується та від’єднаний ("видалено"), не відображаються. Дивіться тут .
Джон У. Сміт

1
Перевірте ntfsinfo -m /dev/DEVпідказки. Це частина ntfs-3g. Також зауважте, що на одному томі NTFS може бути до 2 ^ 32 файлів. Я б не довіряв жодному рідному інструменту linux / unix, щоб точно повідомляти про кількість NODFS.
mikky

Відповіді:


1

Виконайте наступне:

lsof -s | sort -nrk 7 | head

Ви побачите такий результат:

firefox    2997                     j   52rr     REG              252,0 10485760    5505182 /some/path
firefox    2997                     j   50rr     REG              252,0 10485760    5505182 /some/path
firefox    2997                     j    3rr     REG              252,0 10485760    5505182 /some/path
firefox    2997                     j   39rr     REG              252,0 10485760    5505182 /some/path
firefox    2997                     j   31ur     REG              252,0 10485760    5505182 /some/path

Примітка; вище - це лише приклад, який вам знадобиться використовувати судження, щоб знайти використання місця.

Про вихід:

  • Графа 7 - це розмір використовуваного простору.
  • Стовпець 4 - дескриптор файлу.

Ви можете видалити вміст у файловому дескрипторі, щоб отримати цей простір:

cat /dev/null > /proc/2997/fd/50

Очевидно, це знищить усі дані цього дескриптора файлів.


Якщо проблеми з’являться знову, я спробую це зробити
PeterN

0

Ви можете спробувати tar, щоб скопіювати всі дані, а потім видалити їх:

cd /media/storage3/; tar cfp - ./dir | ( cd /media/storage4; tar xfp - )

Це дозволить зберегти всі права власності, дозволи та посилання


Жодна копія не працювала. Мало того, що при створенні простого порожнього файлу не було винятків
пробілу

0

Я б використовував rsync -avrz storage3 storage4і потім видаляв файли згодом, але у мене виникло інше питання, чому у вас є ті спільні файли, що використовують файлову систему NTFS, якщо ви використовуєте Linux (Ubuntu), то я б пішов на ext4 або ReiserFS, ButterFS. Якщо ці папки знаходяться у вікні Windows, спробуйте перенести ці файли з Windows у Windows за допомогою роботокопії, що в цьому плані є чудовим. Робокопія працює здебільшого як rsync.

сторінка man для rsync: http://linux.die.net/man/1/rsync

сторінка довідки з роботокопії: https://technet.microsoft.com/en-us/library/cc733145.aspx

сторінка підтримки для драйверів 3g-ntfs для Linux: www.tuxera.com/community/open-source-ntfs-3g/

FAQ для 3g-ntfs: www.tuxera.com/community/ntfs-3g-faq/

Я підозрюю, що щось слід виправити всередині драйверів файлової системи NTFS, якими ви користуєтесь у своїй установці Ubuntu, який розподіл NTFS ви використовуєте, як ви змонтували диски, чи вони локально прикріплені до вікна ubuntu, на якому ви сидите, або вони встановлені використовуючи iSCSI від SAN?

У цьому усуненні несправностей є більше, ніж просто "Я не можу перемістити свої файли, які вони знаходяться на NTFS, і я запускаю ubuntu для їх переміщення".


Як згадувалося, жодна копія не працювала, я спробував усілякі команди rsync. Але навіть створення порожнього файлу в сховищі4 повернуло виняток. \ n Причина використання NTFS полягає в тому, що у нас є інші сервери, які запускають windows, і ми хотіли дозволити легку передачу дисків з одного сервера на інший. В ретроспективі я б не використовував NTFS через всі проблеми, які він приносить із собою, Ubuntu дуже нестабільний із кріпленням NTFS. \ n Диски підключаються за допомогою кабелю SATA безпосередньо до материнської плати на комп'ютері, без SAN або нічого подібного. Це пряме кріплення в системі Linux.
PeterN

Я б порадив вам дві речі, коли при використанні технологій MS йдеться лише про MS, використовуйте файловий сервер Microsoft Windows, якщо вам потрібно мати NTFS, інакше перейдіть з ext4 або іншою файловою системою Linux і поділіться диском з Smb.
OMG-1,

Збережіть собі деякі проблеми і ніколи не намагайтеся поєднувати Windows та Linux. Жодна допомога не врятує вас у довгостроковій перспективі, з часом це завжди закінчиться сльозами. Це здається проблемою з ручками inode або файлів, але коли ви ставите NTFS в мікс ... time bomb. Якщо ваше середовище потребує взаємодії Linux та NTFS, поставте NTFS на сервер Windows і виконайте взаємодію таким чином. Не намагаються поєднати в одній системі.
Баазігар
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.