Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ironlib is able to detect ineffective wipes #135

Merged

Conversation

turegano-equinix
Copy link
Collaborator

What does this PR do

Disks lie about supporting standard commands and/or successful completion of those commands, so we need to “trust but verify”. We have definitely seen this before, most recently with some micron nvme disks that respond successfully to TRIM commands but do not actually wipe the data

How can this change be tested by a PR reviewer?

Added in examples/diskwipe/main.go

Description for changelog/release notes

ironlib is able to detect ineffective wipes

utils/watermark_disk.go Outdated Show resolved Hide resolved
utils/watermark_disk.go Outdated Show resolved Hide resolved
utils/watermark_disk.go Outdated Show resolved Hide resolved
utils/watermark_disk.go Outdated Show resolved Hide resolved
utils/watermark_disk.go Outdated Show resolved Hide resolved
utils/watermark_disk.go Outdated Show resolved Hide resolved
utils/watermark_disk.go Outdated Show resolved Hide resolved
Copy link
Member

@mmlb mmlb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would love to see a test for this. Both postive and negative tests. Negative could be create a ~15KB empty file, and run check func after this wipe. It should error out.

Then for the postive case: wipe the same file (truncate to 0b then seek to a position is quick and easy, let the kernel figure it out :D) and run check again it should pass.

Maybe write the file full of random data and run check again to make sure it still comes back with an error? I don't really think this last one is necessary though.

utils/watermark_disk.go Outdated Show resolved Hide resolved
utils/watermark_disk_test.go Outdated Show resolved Hide resolved
utils/watermark_disk_test.go Show resolved Hide resolved
utils/watermark_disk_test.go Outdated Show resolved Hide resolved
utils/watermark_disk_test.go Outdated Show resolved Hide resolved
utils/watermark_disk_test.go Outdated Show resolved Hide resolved
utils/watermark_disk_test.go Outdated Show resolved Hide resolved
utils/watermark_disk.go Outdated Show resolved Hide resolved
examples/diskwipe/main.go Outdated Show resolved Hide resolved
utils/watermark_disk_test.go Outdated Show resolved Hide resolved
utils/watermark_disk.go Show resolved Hide resolved
actions/storage_controller.go Show resolved Hide resolved
Copy link
Member

@mmlb mmlb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm2

@turegano-equinix turegano-equinix merged commit 037a39a into metal-toolbox:main Apr 26, 2024
5 checks passed
mmlb referenced this pull request in metal-toolbox/vogelkop Jun 14, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/metal-toolbox/ironlib](https://github.com/metal-toolbox/ironlib)
| `v0.2.18-0.20240611133518-3514176030a4` -> `v0.2.18` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fmetal-toolbox%2fironlib/v0.2.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fmetal-toolbox%2fironlib/v0.2.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fmetal-toolbox%2fironlib/v0.2.18-0.20240611133518-3514176030a4/v0.2.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fmetal-toolbox%2fironlib/v0.2.18-0.20240611133518-3514176030a4/v0.2.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>metal-toolbox/ironlib
(github.com/metal-toolbox/ironlib)</summary>

###
[`v0.2.18`](https://github.com/metal-toolbox/ironlib/releases/tag/v0.2.18)

[Compare
Source](https://github.com/metal-toolbox/ironlib/compare/v0.2.17...v0.2.18)

#### What's Changed

- Vc/instrument firmware by
[@&#8203;DoctorVin](https://github.com/DoctorVin) in
[https://github.com/metal-toolbox/ironlib/pull/123](https://github.com/metal-toolbox/ironlib/pull/123)
- Dockerfile: add support to build non-dist image by
[@&#8203;joelrebel](https://github.com/joelrebel) in
[https://github.com/metal-toolbox/ironlib/pull/124](https://github.com/metal-toolbox/ironlib/pull/124)
- Update actions/checkout action to v4 by
[@&#8203;renovate](https://github.com/renovate) in
[https://github.com/metal-toolbox/ironlib/pull/112](https://github.com/metal-toolbox/ironlib/pull/112)
- House/spring cleaning by [@&#8203;mmlb](https://github.com/mmlb) in
[https://github.com/metal-toolbox/ironlib/pull/128](https://github.com/metal-toolbox/ironlib/pull/128)
- ironlib is able to fill a disk with all zeros by
[@&#8203;turegano-equinix](https://github.com/turegano-equinix) in
[https://github.com/metal-toolbox/ironlib/pull/131](https://github.com/metal-toolbox/ironlib/pull/131)
- ironlib is able to detect ineffective wipes by
[@&#8203;turegano-equinix](https://github.com/turegano-equinix) in
[https://github.com/metal-toolbox/ironlib/pull/135](https://github.com/metal-toolbox/ironlib/pull/135)
- House Cleaning Part 2 - Electric Boogaloo! by
[@&#8203;mmlb](https://github.com/mmlb) in
[https://github.com/metal-toolbox/ironlib/pull/133](https://github.com/metal-toolbox/ironlib/pull/133)
- Better nvme capability detection by
[@&#8203;mmlb](https://github.com/mmlb) in
[https://github.com/metal-toolbox/ironlib/pull/129](https://github.com/metal-toolbox/ironlib/pull/129)
- Quiet down tests by [@&#8203;mmlb](https://github.com/mmlb) in
[https://github.com/metal-toolbox/ironlib/pull/137](https://github.com/metal-toolbox/ironlib/pull/137)
- More refactors, fixes, etc by
[@&#8203;mmlb](https://github.com/mmlb) in
[https://github.com/metal-toolbox/ironlib/pull/141](https://github.com/metal-toolbox/ironlib/pull/141)
- chore(deps): update docker/login-action action to v3 by
[@&#8203;renovate](https://github.com/renovate) in
[https://github.com/metal-toolbox/ironlib/pull/118](https://github.com/metal-toolbox/ironlib/pull/118)
- chore(deps): update docker/build-push-action action to v5 by
[@&#8203;renovate](https://github.com/renovate) in
[https://github.com/metal-toolbox/ironlib/pull/113](https://github.com/metal-toolbox/ironlib/pull/113)
- fix(deps): update module github.com/r3labs/diff/v2 to v3 by
[@&#8203;renovate](https://github.com/renovate) in
[https://github.com/metal-toolbox/ironlib/pull/108](https://github.com/metal-toolbox/ironlib/pull/108)
- chore(deps): update docker/metadata-action action to v5 by
[@&#8203;renovate](https://github.com/renovate) in
[https://github.com/metal-toolbox/ironlib/pull/144](https://github.com/metal-toolbox/ironlib/pull/144)
- chore(deps): update actions/setup-go action to v5 by
[@&#8203;renovate](https://github.com/renovate) in
[https://github.com/metal-toolbox/ironlib/pull/143](https://github.com/metal-toolbox/ironlib/pull/143)
- chore(deps): update module google.golang.org/protobuf to v1.33.0
\[security] by [@&#8203;renovate](https://github.com/renovate) in
[https://github.com/metal-toolbox/ironlib/pull/126](https://github.com/metal-toolbox/ironlib/pull/126)
- fix(deps): update module golang.org/x/net to v0.23.0 \[security] by
[@&#8203;renovate](https://github.com/renovate) in
[https://github.com/metal-toolbox/ironlib/pull/116](https://github.com/metal-toolbox/ironlib/pull/116)
- chore(deps): update docker/setup-buildx-action action to v3 by
[@&#8203;renovate](https://github.com/renovate) in
[https://github.com/metal-toolbox/ironlib/pull/146](https://github.com/metal-toolbox/ironlib/pull/146)
- fix(deps): update module github.com/sirupsen/logrus to v1.9.3 by
[@&#8203;renovate](https://github.com/renovate) in
[https://github.com/metal-toolbox/ironlib/pull/100](https://github.com/metal-toolbox/ironlib/pull/100)
- chore(deps): update anchore/sbom-action action to v0.15.11 by
[@&#8203;renovate](https://github.com/renovate) in
[https://github.com/metal-toolbox/ironlib/pull/99](https://github.com/metal-toolbox/ironlib/pull/99)
- fix(deps): update module github.com/tidwall/gjson to v1.17.1 by
[@&#8203;renovate](https://github.com/renovate) in
[https://github.com/metal-toolbox/ironlib/pull/109](https://github.com/metal-toolbox/ironlib/pull/109)
- fix(deps): update module golang.org/x/net to v0.24.0 by
[@&#8203;renovate](https://github.com/renovate) in
[https://github.com/metal-toolbox/ironlib/pull/145](https://github.com/metal-toolbox/ironlib/pull/145)
- chore(deps): update golangci/golangci-lint-action action to v5 by
[@&#8203;renovate](https://github.com/renovate) in
[https://github.com/metal-toolbox/ironlib/pull/147](https://github.com/metal-toolbox/ironlib/pull/147)
- fix(deps): update module github.com/stretchr/testify to v1.9.0 by
[@&#8203;renovate](https://github.com/renovate) in
[https://github.com/metal-toolbox/ironlib/pull/101](https://github.com/metal-toolbox/ironlib/pull/101)
- fix(deps): update module github.com/beevik/etree to v1.3.0 by
[@&#8203;renovate](https://github.com/renovate) in
[https://github.com/metal-toolbox/ironlib/pull/97](https://github.com/metal-toolbox/ironlib/pull/97)
- fix(deps): update module golang.org/x/net to v0.25.0 by
[@&#8203;renovate](https://github.com/renovate) in
[https://github.com/metal-toolbox/ironlib/pull/148](https://github.com/metal-toolbox/ironlib/pull/148)
- chore(deps): update github/codeql-action action to v3 by
[@&#8203;renovate](https://github.com/renovate) in
[https://github.com/metal-toolbox/ironlib/pull/149](https://github.com/metal-toolbox/ironlib/pull/149)
- Update CODEOWNERS by
[@&#8203;DoctorVin](https://github.com/DoctorVin) in
[https://github.com/metal-toolbox/ironlib/pull/152](https://github.com/metal-toolbox/ironlib/pull/152)
- Update modules that renovate is having trouble with by
[@&#8203;mmlb](https://github.com/mmlb) in
[https://github.com/metal-toolbox/ironlib/pull/150](https://github.com/metal-toolbox/ironlib/pull/150)
- chore(deps): update golangci/golangci-lint-action action to v6 by
[@&#8203;renovate](https://github.com/renovate) in
[https://github.com/metal-toolbox/ironlib/pull/153](https://github.com/metal-toolbox/ironlib/pull/153)
- Add DiskWipe support to nvme using sanitize by
[@&#8203;mmlb](https://github.com/mmlb) in
[https://github.com/metal-toolbox/ironlib/pull/136](https://github.com/metal-toolbox/ironlib/pull/136)
- Add format support to nvme WipeDisk by
[@&#8203;mmlb](https://github.com/mmlb) in
[https://github.com/metal-toolbox/ironlib/pull/142](https://github.com/metal-toolbox/ironlib/pull/142)
- Add ns delete/create support to nvme WipeDisk by
[@&#8203;mmlb](https://github.com/mmlb) in
[https://github.com/metal-toolbox/ironlib/pull/154](https://github.com/metal-toolbox/ironlib/pull/154)
- More clean ups by [@&#8203;mmlb](https://github.com/mmlb) in
[https://github.com/metal-toolbox/ironlib/pull/158](https://github.com/metal-toolbox/ironlib/pull/158)
- Add basic support for blkdiscard by
[@&#8203;ScottGarman](https://github.com/ScottGarman) in
[https://github.com/metal-toolbox/ironlib/pull/159](https://github.com/metal-toolbox/ironlib/pull/159)
- Some more clean ups by [@&#8203;mmlb](https://github.com/mmlb) in
[https://github.com/metal-toolbox/ironlib/pull/161](https://github.com/metal-toolbox/ironlib/pull/161)
- Rename Disk stuff -> Drive and teach diskwipe example more tricks by
[@&#8203;mmlb](https://github.com/mmlb) in
[https://github.com/metal-toolbox/ironlib/pull/163](https://github.com/metal-toolbox/ironlib/pull/163)

#### New Contributors

- [@&#8203;turegano-equinix](https://github.com/turegano-equinix) made
their first contribution in
[https://github.com/metal-toolbox/ironlib/pull/131](https://github.com/metal-toolbox/ironlib/pull/131)
- [@&#8203;ScottGarman](https://github.com/ScottGarman) made their
first contribution in
[https://github.com/metal-toolbox/ironlib/pull/159](https://github.com/metal-toolbox/ironlib/pull/159)

**Full Changelog**:
metal-toolbox/ironlib@v0.2.17...v0.2.18

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/metal-toolbox/vogelkop).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zOTMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjM5My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants