DMA allows coping data from the hard disk to the memory without passing it thought the CPU bottleneck. Enabling DMA increases hard disk access performance significant (using hdparm -tT > more than factor 10).
Enabling DMA is done with the hdparm command, but also the kernel has to be configured to support DMA and the DMA controller on the motherboard has to be selected.
hdparm /dev/hda shows data about your hard disk
hdparm -d /dev/hda shows DMA status
hdparm -d 1 /dev/hda turns DMA on
hdparm -d 0 /dev/hda turns DMA off
hdparm -i /dev/hda displays DMA mode info
hdparm -tT /dev/hda tests it
To create partitions the basic fdisk, or the bit advanced cfdisk, parted or sfdisk can be use. The hard disk is not allowed to be mounted and be aware when you write you loose your data.
To see what you have (before doing the damage) fdisk -l , parted -l, df -h or blkid lists all the devices.
For parted there is the GUI qtparted.
A typical sequence to partition ssd sd for a UEFI-only system not swapping to the SSD could look as follows:
parted
print devices
parted -a optimal /dev/sda
mklabel gpt
unit mib
mkpart primary 1 64 0 to 1 might be critical or / not possible and not per-formant
name 1 boot
mkpart primary 64 -1
name 2 rootfs
set 1 boot on
Model: Jmicron Corp. (scsi) Disk /dev/sdg: 114473MiB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1.00MiB 64.0MiB 63.0MiB boot boot, esp 2 64.0MiB 114472MiB 114408MiB rootfs
quit
mkfs.ext4 /dev/sdg2
mkfs.vfat /dev/sdg1
parted -l to list all the devices
parted /dev/sdb to start parted for working on /dev/sdb
Commands to be used within parted a command line prompt:
mklabel msdos or mklabel gtp to create partition tables
print to see what parted sees
select /dev/sdc to switch to /dev/sdc
resizepart to resize a partition
rm to remove partition
set boot to set partition flags as boot, swap, esp and others
e4defrag /home/user/directory/ defragments a directory
e4defrag /dev/sda5 defragments a disk
More advanced test programs as hdparm -tT /dev/hda are the classic bonnie or the C++ version bonnie++.
If you like to know where the big files and directories are that have filled up your hard disk:
emerge filelight
and you get a graphical picture of it
Show bad blocks: dumpe2fs -b /dev/hda3
Show superblock: dumpe2fs -h /dev/hda3
Show all stuff: dumpe2fs /dev/hda3
Show filesystem stuff: mke2fs -n /dev/hda3
To change the parameters for automatic testing use tune2fs -c or tune2fs -i
The following programs check the "unmounted" file systems. Boot from a live-CD as http://www.knopper.net/knoppix/ and run them:
A front end for various checkers: fsck /dev/hda3
Force check even it is clean: e2fsck -f /dev/hda3
Look for bad blocks: e2fsck -c /dev/hda3
Automatic repair: e2fsck -p /dev/hda3
Search for bad blocks (with the show option): badblocks -s /dev/hda3
A "mounted" filesystem can be checked using the readonly option -n:
e2fsck -n /dev/hda3
The ext3 file system has journaling function that should not require a manual check by definition.
The kjournal is a daemon doing the stuff in background.
To test the disk: emerge testdisk
Interesting to know is also how often your disk is accessed, the command vmstat -d will show that and can be used to move data from one disk to an other to e.g reduce write access to SSD devices.
e2label /dev/<disk> shows disk name on e2 partitions e2label /dev/<disk> <name> sets it
Check if your drive supports SMART hdparm -I /dev/<sd?>
| grep SMART, then emerge smartmontools and do
smartctl -i /dev/sda for get the info and smartctl -H /dev/sda to do the health test. To get all
kinds of stuff smartctl -A /dev/sda.
To do a self-test (you can still work normally with it)
smartctl -t short /dev/sda
When done
smartctl -l selftest /dev/sda
Desktop environment come also with GUI's as gnome-disk-utility