| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| linux:notes:drive_wipe [2024/09/10 16:18] – Sean Rhone | linux:notes:drive_wipe [2025/10/21 03:46] (current) – Sean Rhone |
|---|
| * Useful to perform before OS installations | * Useful to perform before OS installations |
| |
| * Ideally use [[linux;distros;opensuse_tumbleweed_gnome#gnome_live|openSUSE Tumbleweed's latest GNOME Live image]] on USB 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)) | * https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-XFCE-Live-x86_64-Current.iso |
| | |
| | https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-XFCE-Live-x86_64-Current.iso |
| | |
| | ====== Notes ====== |
| | |
| | * [[linux:notes:ufs_freebsd_mount|FreeBSD UFS mount]] (from Linux LiveUSB) |
| | * [[linux:notes:disk_gpt_format|Disk Format (GPT)]] |
| | * [[linux:notes:rsync_nas|Drive-to-drive rsync]] |
| |
| ====== Tools ====== | ====== Tools ====== |
| | |
| | **** |
| |
| <code>sudo zypper install 'nvme-cli' -y && sync</code> | <code>sudo zypper install 'nvme-cli' -y && sync</code> |
| |
| <code>sudo apt install 'nvme-cli' -y && sync</code> | ===== Dell Fan Speed ===== |
| | |
| | cat '/sys/firmware/acpi/platform_profile' && echo 'performance' | sudo tee '/sys/firmware/acpi/platform_profile' > '/dev/null' && cat '/sys/firmware/acpi/platform_profile' |
| | |
| | cat '/sys/firmware/acpi/platform_profile_choices' |
| | |
| | ==== Old ==== |
| | |
| | **** |
| |
| <code>sudo dnf install nvme-cli hdparm -y && sync</code> | sudo zypper install -y 'python3-smbios-utils' && sudo smbios-thermal-ctl --set-thermal-mode='performance' && sudo zypper remove --clean-deps 'python3-smbios-utils' |
| |
| ====== Suspend/Wake ====== | ====== Suspend/Wake ====== |
| ====== Drive Wipe ====== | ====== Drive Wipe ====== |
| |
| ===== Notes ===== | ===== NVMe ===== |
| |
| * 2024/05/02: TODO: Try ''nvme sanitize'' | ==== Check LBA Formats ==== |
| |
| ==== 4K Sectors ==== | * Switching is done with ''nvme format --lbaf=1'' |
| |
| * https://steamcommunity.com/discussions/forum/1/4739473745776804012/?tscn=1641033020#c3203747342915419588 | <code>sudo nvme id-ns '/dev/nvme0' --namespace-id='1' --human-readable</code> |
| * https://steamcommunity.com/discussions/forum/1/3203745634155479256 | |
| |
| * :!: Steam and Oculus were **known** to be broken with 4K sector size on Windows 11 | <code>sudo smartctl --all '/dev/nvme0'</code> |
| * Steam and Oculus worked 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 ===== | * This is using LBA Format ''0'' |
| | * Last tested: ''Samsung Electronics Co Ltd NVMe SSD Controller PM9A1/PM9A3/980PRO'' (only 1 LBA Format at ''512'') |
| |
| * :!: This is using LBA Format ''1'' for 4K sector size | <code>sudo blkdiscard --force --verbose '/dev/nvme0n1' && 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 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> | === Individual === |
| |
| <code>sudo blkdiscard --force --verbose '/dev/nvme0n1' && sync</code> | <code>sudo blkdiscard --force --verbose '/dev/nvme0n1'</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 nvme format '/dev/nvme0' --force --namespace-id='1' --lbaf='0' --reset --ses='1' --pil='0' --pi='0' --ms='0'</code> |
| |
| <code>sudo wipefs --all --force '/dev/nvme0n1'</code> | <code>sudo wipefs --all --force '/dev/nvme0n1'</code> |
| |
| ==== LBA 0 ==== | <code>sudo dd if='/dev/zero' of='/dev/nvme0n1' count='1024'</code> |
| |
| * :!: This is using LBA Format ''0'' for 512 sector size | ===== sda/b/c ===== |
| |
| <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> | ==== LBA Formats ==== |
| |
| <code>sudo nvme format '/dev/nvme0' --force --namespace-id='1' --lbaf='0' --reset --ses='1' --pil='0' --pi='0' --ms='0' && sync</code> | === Check === |
| |
| ===== nvme1 ===== | **** |
| |
| * :!: This is using LBA Format ''0'' | <code>sudo smartctl --all '/dev/sda'</code> |
| |
| <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> | === Switch === |
| |
| <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 hdparm --set-sector-size '4096' '/dev/sda'</code> |
| |
| <code>sudo wipefs --all --force '/dev/nvme1n1'</code> | ==== sda ==== |
| |
| ===== sda ===== | **** |
| |
| <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 --force --verbose '/dev/sda' && 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</code> | === Individual === |
| |
| <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 blkdiscard --force --verbose '/dev/sda'</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 hdparm --user-master u --security-set-pass 'x' '/dev/sda' && sudo hdparm --user-master u --security-erase 'x' '/dev/sda'</code> |
| | |
| | <code>sudo hdparm --user-master u --security-set-pass 'x' '/dev/sda' && sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sda'</code> |
| |
| <code>sudo wipefs --all --force '/dev/sda'</code> | <code>sudo wipefs --all --force '/dev/sda'</code> |
| |
| ===== sdb ===== | <code>sudo dd if='/dev/zero' of='/dev/sda' count='1024'</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> | ==== sdb ==== |
| |
| <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 blkdiscard --force --verbose '/dev/sdb' && 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 hdparm --user-master u --security-set-pass 'x' '/dev/sdb' && sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sdb' && sync</code> | === Individual === |
| |
| <code>sudo wipefs --all --force '/dev/sdb'</code> | <code>sudo blkdiscard --force --verbose '/dev/sdb'</code> |
| |
| ===== sdc ===== | <code>sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdb' && sudo hdparm --user-master u --security-erase 'x' '/dev/sdb'</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 hdparm --user-master u --security-set-pass 'x' '/dev/sdb' && sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sdb'</code> |
| |
| <code>sudo blkdiscard --force --verbose '/dev/sdc' && sync</code> | <code>sudo wipefs --all --force '/dev/sdb'</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 dd if='/dev/zero' of='/dev/sdb' count='1024'</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> | ====== Sector Size Notes ====== |
| |
| <code>sudo wipefs --all --force '/dev/sdc'</code> | ===== 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 worked 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|post]]) |
| |
| ====== Sector Size ====== | ===== Sector Size ===== |
| |
| * https://community.wd.com/t/sn550-why-it-uses-512b-sector-instead-of-4096/250724 | * https://community.wd.com/t/sn550-why-it-uses-512b-sector-instead-of-4096/250724 |
| * https://unix.stackexchange.com/questions/562571/switching-hdd-sector-size-to-4096-bytes | * 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 | * 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> | |
| |