User Tools

Site Tools


software:linux:btrfs

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
software:linux:btrfs [2015/06/22 00:23] superwizardsoftware:linux:btrfs [2016/11/17 03:26] (current) superwizard
Line 1: Line 1:
 +====== Scripts for btrfs maintenance tasks like periodic scrub ======
 +
 +
 +From: https://github.com/kdave/btrfsmaintenance
 +
 +<code>
 +Great Documentation 
 +
 +Scripts for btrfs maintenance tasks like periodic scrub, balance, trim or defrag on selected 
 +mountpoints or directories.
 +</code>
 +
 +====== btrfs check ======
 +
 +From: https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs-check
 +
 +<code>
 +btrfs check /dev/sb2
 +btrfs check --repair \dev\sb2
 +</code>
 +
 +====== btrfs scrub ======
 +
 +From: http://marc.merlins.org/perso/btrfs/post_2014-03-19_Btrfs-Tips_-Btrfs-Scrub-and-Btrfs-Filesystem-Repair.html
 +
 +From: https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs-scrub
 +
 +
 +
 +<code>
 +btrfs scrub start -Bd $mountpoint
 +
 +btrfs scrub is used to scrub a btrfs filesystem, which will read all data and metadata blocks from 
 +all devices and verify checksums. Automatically repair corrupted blocks if there’s a correct copy 
 +available.
 +
 +start [-BdqrRf] [-c <ioprio_class> -n <ioprio_classdata>] <path>|<device>
 +Start a scrub on all devices of the filesystem identified by path or on a single device. If a scrub is already running, the new one fails.
 +Without options, scrub is started as a background process.
 +The default IO priority of scrub is the idle class. The priority can be configured similar to the ionice(1) syntax using -c and -n options.
 +Options
 +-B
 +do not background and print scrub statistics when finished
 +-d
 +print separate statistics for each device of the filesystem (-B only) at the end
 +-q
 +be quiet, omit error messages and statistics
 +-r
 +run in read-only mode, do not attempt to correct anything, can be run on a read-only filesystem
 +-R
 +print raw statistics per-device instead of a summary
 +-c <ioprio_class>
 +set IO priority class (see ionice(1) manpage)
 +-n <ioprio_classdata>
 +set IO priority classdata (see ionice(1) manpage)
 +-f
 +force starting new scrub even if a scrub is already running, this can useful when scrub status 
 +file is damaged and reports a running scrub although it is not, but should not normally be necessary
 +status [-d] <path>|<device>
 +</code>
 +
 +====== resize partition ======
 +
 +From: http://unix.stackexchange.com/questions/239765/how-to-fix-btrfs-superblock-error-after-resize-shrink-btrfs-couldnt-get-super
 +
 +<code>
 +Fix
 +
 +First, a live system was booted to reduce the risk of damage while the system is running on a 
 +filesystem that's bigger than the partition it's on.
 +
 +Mount the filesystem:
 +
 +mount /dev/sda2 /mnt/tmp
 +First shrink the second device to 50 GB - 1 GB = 49 GB to avoid rounding errors:
 +
 +btrfs filesystem resize 2:49g /mnt/tmp
 +Resize it to fill the 50 GB partition:
 +
 +btrfs filesystem resize 2:max /mnt/tmp
 +Check btrfs filesystem show, both devices should have the right size:
 +
 +devid    1 size 50.00GiB used 43.03GiB path /dev/sda2
 +devid    2 size 50.00GiB used 43.03GiB path /dev/sdb2
 +Unmount, reboot, the error should be gone.
 +</code>
 +
 +====== BTRFS restoring a corrupt filesystem from another “tree location” ======
 +
 +From: http://ram.kossboss.com/btrfs-restoring-a-corrupt-filesystem-from-another-tree-location/
 +
 +<code>
 +Here is how you restore a really corrupt btrfs filesystem using btrfs restore.
 +
 +PRE STEPS (realizing the filesystem is really corrupt by trying simple mounts and 
 +restores):
 +
 +* assume your volume name is /dev/md127 and that you have an available /root folder 
 +to dump temp data to and that you will be dumping your restore to /USB
 +* you can change any of those variable if thats not the case
 +
 +Here we assume the filesystem is so corrupt that its not mounting regulary:
 +
 +# mount /dev/md127 /data
 +mount: wrong fs type, bad option, bad superblock on /dev/md127,
 +       missing codepage or helper program, or other error
 +       In some cases useful info is found in syslog - try
 +       dmesg | tail  or so
 +</code>
 +
 ====== btrfs file system ====== ====== btrfs file system ======
  
software/linux/btrfs.1434932609.txt.gz · Last modified: by superwizard