Make NTFS writable on macOS

helloyou發表於2017-09-21

前言

NTFS 全稱是 New Technology File System,是微軟隨 Windows NT 系統開發的檔案系統,由於版權的問題 macOS 沒有開放對 NTFS 的寫許可權。但是可以通過重新掛載開啟寫許可權,方法如下:

  1. 列出所有的外接儲存裝置

    $ diskutil list external
    /dev/disk2 (external, physical):
    #:                       TYPE NAME                    SIZE       IDENTIFIER
    0:     FDisk_partition_scheme                        *15.9 GB    disk2
    1:               Windows_NTFS DBand                   15.9 GB    disk2s1複製程式碼
  2. 解掛載然後重新掛載

    # 解掛載
    $ sudo diskutil umount /dev/disk2s1
    # 重新掛載
    $ sudo mount -o rw,auto,nobrowse -t ntfs /dev/disk2s1 /Volumes/DBand
    # 開啟
    $ open /Volumes/DBand複製程式碼

寫個小工具

雖然上述方法比較簡單但是對於普通人操作起來還是比較麻煩的,而且每次都要輸命令也比較麻煩。因此打算寫個視覺化的小工具。

第一步:列出所有的外接儲存裝置

通過 diskutil 可以檢視儲存裝置的基本資訊,我們簡單的把他封裝了下,專案地址:github.com/d-band/ls-u…

const getMediaList = require('ls-usb');

getMediaList()
  .then(data => {
    console.log(JSON.stringify(data, null, '  '));
  });

/*[{
  "udid": "disk2",
  "name": "UDisk",
  "type": "Generic",
  "node": "/dev/disk2",
  "size": "15.9 GB",
  "size_bytes": 4026531840,
  "volumes": [{
    "udid": "disk2s1",
    "mount": "/Volumes/DBand",
    "size": "15.9 GB",
    "size_bytes": 15938355200,
    "name": "DBand",
    "node": "/dev/disk2s1",
    "fs_type": "ntfs",
    "fs_name": "NTFS",
    "free": "15.9 GB",
    "free_bytes": 15938355200,
    "writable": false
  }]
}]*/複製程式碼

第二步:寫個基於 Electron 的小工具

專案地址:github.com/d-band/disk…

主要技術點:

  • Electron:跨平臺桌面應用開發工具
  • dool:基於 Webpack 的打包工具
  • React:構建使用者介面的 JavaScript 庫
  • yax:基於 Redux 的狀態容器
  • sudo-prompt:圖形化的 sudo 提示框
# 全域性安裝 dool
$ npm i dool -g

# 安裝專案依賴
$ npm i

# 執行 dool 編譯 electron-renderer 相關檔案
$ npm run dev

# 再開啟一個 Tab 啟動 electron
$ npm run start複製程式碼

附個圖

Disky:make NTFS writable on macOS
Disky:make NTFS writable on macOS

相關文章