Ubuntu - Tidak ada ruang tersisa di perangkat (NTFS)

11

Saya memiliki server yang menyimpan banyak data, saya menyimpan banyak direktori bersarang dengan jutaan file di dalamnya.

Saat mencoba memindahkan satu direktori besar (~ 700GB) dari satu disk ke disk lain, saya mendapatkan pesan kesalahan:

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

"No space left on device"

Selain itu, mencoba membuat file txt kecil di disk tidak berfungsi:

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

Saya memeriksa banyak opsi online, tidak ada yang berhasil.

df -h output:

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 output:

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

Membaca online, orang-orang mengatakan masalah serupa terjadi karena akses ke sejumlah besar file dan pengaturan fs.inotify.max_user_watches ke jumlah yang tinggi dapat menyelesaikannya, saya meningkatkannya dari 8192 menjadi 10.00000 tetapi tidak membantu.

PeterN
sumber
Sudahkah Anda mencoba lsof +L1? man lsof: Spesifikasi formulir + L1 akan memilih file terbuka yang telah dibatalkan tautannya.
AB
Tidak ada alasan untuk mvmenggunakan inotifymekanisme ini. Lihat di sini : beberapa proses mungkin masih menggunakan file yang tidak terhubung dari sistem file tujuan.
John WH Smith
File yang dihapus masih akan muncul dalam penggunaan yang diberikan oleh df...
Stephen Kitt
@StephenKitt No. File yang tidak ditautkan yang dipegang oleh subsistem file karena rujukan inode. Mereka yang benar-benar tidak digunakan dan tidak terhubung ("dihapus") tidak muncul. Lihat di sini .
John WH Smith
1
Periksa ntfsinfo -m /dev/DEVpetunjuknya. Itu bagian dari ntfs-3g. Juga catat bahwa hanya ada 2 ^ 32 file pada satu volume NTFS. Saya tidak akan mempercayai alat linux / unix asli untuk melaporkan jumlah inode NTFS secara tepat.
mikky

Jawaban:

1

Jalankan yang berikut ini:

lsof -s | sort -nrk 7 | head

Anda akan melihat output seperti ini:

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

Catatan; yang di atas hanyalah contoh Anda harus menggunakan penilaian Anda untuk menemukan penggunaan ruang.

Tentang output:

  • Kolom 7 adalah ukuran ruang yang digunakan.
  • Kolom 4 adalah deskriptor file.

Anda dapat menghapus konten di deskriptor file untuk mendapatkan kembali ruang itu:

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

Jelas ini akan menghancurkan semua data pada file descriptor itu.


sumber
Jika masalah terjadi lagi, saya akan mencobanya
PeterN
0

Anda dapat mencoba tar untuk menyalin semua data, lalu menghapusnya sesudahnya:

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

Ini akan mempertahankan semua kepemilikan, izin, dan tautan

Chad Smith
sumber
Tidak ada salinan yang berfungsi .. Tidak hanya itu, membuat file kosong yang sederhana mengembalikan tidak ada ruang yang tersisa kecuali
PeterN
0

Saya akan menggunakan rsync -avrz storage3 storage4dan kemudian menghapus file setelah itu, tetapi saya punya pertanyaan lain mengapa Anda memiliki saham menggunakan sistem file NTFS jika Anda menggunakan Linux (Ubuntu) maka saya akan menggunakan ext4 atau ReiserFS, ButterFS. JIKA bagian itu terletak di kotak Windows, silakan coba dan pindahkan file-file dari Windows ke Windows menggunakan robocopy, yang sangat baik dalam hal ini. Robocopy sebagian besar berfungsi seperti rsync.

halaman manual untuk rsync: http://linux.die.net/man/1/rsync

halaman bantuan untuk robocopy: https://technet.microsoft.com/en-us/library/cc733145.aspx

halaman dukungan untuk driver 3g-ntfs untuk Linux: www.tuxera.com/community/open-source-ntfs-3g/

FAQ untuk 3g-ntfs: www.tuxera.com/community/ntfs-3g-faq/

Saya curiga ada sesuatu yang harus diperbaiki di dalam driver sistem file NTFS yang Anda gunakan dalam instalasi Ubuntu Anda, distribusi NTFS mana yang Anda gunakan, bagaimana Anda memasang disk, apakah mereka terpasang secara lokal ke kotak ubuntu yang Anda duduki atau dipasang menggunakan iSCSI dari SAN?

Ada lebih dari pemecahan masalah ini selain, "Saya tidak bisa memindahkan file saya yang berlokasi di NTFS dan saya menjalankan ubuntu untuk memindahkannya."

OMG-1
sumber
Seperti disebutkan, tidak ada salinan yang berfungsi, saya mencoba segala macam perintah rsync. Tetapi, bahkan membuat file kosong pada storage4 menghasilkan pengecualian. \ n Alasan menggunakan NTFS adalah karena kami memiliki server lain, yang menjalankan windows, dan kami ingin memungkinkan transfer disk dengan mudah dari satu server ke server lain. Dalam retrospeksi, saya tidak akan menggunakan NTFS karena semua masalah yang menyertainya, Ubuntu sangat tidak stabil dengan mount NTFS. \ n Disk terhubung melalui kabel SATA langsung ke motherboard di komputer, tidak ada SAN atau apa pun. Ini adalah pemasangan langsung pada sistem linux.
PeterN
Saya akan menyarankan Anda untuk dua hal, ketika menggunakan teknologi MS pergi MS murni, gunakan Microsoft Windows Fileserver jika Anda perlu memiliki NTFS, lain pergi dengan ext4 atau sistem file Linux lainnya dan berbagi disk dengan Smb.
OMG-1
Simpan sendiri beberapa masalah dan jangan pernah mencoba menggabungkan windows dan linux. Tidak ada jumlah bantuan yang akan menyelamatkan Anda dalam jangka panjang, pada akhirnya ini akan selalu berakhir dengan air mata. Sepertinya masalah dengan inode atau file menangani, tetapi ketika Anda menempatkan NTFS dalam campuran ... bom waktu. Jika lingkungan Anda memerlukan interaksi linux dan NTFS, letakkan NTFS di server windows dan lakukan interaksi seperti itu. Tidak mencoba menggabungkan ke sistem yang sama.
Baazigar