bcachefs 在format的时候可以指定fs_label, 其他时候没看到可以修改的地方。 从https://www.reddit.com/r/bcachefs/comments/1org1vh/how_to_change_label_to_bcachefs_partition/ 看到的一段脚本
#!/usr/bin/env python3 import fcntl import os import array # Correct ioctl constants FS_IOC_GETFSLABEL = 0x81009431 FS_IOC_SETFSLABEL = 0x41009432 FSLABEL_MAX = 256 def get_filesystem_label(mount_point): """Get filesystem label using FS_IOC_GETFSLABEL ioctl""" label_buffer = array.array('b', b'\x00' * FSLABEL_MAX) fd = os.open(mount_point, os.O_RDONLY) try: fcntl.ioctl(fd, FS_IOC_GETFSLABEL, label_buffer, True) label = label_buffer.tobytes().rstrip(b'\x00').decode('utf-8') return label finally: os.close(fd) def set_filesystem_label(mount_point, label): """Set filesystem label using FS_IOC_SETFSLABEL ioctl""" if len(label) >= FSLABEL_MAX: raise ValueError(f"Label too long (max {FSLABEL_MAX - 1} chars)") label_bytes = label.encode('utf-8') + b'\x00' fd = os.open(mount_point, os.O_RDONLY) try: fcntl.ioctl(fd, FS_IOC_SETFSLABEL, label_bytes) return True finally: os.close(fd) # Example usage (requires root/CAP_SYS_ADMIN) if __name__ == "__main__": mount_point = "/mnt/old_fs_name" NEW_FS_NAME = "praxis" # Set label set_filesystem_label(mount_point, NEW_FS_NAME) # Get label current_label = get_filesystem_label(mount_point) print(f"Current label: {current_label}")