wiki:TipAndDoc/storage/filesystem

Version 36 (modified by mitty, 10 years ago) (diff)

--

    mount filesystem inside disk image

    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
      
    2. $ 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.

    sparse file

    • 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
      
    • On-line Manual of "dd"

      conv=value[,value ...]

      sparse

      一つ以上の出力ブロックが NUL バイトのみからなる場合、 NUL で埋める代りに、必要な空間だけ出力ファイルのシーク を試みます。結果として、疎なファイルとなります。

    • disk imageをsparse file形式で作る場合、以下のようにするのが楽
      # cp --sparse=always /dev/sda1 sda1.sparse
      

    NTFS

    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

    mount with UUID

    mount disk image

    NTFS

    swapが複数あるときの優先順位

    • 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.
    • SWAP Priority Setting - Ubuntu Forums

    testing xfs_growfs

    • 結論
      • diskの後方に向けて拡張するのは、開始セクタを変えずにパーティションを切り直し、リマウントしてxfs_growfsすればよい
      • diskの前方に向けて拡張するのは、パーティション内容をあらかじめdd等で移動する手間が必要
        • データ総量が十分小さければ、前方にあらかじめ別のパーティションを切り、cpした上で古いパーティションを削除して、新しいパーティションを後方拡張する方が操作ミスを起こしにくいと思われる
      • LVMを使えばより単純になると思われる
        • ただし、LVM自体を扱う手間が増える(障害時の復旧手順が複雑化)
    • see XFS

    undelete

    ext3 / ext4