User Tools

Site Tools


notes:drive_wipe

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
notes:drive_wipe [2020/12/01 09:12] Sean Rhonenotes:drive_wipe [2023/09/09 05:17] (current) Sean Rhone
Line 1: Line 1:
-====== 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>+====== lsblk ======
  
-<code>sudo dnf install 'hdparm' -y && sync</code>+  * :!: **Always** check before running anything 
 +  * :!: Assume nothing; all commands below are **immediately destructive** on the block device they're ran on
  
-===== EFI Variables =====+<code>lsblk</code> 
 + 
 +====== 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 --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 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> 
 + 
 +==== LBA 0 ==== 
 + 
 +  * :!: This is using LBA Format ''0'' for 512 sector size 
 + 
 +<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 ===== 
 + 
 +  * :!: This is using LBA Format ''0'' 
 + 
 +<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 --verbose '/dev/nvme0n1' && sync</code>+<code>sudo blkdiscard --force --verbose '/dev/nvme1n1' && sync</code>
  
-<code>sudo nvme format '/dev/nvme0' --reset --ses='1' --pil='0' --pi='0' --ms='0' && 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/nvme0n1'</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>
Line 56: Line 93:
 <code>sudo hdparm --user-master u --security-set-pass 'x' '/dev/sda' && sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sda' && sync</code> <code>sudo hdparm --user-master u --security-set-pass 'x' '/dev/sda' && sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sda' && sync</code>
  
-<code>sudo wipefs -all --force '/dev/sda'</code>+<code>sudo wipefs --all --force '/dev/sda'</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>
Line 68: Line 105:
 <code>sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdb' && sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sdb' && sync</code> <code>sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdb' && sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sdb' && sync</code>
  
-<code>sudo wipefs -all --force '/dev/sdb'</code>+<code>sudo wipefs --all --force '/dev/sdb'</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>
Line 80: Line 117:
 <code>sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdc' && sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sdc' && sync</code> <code>sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdc' && sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sdc' && sync</code>
  
-<code>sudo wipefs -all --force '/dev/sdc'</code>+<code>sudo wipefs --all --force '/dev/sdc'</code>
  
-===== sdd =====+====== Sector Size ======
  
-<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>+  * 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
  
-<code>sudo blkdiscard --verbose '/dev/sdd&& sync</code>+===== NVMe ===== 
 + 
 +<code>sudo nvme id-ns '/dev/nvme0' --namespace-id='1' --human-readable</code> 
 + 
 +<code>sudo smartctl --all '/dev/nvme0'</code> 
 + 
 +===== sda =====
  
-<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 smartctl --all '/dev/sda1'</code>
  
-<code>sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdd' && sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sdd&& sync</code>+<code>sudo hdparm --set-sector-size '4096' '/dev/sda'</code>
  
-<code>sudo wipefs -all --force '/dev/sdd'</code> 
/var/www/wiki/data/attic/notes/drive_wipe.1606831940.txt.gz · Last modified: 2020/12/01 09:12 by Sean Rhone