Skip to content

交互式/脚本化操作的,核心库完全由C语言只使用标准库写成的,易于移植的GPT分区与文件系统工具

License

Notifications You must be signed in to change notification settings

sxysxy/tfstools

Repository files navigation

tfstools

tfstools是一个交互式/脚本化操作的,核心库完全由C语言写成,易于移植的GPT分区与文件系统工具。

最初是作为Taurix操作系统内核的最基本的文件系统的实现,由于核心的库的高度可移植性(核心库完全使用C语言及其标准库,整个工具只使用C/C++语言及其标准库),现将tfstools单独发布。

特性

自识别 创建 读取 写入
GPT分区
FAT32 待完善
更多文件系统的支持正在开发中

构建工具

*nix

git clone [email protected]:sxysxy/tfstools
cd tfstools
#构建核心库:
./makelib.sh
#构建工具
./maketool.sh
#安装到/usr/bin下
sudo ./install.sh

Windows:

下载源代码,将所有源代码一起使用g++或cl.exe编译即可生成工具

除去tfstools.cpp,可以使用gcc或cl.exe编译成静态库或动态链接库

核心库API

见tfstools.h,以及工具前端tfstools.cpp的用例

命令

常规

命令 参数 说明
new [filename, size_in_mb] Create a new GPT disk image file (1mb=1024kb,1kb=1024b), No spaces in filename, pleaase
open [filename] Set disk image file
open_ro [filename] Set disk image file, readonly
close Finish your operations and close disk image file
exit [code(optional)] Exit with code(default to 0)
help [command(optional)] Show help message about the command
print[text] Just print the text

分区

命令参数说明
list_parts List exist part in the image file
new_part_start Start creating new partition
attribute [attr]
 Set the attribute
        1                   :System partition
        2                   :EFI hidden partition
        4                   :Normal
        1152921504606846976 :Readonly
        4611686018427387904 :Hidden
        9223372036854775808 :No auto mount 
type_guid [guid]
 Set the type guid of new partition, for example:
        C12A7328-F81F-11D2-BA4B-00A0C93EC93B : EFI System 
        EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 : Data 
        0657FD6D-A4AB-43C4-84E5-0933C84B4F4F : Linux Swapfile 
        DE94BBA4-06D1-4D40-A16A-BFD50179D6AC : Windows Recovery Environment 
        48465300-0000-11AA-AA11-00306543ECAC : Apple HFS/HFS+ 
        55465300-0000-11AA-AA11-00306543ECAC : Apple UFS 
guid [guid/"random"] Set the guid of new partition, or use random
start_lba [lba] Set start lba
end_lba [lba] Set end lba
label [label] Set the label
new_part_end End creating new parition
select [guid/index] To specified the current partition(find the partition by guid or index)
rmpart Delete current partition. After done the current partition will come unexisting
enter_part [filesystem(optional)] Enter into the filesystem in current partition(requires fore select_part, detect filesystem automatically if no argument)
sync Synchronize partition table to disk image file(Think before you do)

文件系统

命令(简写) 参数 说明
makefs [filesystem]
 Format this partition with specified filesystem
   Available filesystem: 
        FAT32 
chdir(cd) [dir] Change current directory to dir
chpdir(cdp) Change current directory to parent directory
mkdir [dir] Create directory(depth = 1)
ls [dir(optional)] List files in current directory
poll [src, dest] Poll src(in image file) to dest(in real filesystem on your computer)
push [src, dest] Send src(in real filesystem on you computer) to dest(in current directory in the image file)
rm [filename] Remove a file or directory

用例见demo.tfs

About

交互式/脚本化操作的,核心库完全由C语言只使用标准库写成的,易于移植的GPT分区与文件系统工具

Resources

License

Stars

Watchers

Forks

Packages

No packages published