balena-image-fs 7.3.0 → 7.4.0-build-get-filesystem-label-dd0cf1da6d688913dbb3a01f372b1df9a2bdf86f-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -1
- package/build/fsLabel.d.ts +28 -0
- package/build/fsLabel.js +109 -0
- package/build/fsLabel.js.map +1 -0
- package/build/index.d.ts +1 -0
- package/build/index.js +4 -1
- package/build/index.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -4,7 +4,11 @@ All notable changes to this project will be documented in this file
|
|
|
4
4
|
automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
|
|
5
5
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
|
6
6
|
|
|
7
|
-
## 7.
|
|
7
|
+
## 7.4.0 - 2025-01-17
|
|
8
|
+
|
|
9
|
+
* Add getLabel() to retrieve filesystem label [Ken Bannister]
|
|
10
|
+
|
|
11
|
+
## 7.3.0 - 2025-01-06
|
|
8
12
|
|
|
9
13
|
* Drop Bluebird from devDependencies [Thodoris Greasidis]
|
|
10
14
|
* flowzone: Remove empty with clause [Thodoris Greasidis]
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Disk } from 'file-disk';
|
|
2
|
+
import { GPTPartition, MBRPartition } from 'partitioninfo';
|
|
3
|
+
import { TypedError } from 'typed-error';
|
|
4
|
+
/**
|
|
5
|
+
* @summary An error to describe why getLabel() failed to find a filesystem label.
|
|
6
|
+
*/
|
|
7
|
+
export declare class LabelNotFound extends TypedError {
|
|
8
|
+
constructor(partitionIndex: number, description: string);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* @summary Returns the label encoded in the filesystem for a given partition,
|
|
12
|
+
* or throws LabelNotFound if can't determine label location.
|
|
13
|
+
*
|
|
14
|
+
* This function focuses on balenaOS devices and does not attempt to read the
|
|
15
|
+
* many possible filesystem types.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
*
|
|
19
|
+
* await filedisk.withOpenFile('/foo/bar.img', 'r', async (handle) => {
|
|
20
|
+
* const disk = new filedisk.FileDisk(handle);
|
|
21
|
+
* const info = partitioninfo.getPartitions(disk);
|
|
22
|
+
* for (const partition of info.partitions) {
|
|
23
|
+
* const label = await getLabel(disk, partition);
|
|
24
|
+
* console.log(`${partition.index}: ${label}`);
|
|
25
|
+
* }
|
|
26
|
+
* }
|
|
27
|
+
*/
|
|
28
|
+
export declare function getLabel(disk: Disk, partition: GPTPartition | MBRPartition): Promise<string>;
|
package/build/fsLabel.js
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getLabel = exports.LabelNotFound = void 0;
|
|
4
|
+
const typed_error_1 = require("typed-error");
|
|
5
|
+
// GPT partition GUIDs
|
|
6
|
+
// https://en.wikipedia.org/wiki/GUID_Partition_Table#Partition_type_GUIDs
|
|
7
|
+
const GUID_EFI_SYSTEM = 'C12A7328-F81F-11D2-BA4B-00A0C93EC93B';
|
|
8
|
+
const GUID_MS_BASIC_DATA = 'EBD0A0A2-B9E5-4433-87C0-68B6B72699C7';
|
|
9
|
+
const GUID_LINUX_NATIVE = '0FC63DAF-8483-4772-8E79-3D69D8477DE4';
|
|
10
|
+
/**
|
|
11
|
+
* @summary An error to describe why getLabel() failed to find a filesystem label.
|
|
12
|
+
*/
|
|
13
|
+
class LabelNotFound extends typed_error_1.TypedError {
|
|
14
|
+
constructor(partitionIndex, description) {
|
|
15
|
+
super(`Label not found: ${partitionIndex}; ${description}`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.LabelNotFound = LabelNotFound;
|
|
19
|
+
/**
|
|
20
|
+
* @summary Returns the label encoded in the filesystem for a given partition,
|
|
21
|
+
* or throws LabelNotFound if can't determine label location.
|
|
22
|
+
*
|
|
23
|
+
* This function focuses on balenaOS devices and does not attempt to read the
|
|
24
|
+
* many possible filesystem types.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
*
|
|
28
|
+
* await filedisk.withOpenFile('/foo/bar.img', 'r', async (handle) => {
|
|
29
|
+
* const disk = new filedisk.FileDisk(handle);
|
|
30
|
+
* const info = partitioninfo.getPartitions(disk);
|
|
31
|
+
* for (const partition of info.partitions) {
|
|
32
|
+
* const label = await getLabel(disk, partition);
|
|
33
|
+
* console.log(`${partition.index}: ${label}`);
|
|
34
|
+
* }
|
|
35
|
+
* }
|
|
36
|
+
*/
|
|
37
|
+
async function getLabel(disk, partition) {
|
|
38
|
+
// If GPT, can we just read the protective MBR?
|
|
39
|
+
// Is there a more Typescript native way to determine partition table type?
|
|
40
|
+
const isGpt = 'guid' in partition;
|
|
41
|
+
const isMbr = !isGpt;
|
|
42
|
+
// Read filesystem metadata. May need further reads depending on filesystem.
|
|
43
|
+
let buf = Buffer.alloc(0x100);
|
|
44
|
+
await disk.read(buf, 0, buf.length, partition.offset);
|
|
45
|
+
let labelOffset = 0;
|
|
46
|
+
let maxLength = 0;
|
|
47
|
+
// A filesystem places the label in a certain position in its metadata. So
|
|
48
|
+
// we must determine the type of filesystem, but there are many possibilities.
|
|
49
|
+
// We first narrow the possibilities by checking the partition type (MBR) or
|
|
50
|
+
// GUID (GPT) for the containing partition. There are two broad categories --
|
|
51
|
+
// FAT types and Linux native types. Finally we confirm the presence of signature
|
|
52
|
+
// bytes within the filesystem.
|
|
53
|
+
// https://en.wikipedia.org/wiki/Partition_type
|
|
54
|
+
const mbrFatTypes = [0xB, 0xC, 0xE];
|
|
55
|
+
const gptFatTypes = [GUID_EFI_SYSTEM, GUID_MS_BASIC_DATA];
|
|
56
|
+
let foundPartType = false;
|
|
57
|
+
let foundLabel = false;
|
|
58
|
+
if (isMbr && mbrFatTypes.some(ptype => partition.type === ptype)
|
|
59
|
+
|| isGpt && gptFatTypes.some(ptype => partition.type === ptype)) {
|
|
60
|
+
foundPartType = true;
|
|
61
|
+
maxLength = 11;
|
|
62
|
+
// FAT16
|
|
63
|
+
if (buf.readUInt8(0x26) === 0x29) {
|
|
64
|
+
labelOffset = 0x2B;
|
|
65
|
+
foundLabel = true;
|
|
66
|
+
// FAT32
|
|
67
|
+
}
|
|
68
|
+
else if (buf.readUInt8(0x42) === 0x29) {
|
|
69
|
+
labelOffset = 0x47;
|
|
70
|
+
foundLabel = true;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// Linux filesytem of some kind
|
|
74
|
+
const gptLinuxTypes = [GUID_LINUX_NATIVE, GUID_MS_BASIC_DATA];
|
|
75
|
+
if (!foundLabel
|
|
76
|
+
&& ((isMbr && partition.type === 0x83)
|
|
77
|
+
|| (isGpt && gptLinuxTypes.some(ptype => partition.type === ptype)))) {
|
|
78
|
+
foundPartType = true;
|
|
79
|
+
maxLength = 16;
|
|
80
|
+
// ext2+; reload buffer within superblock
|
|
81
|
+
await disk.read(buf, 0, buf.length, partition.offset + 0x400);
|
|
82
|
+
if (buf.readUInt16LE(0x38) === 0xEF53) {
|
|
83
|
+
labelOffset = 0x78;
|
|
84
|
+
foundLabel = true;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// Fail on unexpected partition/filesystem
|
|
88
|
+
if (!foundPartType) {
|
|
89
|
+
throw new LabelNotFound(partition.index, 'unexpected partition type');
|
|
90
|
+
}
|
|
91
|
+
else if (!foundLabel) {
|
|
92
|
+
throw new LabelNotFound(partition.index, 'can\'t read filesystem');
|
|
93
|
+
}
|
|
94
|
+
// Exclude trailing /0 bytes to stringify.
|
|
95
|
+
let i = 0;
|
|
96
|
+
for (; i <= maxLength; i++) {
|
|
97
|
+
// If label fills available space, no need to test. We just need i
|
|
98
|
+
// to have the expected value for Buffer.toString() call below.
|
|
99
|
+
if (i == maxLength) {
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
if (buf.readUInt8(labelOffset + i) == 0) {
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return buf.toString('utf8', labelOffset, labelOffset + i).trim();
|
|
107
|
+
}
|
|
108
|
+
exports.getLabel = getLabel;
|
|
109
|
+
//# sourceMappingURL=fsLabel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fsLabel.js","sourceRoot":"","sources":["../lib/fsLabel.ts"],"names":[],"mappings":"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"}
|
package/build/index.d.ts
CHANGED
package/build/index.js
CHANGED
|
@@ -15,7 +15,7 @@ See the License for the specific language governing permissions and
|
|
|
15
15
|
limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.interact = void 0;
|
|
18
|
+
exports.interact = exports.LabelNotFound = exports.getLabel = void 0;
|
|
19
19
|
/**
|
|
20
20
|
* @module imagefs
|
|
21
21
|
*/
|
|
@@ -26,6 +26,9 @@ const util_1 = require("util");
|
|
|
26
26
|
const file_disk_1 = require("file-disk");
|
|
27
27
|
const partitioninfo = require("partitioninfo");
|
|
28
28
|
const typed_error_1 = require("typed-error");
|
|
29
|
+
var fsLabel_1 = require("./fsLabel");
|
|
30
|
+
Object.defineProperty(exports, "getLabel", { enumerable: true, get: function () { return fsLabel_1.getLabel; } });
|
|
31
|
+
Object.defineProperty(exports, "LabelNotFound", { enumerable: true, get: function () { return fsLabel_1.LabelNotFound; } });
|
|
29
32
|
class MountError extends typed_error_1.TypedError {
|
|
30
33
|
}
|
|
31
34
|
const SECTOR_SIZE = 512;
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "balena-image-fs",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.4.0-build-get-filesystem-label-dd0cf1da6d688913dbb3a01f372b1df9a2bdf86f-1",
|
|
4
4
|
"description": "Image filesystem manipulation utilities",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"homepage": "https://github.com/balena-io-modules/balena-image-fs",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"lint-fix": "balena-lint --fix --typescript lib tests",
|
|
24
24
|
"clean": "rm -rf build",
|
|
25
25
|
"build": "npm run clean && tsc",
|
|
26
|
-
"test": "npm run lint && mocha -r ts-node/register tests
|
|
26
|
+
"test": "npm run lint && mocha -r ts-node/register tests/*.ts",
|
|
27
27
|
"readme": "jsdoc2md --template doc/README.hbs build/index.js > README.md",
|
|
28
28
|
"prepublish": "npm run test && npm run build && npm run readme"
|
|
29
29
|
},
|
|
@@ -59,6 +59,6 @@
|
|
|
59
59
|
"node": ">=16"
|
|
60
60
|
},
|
|
61
61
|
"versionist": {
|
|
62
|
-
"publishedAt": "2025-01-
|
|
62
|
+
"publishedAt": "2025-01-17T03:40:29.783Z"
|
|
63
63
|
}
|
|
64
64
|
}
|