Sobes.tech
Senior

There is 10 GB of free space on the disk, but copying a 4 GB file is not possible. What to do? (inode problem)

sobes.tech AI

Answer from AI

If there is 10 GB of free space on the disk, but copying a 4 GB file fails due to an inode issue, it means there is a problem with the number of available inodes, not the space itself.

What to do:

  • Check the number of free inodes with the command df -i. If inodes are exhausted, you cannot create new files even if there is free space.

  • Clear the filesystem of a large number of small files that occupy inodes, such as temporary files or logs.

  • If possible, use another filesystem with a larger number of inodes or format the partition with parameters to increase inodes.

  • In Go, you can check for errors when creating a file and handle them, but the solution depends on the OS and filesystem.

Example of checking free inodes in Go:

package main

import (
    "fmt"
    "syscall"
)

func main() {
    var stat syscall.Statfs_t
    err := syscall.Statfs("/path/to/mount", &stat)
    if err != nil {
        panic(err)
    }
    fmt.Printf("Free inodes: %d\n", stat.Ffree)
}