Linux

SSD 자동 인식

리눅스에서 ssd에 파일을 저장하는 프로그램을 만들다가 자동으로 ssd를 인식하고 포맷 후 마운트 하는 작업이 필요하여 만들게 되었다.

 

fdisk 를 이용해서 구성할려고 하였지만 사용중인 SSD가 4TB 이기 때문에 parted 프로그램을 사용하였다.

 

*fdisk는 MBR 방식이기 때문에 디스크의 사이즈가 2TB가 넘어가면 용량을 2TB 까지 밖에 사용을 못합니다. 때문에 2TB 이상의 스토리지를 사용할 때는 MBR 방식 대신 GPT 방식을 사용해주어야 합니다.

#!/bin/bash

# Installed Parted Checking
if which parted >/dev/null; then
	echo "parted cli already installed!!!"

	for i in a b
	do
	if [ -b /dev/sd$i  ]; then			# 장치가 있으면
		for j in 1
		do
		if [ -b /dev/sd$i$j  ]; then		# 파티션이 있으면
			echo "/dev/sd$i$j Partition exist"
		else
			# Disk Repartition
			sudo parted --script /dev/sd$i mklabel gpt mkpart primary ext4 1049kb 100%

			# Disk Format -- Force
			sudo mkfs.ext4 -F /dev/sd$i$j

			# Change Disk's Reserved Blocks Setting To 0
			sudo tune2fs -m 0 /dev/sd$i$j

			# Making Directories
			sudo mkdir -p /mnt/sd$i$j

			### Mounting Target_disk
			sudo mount /dev/sd$i$j /mnt/sd$i$j
		fi
        	sudo mount /dev/sd$i$j /mnt/sd$i$j
		done
	else
		echo "/dev/sd$i No Init Device"
		exit 0
	fi
	done
else
	echo "install parted"
	apt -y install parted
fi

프로그램에 대해 간단히 설명 하자면 SSD 장착 후 뜨는 /des/sdx 를 감지합니다. 그 안에 partion이 존재하면 프로그램을 빠져나오고 존재하지 않을 경우 partion 작업을 수행 후 mount 작업을 진행해줍니다.

'Linux' 카테고리의 다른 글

PCIe ASPM Error  (0) 2023.07.02
i2c-tools  (0) 2023.01.28
리눅스 커널 소스의 구조  (0) 2022.12.03
Memory mapping  (0) 2022.11.27
CANdevStudio  (0) 2022.05.19