Hi all,
enclosed in the next two emails you can find two patches which introduce a new
program called "btrfs". This program has the ambitious to replace the
utilities of the btrfs-prog package, like:
- btrfsctl
- btrfs-show
- btrfs-volume
- btrfs
The goals are:
- improve the usability of the tools
- add a man page which documents all the commands
- correct the btrfsctl return codes
I put a lot of attentions in order to avoid regression respect the old tools.
A clone of my git repository is available at
http://cassiopea.homelinux.net/git/btrfs-command.git
On the basis of the feedback of the previous patches I rearranged some "short
command name" (-s, -c ...) in order to avoid collision. I renamed also the
command "create" in "subvolume" (and the relative short command name from '-S'
to '-c' :-) ).
Chris, do you think that these patches are mergeable ?
Comments are welcome.
BR
Goffredo
---
Makefile | 5
btrfs.c | 775 +++++++++++++++++++++++++++++++++++++++++++++++++++++
man/Makefile | 5
man/btrfs.8.in | 122 ++++++++
4 files changed, 905 insertions(+), 2 deletions(-)
--
Example of use:
$ btrfs
Usage:
btrfs snapshot|-s [<dest>/]<name>
Create a writeble snapshot of the subvolume <source> with
the name <name> in the <dest> directory.
btrfs delete|-D <subvolume>
Delete the subvolume <subvolume>.
btrfs subvolume|-c [<dest>/]<name>
Create a subvolume in <dest> (or the current directory if
not passed).
btrfs defrag|-f <file>|<dir> [<file>|<dir>...]
Defragment a file or a directory.
btrfs scan|-n [<device> [<device>..]
Scan all device for or the passed device for a btrfs
filesystem.
btrfs fssync|-y <path>
Force a fs sync on the filesystem <path>
btrfs resize|-z [+/-]<newsize>[gkm]|max <filesystem>
Resize the file system. If 'max' is passed, the filesystem
will occupe all available space on the device.
btrfs show|-l [<dev>|<label>...]
Show the btrfs devices
btrfs balance|-b <path>
Balance the chunk across the device
btrfs add-dev|-A <dev> [<dev>..] <path>
Add a device to a filesystem
btrfs rm-dev|-R <dev> [<dev>..] <path>
Remove a device to a filesystem
btrfs help|--help|-h
Show the help.
Btrfs v0.19-12-g7e4c8e8-dirty
BTRFS(8) btrfs BTRFS(8)
NAME
btrfs - control a btrfs filesystem
SYNOPSIS
btrfs snapshot|-s <source> [<dest>/]<name>
btrfs delete|-D <subvolume>
btrfs subvolume|-c [<dest>/]<name>
btrfs defrag|-f <file>|<dir> [<file>|<dir>...]
btrfs fssync|-y <path>
btrfs resize|-z [+/-]<size>[gkm]|max <filesystem>
btrfs scan|-n [<device> [<device>..]]
btrfs show|-l <dev>|<label> [<dev>|<label>...]
btrfs balance|-b <path>
btrfs add-dev|-A <dev> [<dev>..] <path>
btrfs rm-dev|-R <dev> [<dev>..] <path> ]
btrfs help|--help|-h
DESCRIPTION
btrfs is used to control the filesystem and the files and directories
stored. It is the tool to create or destroy a new snapshot or a new
subvolume for the filesystem, to defrag a file or a directory, to flush
the dato to the disk, to resize the filesystem, to scan the device.
OPTIONS
snapshot|-s <source> [<dest>/]<name>
Create a writeble snapshot of the subvolume <source> with the
name <name> in the <dest> directory. If <source> is not a sub‐
volume, btrfs returns an error.
delete|-D <subvolume>
Delete the subvolume <subvolume>. If <subvolume> is not a sub‐
volume, btrfs returns an error.
subvolume|-c [<dest>/]<name>
Create a subvolume in <dest> (or in the current directory if
<dest> is not passed).
defrag|-f <file>|<dir> [<file>|<dir>...]
Defragment files and/or directories.
scan|-n [<device> [<device>..]]
Scan devices for a btrfs filesystem. If no devices are passed,
btrfs scans all the block devices.
fssync|-y <path>
Force a sync for the filesystem identified by <path>.
resize|-z [+/-]<size>[gkm]|max <filesystem>
Resize a file system identified by <path>. The <size> parameter
specifies the new size of the filesystem. If the prefix + or -
is present the size is increased or decreased by the quantity
<size>. If no units are specified, the unit of the <size>
parameter is the byte. Optionally, the size parameter may be
suffixed by one of the following the units designators: 'K',
'M', or 'G', kilobytes, megabytes, or gigabytes, respectively.
If 'max' is passed, the filesystem will occupy all available
space on the volume(s).
The resize command does not manipulate the size of underlying
partitions. If you wish to enlarge/reduce a filesystem, you
must make sure you can expand/reduce the size of the partition
also.
show|-l [<dev>|<label>...]
Show the btrfs devices with some additional info. If no devices
or labels are passed, btrfs scans all the block devices.
balance|-b <path>
Balance the chunk of the filesystem identified by <path> across
the devices.
add-dev|-A <dev> [<dev>..] <path>
Add device(s) to the filesystem identified by <path>.
rm-dev|-R <dev> [<dev>..] <path>
Remove device(s) to the filesystem identified by <path>.
EXIT STATUS
btrf returns a zero exist status if it succeeds. Non zero is returned
in case of failure.
AVAILABILITY
btrfs is part of btrfs-progs. Btrfs filesystem is currently under heavy
development, and not suitable for any uses other than benchmarking and
review. Please refer to the btrfs wiki http://btrfs.wiki.kernel.org
for further details.
SEE ALSO
mkfs.btrfs(8)
btrfs BTRFS(8)
--
gpg key@ keyserver.linux.it: Goffredo Baroncelli (ghigo) <kreijackATinwind.it>
Key fingerprint = 4769 7E51 5293 D36C 814E C054 BF04 F161 3DC5 0512
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html