vhdx 管理工具开发进度

2023-04-24 03:13:05 +08:00
 shalingye
核心架构:Electron+JavaScript

已实现功能:

1.创建 vhdx 。固定、动态、差分。纯 js 。

2.差分合并。子盘合并到父盘。纯 js 。

3.虚实转换。vhdx 和物理磁盘可互相转换,winapi+js 。

4.管理 vhdx 。可查看挂载状态,详细信息(块大小、容量、已占空间、逻辑物理扇区大小、创建者、类型、id 、父盘五要素),看挂载用 ps ,其他纯 js 。

5.父子链修复。修改子盘的父盘五要素。纯 js 。

6.容量修改。纯 js 。



待实现功能:

7.忘恩负义:差分类型转换为动态 /固定类型。可选择是否继承父盘数据。

8.一分为 N:将固定 /动态类型转换为一系列差分类型,方便数据传输或存放。

9.空间优化:对应命令 unmap ,将 vhdx 因删除未回收的空间释放。



幻想时间:若要移植到 linux ,或许还要开发内核驱动来支持 vhdx 挂载。不过管理功能由于是 js 开发,可直接跨平台。
1615 次点击
所在节点    程序员
13 条回复
yrj
2023-04-24 03:16:29 +08:00
底层是调用 win 的 api 嘛
Aloento
2023-04-24 04:31:51 +08:00
@yrj 纯 js 。winapi+js 。
yrj
2023-04-24 04:48:18 +08:00
@Aloento 噢噢,没研究过,但是感觉挺有意思,可以做出好玩的工具
caomingjun
2023-04-24 08:57:04 +08:00
开源了吗,开源的话给个链接我去 star 一下
SmiteChow
2023-04-24 09:21:15 +08:00
e+js 不叫核心架构,叫技术栈😂
ysc3839
2023-04-24 09:44:40 +08:00
用 qemu-img 和 qemu-nbd 就能跨平台
shalingye
2023-04-24 10:58:12 +08:00
@yrj winapi 是拿来写入物理磁盘的,这个没办法,win 上写入物理磁盘需要特殊权限以及加锁才能办到
shalingye
2023-04-24 10:58:32 +08:00
@Aloento @ yrj winapi 是拿来写入物理磁盘的,这个没办法,win 上写入物理磁盘需要特殊权限以及加锁才能办到
shalingye
2023-04-24 10:59:04 +08:00
@SmiteChow 对不起啦,一时兴起用词不准确
shalingye
2023-04-24 11:00:39 +08:00
@caomingjun 还没有,这是毕设,我先把这边应付了再说
shalingye
2023-04-24 11:04:45 +08:00
@ysc3839 相关工具还是有的,但是我打算自己实现一遍,加上界面便于操作
thrinity
2023-04-24 14:10:38 +08:00
下一步可以从文件系统方面进行优化,比如将 ntfs 、fat32 、以及各类 fs 的存储特性结合 vhdx ,可以进一步节约空间
shalingye
2023-04-24 15:14:34 +08:00
@thrinity 这个不太现实,vhdx 说到底是对物理驱动器层面的模拟,和分区没有太大关系。如果是指在宿主盘上的空间占用,也是没法优化的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/934924

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX