[[PageOutline]] [[TitleIndex(TipAndDoc/storage/filesystem,format=group)]] * [http://mkosaki.blog46.fc2.com/blog-entry-1097.html 革命の日々! XFS on x86_64] * [http://togetter.com/li/16598 Togetter - 「xfs stack overflow」] * [http://journal.mycom.co.jp/articles/2011/01/28/how-to-use-zfs-on-linux/index.html 【レビュー】UbuntuでネイティブにZFSを使う方法 | エンタープライズ | マイコミジャーナル] * http://howtoforge.com/native-zfs-on-ubuntu * http://dokan-dev.net/ Windows用の仮想ファイルシステムドライバDokanライブラリとその関連ソフトウェア * FUSEのWindows版とも言えるライブラリです. = mount filesystem inside disk image = * [http://yudoufu.github.io/blog/2012/04/28/vm-mount-memo/ VM disk image の mount 方法いくつかメモ - (」・ω・)」うー!(/・ω・)/にゃー!] * [http://www.andremiller.net/content/mounting-hard-disk-image-including-partitions-using-linux Mounting a hard disk image including partitions using Linux | andremiller.net] 1. $ sudo fdisk -lu /path/to/libvirt/win-7.img {{{ Disk /path/to/libvirt/win-7.img: 34.4 GB, 34359738368 bytes 255 heads, 63 sectors/track, 4177 cylinders, total 67108864 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x2452e44f Device Boot Start End Blocks Id System /path/to/libvirt/win-7.img1 * 2048 206847 102400 7 HPFS/NTFS/exFAT /path/to/libvirt/win-7.img2 206848 67106815 33449984 7 HPFS/NTFS/exFAT }}} 1. $ sudo mount -r -t ntfs {{{-o loop,offset=$((206848*512))}}} /path/to/libvirt/win-7.img /mnt = tools = * wikipedia:fdupes > fdupes is a program written by Adrian Lopez to scan directories for duplicate files, with options to list and delete them. It first compares file sizes and MD5 signatures, and then performs a byte-by-byte check for verification. * [http://www.freedup.org/ FREEDUP.org - allows you to reclaim space on your drives] * [http://www.lessfs.com/wordpress/ lessfs | Open source data de-duplication] = sparse file = * [http://centos-server.blogspot.com/2008/04/sparse.html CentOS&Xenサーバ導入メモ: Sparseファイルの取り扱い方法] > * コピー > * # cp --sparse=auto [コピー元] [コピー先] > * # rsync -avS [コピー元] [コピー先] > * GNU TARで圧縮/解凍 > * 圧縮 # tar zcSvf [書庫ファイル] [格納するファイル] > * 解凍 # tar zxSvf [書庫ファイル] > * 通常ファイルをSparseファイルにする > * # cp --sparse=always [コピー元] [コピー先] > * Sparseファイルを通常ファイルに戻す > * # cp --sparse=never [コピー元] [コピー先] * wikipedia:Sparse_file > Pipeing > {{{ > cat somefile | cp --sparse=always /proc/self/fd/0 new-sparse-file > }}} * [http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=dd&dir=jpman-8.3.2%2Fman§=0 On-line Manual of "dd"] > conv=value[,value ...] > sparse > 一つ以上の出力ブロックが NUL バイトのみからなる場合、 > NUL で埋める代りに、必要な空間だけ出力ファイルのシーク > を試みます。結果として、疎なファイルとなります。 * disk imageをsparse file形式で作る場合、以下のようにするのが楽 {{{ # cp --sparse=always /dev/sda1 sda1.sparse }}} * [http://www.nminoru.jp/~nminoru/programming/sparse_file.html Linux で疎なファイル(sparse file)を使う] == NTFS == * [http://d.hatena.ne.jp/hideakii/20091116/1258350454 FSUTILツールとスパースファイル - B-) の独り言] {{{ filenameを適宜作成 > fsutil sparse setflag 'filename' > dd bs=0 count=1 seek='target size - 1' bs=1 if=/dev/zero of='filename' }}} * count=0だとI/Oが発生せず0のまま * [http://www.atmarkit.co.jp/fwin2k/win2ktips/243largefile/largefile.html 巨大なサイズのファイルを簡単に作る方法 - @IT] = fdisk = * Supported suffix {{{ Supported: 10^N: KB (KiloByte), MB (MegaByte), GB (GigaByte) 2^N: K (KibiByte), M (MebiByte), G (GibiByte) }}} * change a partition's system id {{{ Hex code (type L to list codes): L 0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris 1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT- 2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT- 3 XENIX usr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT- 4 FAT16 <32M 41 PPC PReP Boot 85 Linux extended c7 Syrinx 5 Extended 42 SFS 86 NTFS volume set da Non-FS data 6 FAT16 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / . 7 HPFS/NTFS 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility 8 AIX 4f QNX4.x 3rd part 8e Linux LVM df BootIt 9 AIX bootable 50 OnTrack DM 93 Amoeba e1 DOS access a OS/2 Boot Manag 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O b W95 FAT32 52 CP/M 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs e W95 FAT16 (LBA) 54 OnTrackDM6 a5 FreeBSD ee GPT f W95 Ext'd (LBA) 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/ 10 OPUS 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b 11 Hidden FAT12 5c Priam Edisk a8 Darwin UFS f1 SpeedStor 12 Compaq diagnost 61 SpeedStor a9 NetBSD f4 SpeedStor 14 Hidden FAT16 <3 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary 16 Hidden FAT16 64 Novell Netware af HFS / HFS+ fb VMware VMFS 17 Hidden HPFS/NTF 65 Novell Netware b7 BSDI fs fc VMware VMKCORE 18 AST SmartSleep 70 DiskSecure Mult b8 BSDI swap fd Linux raid auto 1b Hidden W95 FAT3 75 PC/IX bb Boot Wizard hid fe LANstep 1c Hidden W95 FAT3 80 Old Minix be Solaris boot ff BBT 1e Hidden W95 FAT1 }}} = mount(8) = == mount bind == * man 8 mount > -B, --bind >> Remount a subtree somewhere else (so that its contents are available in both places). See above. * via [http://d.hatena.ne.jp/magicalhat/20081226/1230220014 特定の VirtualHost でのみ SuEXEC したい - ふしぎなぼうし] * [http://www.ftnk.jp/~fumi/cl/2004-12-25-4.html mount --bind for fstab - ~fumi/ChangeLog] * [http://d.hatena.ne.jp/defiant/20110104/1294112010 read only な bind mount の怪 - TenForwardの日記 (defiantの日記改め)] > {{{ > # mount --bind /etc /mnt > # mount -o remount,ro /mnt > }}} * [http://lwn.net/Articles/281157/ Read-only bind mounts [LWN.net]] == mount with UUID == * [http://sourceforge.jp/magazine/08/09/18/0148228/2 UUIDを使ったディスクドライブ指定 - SourceForge.JP Magazine] * 「vol_id /dev/*」 でUUIDを取得できる * knoppix(debian)では「/lib/udev/vol_id」という変な場所にコマンドがあるので注意 * [http://ubuntuforums.org/showthread.php?t=1728152 How to modify UUID] == mount disk image == * [http://lostman-worlds-end.blogspot.com/2009/05/blog-post_18.html (鬱とSEと)コンピュータ: ディスクイメージのマウント] * [http://ubuntuforums.org/showthread.php?t=711773 mount dd image of and entire disk - Ubuntu Forums] = NTFS = * [http://blogs.technet.com/b/extreme/archive/2008/02/19/windows-server-2008-self-healing-ntfs.aspx Windows Server 2008 - Self-healing NTFS - eXtreme. tech. - Site Home - TechNet Blogs] * [http://ubuntuforums.org/showthread.php?t=1240146 Changing the UUID of a FAT32 or NTFS Partition] = swapが複数あるときの優先順位 = * [http://www.linux.com/learn/docs/man/4244-swapon2 swapon.2] * Each swap area has a priority, either high or low. The default priority is low. Within the low-priority areas, newer areas are even lower priority than older areas. * All priorities set with swapflags are high-priority, higher than default. They may have any non-negative value chosen by the caller. Higher numbers mean higher priority. * Swap pages are allocated from areas in priority order, highest priority first. For areas with different priorities, a higher-priority area is exhausted before using a lower-priority area. If two or more areas have the same priority, and it is the highest priority available, pages are allocated on a round-robin basis between them. * [http://ubuntuforums.org/showthread.php?t=38613 SWAP Priority Setting - Ubuntu Forums] = testing xfs_growfs = * 結論 * diskの後方に向けて拡張するのは、開始セクタを変えずにパーティションを切り直し、リマウントしてxfs_growfsすればよい * diskの前方に向けて拡張するのは、パーティション内容をあらかじめdd等で移動する手間が必要 * データ総量が十分小さければ、前方にあらかじめ別のパーティションを切り、cpした上で古いパーティションを削除して、新しいパーティションを後方拡張する方が操作ミスを起こしにくいと思われる * LVMを使えばより単純になると思われる * ただし、LVM自体を扱う手間が増える(障害時の復旧手順が複雑化) * see [./XFS#testingxfs_growfs] = undelete = == ext3 / ext4 == * [http://d.hatena.ne.jp/y-kawaz/20110123/1295779916 Linuxでうっかりrm -rfしちゃったけど復活出来たよー\(^o^)/ - y-kawazの日記] > どうやら [http://extundelete.sourceforge.net/ extundelete] ってのがext3/ext4対応の復活プログラムらしい。