SG_WRITE_SAME(8) SG3_UTILS SG_WRITE_SAME(8) (NAME) sg_write_same - SCSI WRITE SAME (SYNOPSIS) sg_write_same [--10] [--16] [--32] [--anchor] [--ff] [--grpnum=GN] [--help] [--in=IF] [--lba=LBA] [--lbdata] [--num=NUM] [--ndob] [--pbdata] [--timeout=TO] [--unmap] [--verbose] [--version] [--wrprotect=WPR] [--xferlen=LEN] DEVICE (DESCRIPTION) SCSI WRITE SAME ( ) DEVICE . NUM DEVICE LBA . LEN IF READ CAPACITY(16) DEVICE . IF . READ CAPACITY(16) ( IF ) PROT_EN ( ) 0xff . READ CAPACITY(16) READ CAPACITY(10) . --10 --16 --32 WRITE SAME(10) : LBA ( NUM) NUM --unmap WRITE SAME(16) . --10 --16 --32 . 35d SBC-3 << >> (No Data-Out Buffer NDOB) DEVICE . WRITE SAME ( ) NDOB . 0xff . SBC-3 UNMAP ANCHOR WRITE SAME (10) . UNMAP SBC-3 WRITE SAME (16) WRITE SAME (32) --unmap ( WRITE SAME (16)) . WRITE SAME (10) --10 . : WRITE SAME(10, 16 and 32) NUM DEVICE . NUM 1 . WRITE SAME IMMED NUM ( ) FORMAT UNIT. TO . SBC-3 WSNZ ( write same no zero) VPD [0xB0] . WRITE SAME NUM . SBC-3 "Maximum Write Same Length" VPD . VPD (Logical Block Provisioning 0xB2) LBPWS LBPWS10 . LBPWS WRITE SAME (16) UNMAP . LBPWS10 WRITE SAME (10) UNMAP . LBPWS LBPWS10 WRITE SAME (32) WRITE SAME (32) UNMAP . 'sg_write_same /dev/sda' LBA 0 /dev/sda --in=IF --lba=LBA --num=NUM . . (OPTIONS) . . -R, --10 SCSI WRITE SAME (10) DEVICE. --unmap ( --anchor) SBC-3 . -S, --16 SCSI WRITE SAME (16) DEVICE. -T, --32 SCSI WRITE SAME (32) DEVICE. -a, --anchor ANCHOR cdb. SBC-3 . --unmap . -f, --ff (data-out) 0xff . -g, --grpnum=GN 'Group number' GN . . GN 0 63 . -h, --help . -i, --in=IF () IF data-out SCSI WRITE SAME. --xferlen=LEN IF . IF "-" (stdin) . --ff 0x00 data-out --xferlen=LEN READ CAPACITY(16 or 10) . READ CAPACITY(16) PROT_EN data-out 0xff . -l, --lba=LBA LBA WRITE SAME . lba 0 . '0x' 'h' . -L, --lbdata LBDATA cdb WRITE SAME . sbc3r32 . -N, --ndob NDOB WRITE SAME ( ) . NDOB No Data-Out Buffer . . --in=IF --xferlen=LEN LEN 0 . << >> (provisioning initialization pattern) . -n, --num=NUM NUM LBA data-out . NUM 1 . 'Number of logical blocks' cdb WRITE SAME . 0 NUM data-out LBA DEVICE . WSNZ ( sbc3r26 ) VPD 0 Invalid request . -P, --pbdata PBDATA cdb WRITE SAME . sbc3r32 . -t, --timeout=TO TO ( ) . . NUM ( ) WRITE SAME . -U, --unmap UNMAP cdb WRITE SAME(10, 16 and 32) . UNMAP . -v, --verbose ( ). -V, --version . -w, --wrprotect=WPR "Write protect" cdb WRITE SAME WPR . . WPR 0 7 . WPR 1 1 ( data-out ). -x, --xferlen=LEN LEN data-out . IF READ CAPACITY(16 or 10) ' ' . DEVICE 1 WRPROTECT ( --wrprotect=WPR ) 1 . IF LEN IF LEN data-out (pad) . (UNMAP) (Logical block provisioning) SBC-3 . READ CAPACITY WRITE . ( SSD) ( ) ( ) . SSD (wear levelling) (over provision) . LBPME READ CAPACITY(16) ( sg_readcap ). UNMAP WRITE SAME(16) . UNMAP "Maximum unmap LBA count" "Maximum unmap block descriptor count" VPD . READ CAPACITY(16) LBPRZ ( 0xff ). SBC-3 LBPRZ VPD . SBC-3 LBPU ANC_SUP VPD . LBPU UNMAP ( sg_unmap ). ANC_SUP LBA (anchored) . UNMAP cdb data-out . data-out 0x0 ( ) 0xff . LBPRZ UNMAP data-out DEVICE UNMAP . --in=IF data-out UNMAP cdb DEVICE . SCSI UNMAP FORMAT UNIT ( sg_unmap sg_format ). unmap SCSI ATA DATA SET MANAGEMENT "Trim" . ATA SATA NCQ . T13 SFQ DATA SET MANAGEMENT "Trim" . SCSI WRITE SAME UNMAP UNMAP SCSI . (NOTES) ( LBA) . "NUMERIC ARGUMENTS" sg3_utils(8) . 3.17 sg cdb . /dev/sg1 sg --32 ( ) . bsg /dev/bsg/6:0:0:1 2.6.28 cdb . (EXIT STATUS) sg_write_same 0 . sg3_utils(8) . (EXAMPLES) : ! LBA ( ) : sg_write_same --lba=0x1234 --num=63 /dev/sdc --xferlen=LEN READ CAPACITY /dev/sdc . . --in=IF . ( ) LBA 0x1234 ( ) . data-out SCSI WRITE SAME ( SBC-3 ). SCSI WRITE SAME NVMe Write Zeroes . . [ (sanitize) ]: sg_write_same --lba=0x0 --num=0 /dev/sdc --num=0 . WSNZ VPD . : sg_write_same --lba=0x0 --ndob /dev/sdc data-out . << >> . << >> ( ATA <<>> ): sg_write_same --unmap -L 0x1234 -n 63 /dev/sdc LBPRZ READ CAPACITY(16) ( logical block provisioning read zeros) . (PI) . PI : CRC ( "guard") "application tag" "reference tag" . application tag 0xffff guard ( ) . ( ) . LBA 2468 : dd if=/dev/sdb skip=2468 bs=512 of=2468.bin count=1 PI 0xFF LBA 2468 : sg_write_same --lba=2468 /dev/sdb application tag 0xffff (CRC) ( ): dd if=/dev/sdb skip=2468 bs=512 of=/dev/null count=1 0x0000 application tag 0xff PI . 0xff ( ) "tr" : dd if=/dev/zero bs=1 count=512 of=ud.bin tr "\000" "\377" < /dev/zero | dd bs=1 of=ff_s.bin count=8 cat ud.bin ff_s.bin > lb.bin dd if=/dev/zero bs=1 count=2 seek=514 conv=notrunc of=lb.bin 'hexdump -C lb.bin' . LBA 2468 : sg_write_same --lba=2468 wrprotect=3 --in=lb.bin /dev/sdb --wrprotect=3 1 WRITE SAME PI . LBA : dd if=/dev/sdb skip=2468 bs=512 of=/dev/null count=1 dd dmesg : "[sdb] Add. Sense: Logical block guard check failed". "sg_write_same --lba=1234 /dev/sdb" LBA : dd if=2468.bin bs=512 seek=2468 of=/dev/sdb conv=notrunc count=1 dd (truncate) . (AUTHORS) Douglas Gilbert. (REPORTING BUGS) . (COPYRIGHT) (C) 2009-2020 Douglas Gilbert BSD-2-Clause . . (SEE ALSO) sg_format,sg_get_lba_status,sg_readcap,sg_vpd,sg_unmap, sg_write_x(sg3_utils) sg3_utils-1.45 June 2020 SG_WRITE_SAME(8)