V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
shalingye
V2EX  ›  程序员

vhdx 管理工具开发进度

  •  
  •   shalingye · 2023-04-24 03:13:05 +08:00 via Android · 1660 次点击
    这是一个创建于 614 天前的主题,其中的信息可能已经有所发展或是发生改变。
    核心架构: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 开发,可直接跨平台。
    15 条回复    2024-12-26 01:34:48 +08:00
    yrj
        1
    yrj  
       2023-04-24 03:16:29 +08:00
    底层是调用 win 的 api 嘛
    Aloento
        2
    Aloento  
       2023-04-24 04:31:51 +08:00
    @yrj 纯 js 。winapi+js 。
    yrj
        3
    yrj  
       2023-04-24 04:48:18 +08:00
    @Aloento 噢噢,没研究过,但是感觉挺有意思,可以做出好玩的工具
    caomingjun
        4
    caomingjun  
       2023-04-24 08:57:04 +08:00 via Android
    开源了吗,开源的话给个链接我去 star 一下
    SmiteChow
        5
    SmiteChow  
       2023-04-24 09:21:15 +08:00
    e+js 不叫核心架构,叫技术栈😂
    ysc3839
        6
    ysc3839  
       2023-04-24 09:44:40 +08:00 via Android
    用 qemu-img 和 qemu-nbd 就能跨平台
    shalingye
        7
    shalingye  
    OP
       2023-04-24 10:58:12 +08:00 via Android
    @yrj winapi 是拿来写入物理磁盘的,这个没办法,win 上写入物理磁盘需要特殊权限以及加锁才能办到
    shalingye
        8
    shalingye  
    OP
       2023-04-24 10:58:32 +08:00 via Android
    @Aloento @ yrj winapi 是拿来写入物理磁盘的,这个没办法,win 上写入物理磁盘需要特殊权限以及加锁才能办到
    shalingye
        9
    shalingye  
    OP
       2023-04-24 10:59:04 +08:00 via Android
    @SmiteChow 对不起啦,一时兴起用词不准确
    shalingye
        10
    shalingye  
    OP
       2023-04-24 11:00:39 +08:00 via Android
    @caomingjun 还没有,这是毕设,我先把这边应付了再说
    shalingye
        11
    shalingye  
    OP
       2023-04-24 11:04:45 +08:00 via Android
    @ysc3839 相关工具还是有的,但是我打算自己实现一遍,加上界面便于操作
    thrinity
        12
    thrinity  
       2023-04-24 14:10:38 +08:00
    下一步可以从文件系统方面进行优化,比如将 ntfs 、fat32 、以及各类 fs 的存储特性结合 vhdx ,可以进一步节约空间
    shalingye
        13
    shalingye  
    OP
       2023-04-24 15:14:34 +08:00 via Android
    @thrinity 这个不太现实,vhdx 说到底是对物理驱动器层面的模拟,和分区没有太大关系。如果是指在宿主盘上的空间占用,也是没法优化的。
    150530
        14
    150530  
       5 天前
    有 github 吗?想看下实现逻辑
    shalingye
        15
    shalingye  
    OP
       2 天前
    @150530 没有喔,我代码不放在 GitHub 上的,都手动管理。你想看哪部分逻辑?可以单独交流下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1655 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 16:46 · PVG 00:46 · LAX 08:46 · JFK 11:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.