Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision |
notes:drive_wipe [2020/12/01 09:17] – Sean Rhone | notes:drive_wipe [2023/09/08 20:32] – Sean Rhone |
---|
====== Nightwane ====== | ====== Information ====== |
| |
===== sda ===== | * Quick-commands to wipe drives and clear EFI variables |
| * Notably performs full-drive TRIMs for SSDs ([[https://wiki.archlinux.org/title/Solid_state_drive/Memory_cell_clearing|ArchWiki]]) |
| * Useful to perform before OS installations |
| |
* If ''119.2G'', is Linux main | * Ideally use [[distros:opensuse_tumbleweed_gnome#xfce|openSUSE Tumbleweed's latest XFCE image]] on LiveUSB due to it having up-to-date tools, a GUI, and USB data persistence ((can copy a command into Terminal and run it on one machine, boot the drive on another machine, and use Terminal history to re-run the command; it's quite convenient :p)) |
* If ''119.2G'', is SATA SSD | |
* See [[#sda1]] | |
| |
===== sdb ===== | ====== Tools ====== |
| |
* If ''931.5G'', is Windows storage | <code>sudo zypper install 'nvme-cli' -y && sync</code> |
* If ''931.5G'', is SATA HDD | |
* :!: Do not wipe this | |
* See [[#sdb1]] | |
| |
===== sdc ===== | <code>sudo apt install 'nvme-cli' -y && sync</code> |
| |
* If ''465.8G'', is Windows main | <code>sudo dnf install nvme-cli hdparm -y && sync</code> |
* If ''465.8G'', is SATA SSD | |
* See [[#sdc1]] | |
| |
====== Generic ====== | ====== Suspend/Wake ====== |
| |
===== Tools ===== | * Some motherboard firmware lock/freeze drives, and prevents some wipe commands from working |
| * Unlocking drives can be done with a suspend and wake |
| * :!: This applies to both SATA and NVMe drives |
| |
<code>sudo zypper install 'nvme-cli' -y && sync</code> | <code>sync && systemctl suspend</code> |
| |
<code>sudo apt install 'nvme-cli' -y && sync</code> | |
| |
<code>sudo dnf install 'hdparm' -y && sync</code> | |
| |
===== lsblk ===== | ====== lsblk ====== |
| |
* :!: **Always** check before running anything | * :!: **Always** check before running anything |
<code>lsblk</code> | <code>lsblk</code> |
| |
===== EFI Variables ===== | ====== EFI Variables ====== |
| |
**** | **** |
| |
<code>sudo rm -f '/sys/firmware/efi/efivars/'* || sync && sudo efibootmgr -v</code> | <code>sudo rm -f '/sys/firmware/efi/efivars/'* || sync && sudo efibootmgr -v</code> |
| |
| ====== Drive Wipe ====== |
| |
| ===== Notes ===== |
| |
| ==== 4K Sectors ==== |
| |
| * https://steamcommunity.com/discussions/forum/1/4739473745776804012/?tscn=1641033020#c3203747342915419588 |
| * https://steamcommunity.com/discussions/forum/1/3203745634155479256 |
| |
| * :!: Steam and Oculus were **known** to be broken with 4K sector size on Windows 11 |
| * Steam and Oculus work fine with 4K sector size on Windows 10 LTSC 2021 and Linux |
| * iTunes possibly fails with 4K sectors due to Bonjour and dnssd.dll ([[https://www.techpowerup.com/forums/threads/setting-4k-sector-size-on-nvme-ssds-does-performance-actually-change.289757/page-3#post-4981622|thread]]) |
| |
| * See [[#sector_size]] to check or switch to available sector disk formats |
| |
===== nvme0 ===== | ===== nvme0 ===== |
| |
<code>sudo blkdiscard --verbose '/dev/nvme0n1' && sync && sudo nvme format '/dev/nvme0' --reset --ses='1' --pil='0' --pi='0' --ms='0' && sudo rm -f '/sys/firmware/efi/efivars/'* || sync</code> | * :!: This is using LBA Format ''1'' for 4K sector size |
| |
<code>sudo blkdiscard --verbose '/dev/nvme0n1' && sync</code> | <code>sudo blkdiscard --force --verbose '/dev/nvme0n1' && sync && sudo nvme format '/dev/nvme0' --force --namespace-id='1' --lbaf='1' --reset --ses='1' --pil='0' --pi='0' --ms='0' && sudo rm -f '/sys/firmware/efi/efivars/'* || sync</code> |
| |
<code>sudo nvme format '/dev/nvme0' --reset --ses='1' --pil='0' --pi='0' --ms='0' && sync</code> | <code>sudo blkdiscard --force --verbose '/dev/nvme0n1' && sync</code> |
| |
| <code>sudo nvme format '/dev/nvme0' --force --namespace-id='1' --lbaf='1' --reset --ses='1' --pil='0' --pi='0' --ms='0' && sync</code> |
| |
<code>sudo wipefs --all --force '/dev/nvme0n1'</code> | <code>sudo wipefs --all --force '/dev/nvme0n1'</code> |
| |
| ==== 512e ==== |
| |
| <code>sudo blkdiscard --force --verbose '/dev/nvme0n1' && sync && sudo nvme format '/dev/nvme0' --force --namespace-id='1' --lbaf='0' --reset --ses='1' --pil='0' --pi='0' --ms='0' && sudo rm -f '/sys/firmware/efi/efivars/'* || sync</code> |
| |
| <code>sudo nvme format '/dev/nvme0' --force --namespace-id='1' --lbaf='0' --reset --ses='1' --pil='0' --pi='0' --ms='0' && sync</code> |
| |
| ===== nvme1 ===== |
| |
| <code>sudo blkdiscard --force --verbose '/dev/nvme1n1' && sync && sudo nvme format '/dev/nvme1' --force --namespace-id='1' --lbaf='0' --reset --ses='1' --pil='0' --pi='0' --ms='0' && sudo rm -f '/sys/firmware/efi/efivars/'* || sync</code> |
| |
| <code>sudo blkdiscard --force --verbose '/dev/nvme1n1' && sync</code> |
| |
| <code>sudo nvme format '/dev/nvme1' --force --namespace-id='1' --lbaf='0' --reset --ses='1' --pil='0' --pi='0' --ms='0' && sync</code> |
| |
| <code>sudo wipefs --all --force '/dev/nvme1n1'</code> |
| |
===== sda ===== | ===== sda ===== |
| |
<code>sudo blkdiscard --verbose '/dev/sda' && sync && sudo hdparm --user-master u --security-set-pass 'x' '/dev/sda' && sudo hdparm --user-master u --security-erase 'x' '/dev/sda' && sudo hdparm --user-master u --security-set-pass 'x' '/dev/sda' && sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sda' && sudo rm -f '/sys/firmware/efi/efivars/'* || sync</code> | <code>sudo blkdiscard --force --verbose '/dev/sda' && sync && sudo hdparm --user-master u --security-set-pass 'x' '/dev/sda' && sudo hdparm --user-master u --security-erase 'x' '/dev/sda' && sudo hdparm --user-master u --security-set-pass 'x' '/dev/sda' && sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sda' && sudo rm -f '/sys/firmware/efi/efivars/'* || sync</code> |
| |
<code>sudo blkdiscard --verbose '/dev/sda' && sync</code> | <code>sudo blkdiscard --force --verbose '/dev/sda' && sync</code> |
| |
<code>sudo hdparm --user-master u --security-set-pass 'x' '/dev/sda' && sudo hdparm --user-master u --security-erase 'x' '/dev/sda' && sync</code> | <code>sudo hdparm --user-master u --security-set-pass 'x' '/dev/sda' && sudo hdparm --user-master u --security-erase 'x' '/dev/sda' && sync</code> |
===== sdb ===== | ===== sdb ===== |
| |
<code>sudo blkdiscard --verbose '/dev/sdb' && sync && sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdb' && sudo hdparm --user-master u --security-erase 'x' '/dev/sdb' && sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdb' && sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sdb' && sudo rm -f '/sys/firmware/efi/efivars/'* || sync</code> | <code>sudo blkdiscard --force --verbose '/dev/sdb' && sync && sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdb' && sudo hdparm --user-master u --security-erase 'x' '/dev/sdb' && sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdb' && sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sdb' && sudo rm -f '/sys/firmware/efi/efivars/'* || sync</code> |
| |
<code>sudo blkdiscard --verbose '/dev/sdb' && sync</code> | <code>sudo blkdiscard --force --verbose '/dev/sdb' && sync</code> |
| |
<code>sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdb' && sudo hdparm --user-master u --security-erase 'x' '/dev/sdb' && sync</code> | <code>sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdb' && sudo hdparm --user-master u --security-erase 'x' '/dev/sdb' && sync</code> |
===== sdc ===== | ===== sdc ===== |
| |
<code>sudo blkdiscard --verbose '/dev/sdc' && sync && sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdc' && sudo hdparm --user-master u --security-erase 'x' '/dev/sdc' && sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdc' && sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sdc' && sudo rm -f '/sys/firmware/efi/efivars/'* || sync</code> | <code>sudo blkdiscard --force --verbose '/dev/sdc' && sync && sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdc' && sudo hdparm --user-master u --security-erase 'x' '/dev/sdc' && sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdc' && sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sdc' && sudo rm -f '/sys/firmware/efi/efivars/'* || sync</code> |
| |
<code>sudo blkdiscard --verbose '/dev/sdc' && sync</code> | <code>sudo blkdiscard --force --verbose '/dev/sdc' && sync</code> |
| |
<code>sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdc' && sudo hdparm --user-master u --security-erase 'x' '/dev/sdc' && sync</code> | <code>sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdc' && sudo hdparm --user-master u --security-erase 'x' '/dev/sdc' && sync</code> |
===== sdd ===== | ===== sdd ===== |
| |
<code>sudo blkdiscard --verbose '/dev/sdd' && sync && sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdd' && sudo hdparm --user-master u --security-erase 'x' '/dev/sdd' && sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdd' && sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sdd' && sudo rm -f '/sys/firmware/efi/efivars/'* || sync</code> | <code>sudo blkdiscard --force --verbose '/dev/sdd' && sync && sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdd' && sudo hdparm --user-master u --security-erase 'x' '/dev/sdd' && sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdd' && sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sdd' && sudo rm -f '/sys/firmware/efi/efivars/'* || sync</code> |
| |
<code>sudo blkdiscard --verbose '/dev/sdd' && sync</code> | <code>sudo blkdiscard --force --verbose '/dev/sdd' && sync</code> |
| |
<code>sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdd' && sudo hdparm --user-master u --security-erase 'x' '/dev/sdd' && sync</code> | <code>sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdd' && sudo hdparm --user-master u --security-erase 'x' '/dev/sdd' && sync</code> |
| |
<code>sudo wipefs --all --force '/dev/sdd'</code> | <code>sudo wipefs --all --force '/dev/sdd'</code> |
| |
| ====== Sector Size ====== |
| |
| * https://community.wd.com/t/sn550-why-it-uses-512b-sector-instead-of-4096/250724 |
| * https://filers.blogspot.com/2018/12/how-to-format-nvme-drive.html |
| * https://wiki.archlinux.org/title/Advanced_Format |
| * https://unix.stackexchange.com/questions/562571/switching-hdd-sector-size-to-4096-bytes |
| * https://www.thomas-krenn.com/en/wiki/Advanced_Sector_Format_of_Block_Devices |
| |
| ===== NVMe ===== |
| |
| <code>sudo nvme id-ns '/dev/nvme0' --namespace-id='1' --human-readable</code> |
| |
| <code>sudo smartctl --all '/dev/nvme0'</code> |
| |
| ===== sda ===== |
| |
| <code>sudo smartctl --all '/dev/sda1'</code> |
| |
| <code>sudo hdparm --set-sector-size '4096' '/dev/sda'</code> |
| |