Last Sync: 2022-06-11 20:30:03

This commit is contained in:
tactonbishop 2022-06-11 20:30:03 +01:00
parent 24980e4447
commit e399738bdf
2 changed files with 58 additions and 2 deletions

View file

@ -6,10 +6,10 @@ tags:
# Devices
Devices are hardware that require access to the CPU in order to function. Devices can either be external and pluged-in or internal to the motherboard. The most common type of device that you will work with are
Devices are hardware that require access to the CPU in order to function. Devices can either be external and plugded-in or internal to the motherboard. The most common type of device that you will work with are
[disks](./Disks.md).
Devices are files but they have some different capabilities that ordinary files. There are two types: **block** and **stream**. Device files reside in the `/dev/` directory.
Devices are files but they have some different capabilities than ordinary files. There are two types: **block** and **stream**. Device files reside in the `/dev/` directory.
Some of the most important device files are:
* `hda` : a harddisk on a port

View file

@ -5,3 +5,59 @@ tags:
---
# Disks
A disk is a mass storage [device](./Devices.md) which we can write to and read from.
## SCSI
* Small Computer System Interface
* Pronounced _scuzzy_.
* It is a protocol that allows communicaton between printers, scanners and other peripherals in addition to harddisks.
* The `/sda/` device that is the most common designation for the harddisk in Linux systems stands for *SCSI disk*.
## Disk schematic
The following diagram represents the basic anatomy of a disk device.
* A disk is divided up into *partitions* which are subsections of the overall disk. The kernel presents each partition as a [block device](./Devices.md#Devices.md) as it would with an entire disk.
* The disk dedicates a small part of its contents to a *partition table*: this defines the different partitions that comprise the total disk space.
* The *filesystem* is a database of files and directories: this comprises the bulk of the partition and is of course what you interact with in [user space](./User_Space.md) when reading and writing data.
## Partitioning disks
### Viewing current partitions
Whenever you install a Linux distribution on a real or virtual machine, you must partition the drive. There are three main tools that people choose from: `parted`, `g(raphical)parted`, `fdisk`.
We can use `parted -l` to view the partition table for the current machine:
```bash
Model: SKHynix_HFS512GDE9X081N (nvme)
Disk /dev/nvme0n1: 512GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 513MB 512MB fat32 boot, esp
2 513MB 30.5GB 30.0GB ext4
3 30.5GB 512GB 482GB ext4
```
We can use `fdisk -l` to get slightly more info:
```bash
disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: SKHynix_HFS512GDE9X081N
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 08175E77-CB9F-C34A-9032-DF29A3F8F0FE
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 1001471 999424 488M EFI System
/dev/nvme0n1p2 1001472 59594751 58593280 27.9G Linux filesystem
/dev/nvme0n1p3 59594752 1000214527 940619776 448.5G Linux filesystem
```
So my main harddrive is `/dev/nvme0n1` and it has the standard three partitions:
* Boot partition (`/dev/nvme0n1p1`)
* Root dir (`/dev/nvme0n1p2`)
* Home dir (`/dev/nvme0n1p3`)