List all connected drives in your computer, in all major operating systems.
Notice that this module does not require admin privileges to get the drives in any operating system supported.
Supports:
- Windows.
- GNU/Linux distributions that include util-linux.
- Mac OS X.
Examples (the output will vary depending on your machine):
var drivelist = require('drivelist');
drivelist.list(function(error, disks) {
if (error) throw error;
console.log(disks);
});
Mac OS X:
[
{
device: '/dev/disk0',
description: 'GUID_partition_scheme',
size: '*750.2 GB'
mountpoint: '/'
},
{
device: '/dev/disk1',
description: 'Apple_HFS Macintosh HD',
size: '*748.9 GB'
}
]
GNU/Linux
[
{
device: '/dev/sda',
description: 'WDC WD10JPVX-75J',
size: '931.5G',
mountpoint: '/'
},
{
device: '/dev/sr0',
description: 'DVD+-RW GU90N',
size: '1024M'
}
]
Windows
[
{
device: '\\\\.\\PHYSICALDRIVE0',
description: 'WDC WD10JPVX-75JC3T0',
size: '1000 GB'
mountpoint: 'C:'
},
{
device: '\\\\.\\PHYSICALDRIVE1',
description: 'Generic STORAGE DEVICE USB Device',
size: '15 GB'
mountpoint: 'D:'
}
]
Install drivelist
by running:
$ npm install --save drivelist
List available drives.
The function will throw an error if you attempt to call it from an unsupported operating system.
error
is a possible error.drives
is an array of objects describing the drives found.
Determines if a drive returned by drivelist.list()
is a system drive.
The callbacks gets passed a single boolean value.
Run the test suite by doing:
$ gulp test
We're looking forward to support more operating systems. Please raise an issue or even better, send a PR to increase support!
- Issue Tracker: github.com/resin-io/drivelist/issues
- Source Code: github.com/resin-io/drivelist
Before submitting a PR, please make sure that you include tests, and that coffeelint runs without any warning:
$ gulp lint
If you're having any problem, please raise an issue on GitHub.
- Add
mountpoint
attribute to drives.
- Fix issue where a removable drive was detected as a system drive in Linux.
Fix win32 issue where DeviceID gets part of the device description.
- Implement isSystem predicate.
- Prevent empty lsblk model crash the module. Return
undefined
description instead.
- Prevent empty wmic size crash the module. Return
undefined
size instead.
- Return non supported OS error to the callback instead of just throwing it.
The project is licensed under the MIT license.