- 2014.12.01
1. HDD & partition
[Partition]
파티션에는 크게 3종류가 있다.
1) Primary partition
주 파티션 : 최대 4개까지 가능
2) Extended partition
확장 파티션 : 주 파티션 1개를 빌려와 확장시켜주는 역할. (과일바구니의 바구니 역할)
3) Logical partition
논리 파티션 : 확장 파티션 안에 구성되는 파티션. 무한개로 생성 가능하다.
ex) 파티션 6개가 필요한 경우
주 파티션 3개를 만들고 나머지 파티션 전체를 확장 파티션으로 만든다. 그 뒤 확장 파티션에 필요한 만큼 논리 파티션으로 만든다.
[HDD Type]
1) IDE(병렬)
hd + 문자 : hda, hdb, hdc, hdd ...
-----> CD-Rom
2) SCSI(직렬)
sd + 문자 : sda, sdb, sdc, sdd ...
[Partition Type]
1) IDE(병렬)
hd + 문자 + 숫자 : hda1, hde4, hdf7 ...
2) SCSI(직렬)
sd + 문자 + 숫자 : sda3, sde5, sdc6 ...
ex)
sde 1 | 2 | 3 | 4
hdb 1 | 2 | 3 | 4(E) - 5(L)
sdf 1 | 2(E) - 5(L) | 2(E) - 6(L) | 2(E) - 7(L)
※ Logical Partition은 5번부터 시작한다.
2. MBR
모든 파티션에는 BR(Boot Record)가 있어 파티션 내의 정보들을 담고 있다.
특별히 OS 에는 MBR이 있어 파티션이 OS가 없는 파티션의 BR과 정보를 공유하는 역할을 한다.
ex)
USB를 꽂으면 USB 파티션의 BR 이 OS 의 MBR과 정보 교환이 일어나 OS에 있는 프로그램을 이용하여 USB 내의 파일을 읽을 수 있다.
MBR은 512kb 의 용량을 갖고 있으며 grub 로 설정 변경이 가능하다.
3. HDD 추가 및 설정
1) VM 에서 HDD 추가
2) 추가된 HDD 확인
# fdisk -l
=> VM에서 추가한 HDD를 확인한다. 나의 경우에는 sda 이다.
# fdisk /dev/sda
=> sda 하드에 대한 fdisk 메뉴 접근
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition -> 삭제
l list known partition types
m print this menu -> 도움말
n add a new partition -> 생성
o create a new empty DOS partition table
p print the partition table -> 확인
q quit without saving changes -> 저장 하지 않고 종료
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit -> 저장하고 종료
x extra functionality (experts only)
Command (m for help): p
Disk /dev/sda: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x1f71f85f
Device Boot Start End Blocks Id System
=> 새로 추가된 하드이기 때문에 어떠한 파티션도 나타나지 않는다.
3) 새로운 파티션 생성
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-130, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130): +500M
=> default 값인 1부터 몇개의 실린더를 사용할지 적어도 되지만
+와 단위를 붙여 사이즈 크기로 잡을 수도 있다.
Command (m for help): p
Disk /dev/sda: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x1f71f85f
Device Boot Start End Blocks Id System
/dev/sda1 1 65 522081 83 Linux
=> 약 500M로 파티션이 나눠진 것을 확인 할 수 있다.
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
# fdisk -l /dev/sda
Disk /dev/sda: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x1f71f85f
Device Boot Start End Blocks Id System
/dev/sda1 1 65 522081 83 Linux
=> 약 500M의 파티션이 생성된 것 확인
4) 파일 시스템 생성
mkfs : make file system
Cent5.x : # mkfs.ext3 /dev/hda1 (or) mkfs -t ext3 /dev/hda1
Cent6.x : # mkfs.ext4 /dev/sda1 (or) mkfs -t ext4 /dev/sda1
[포맷 실습]
# mkfs.ext4 /dev/sda1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
130560 inodes, 522080 blocks
26104 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67633152
64 block groups
8192 blocks per group, 8192 fragments per group
2040 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 20 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
=> 3번의 done 이 나오면 포맷 성공
4. 마운트
어떤 파일 시스템을 디렉터리 일부에 넣어서 이용가능하게 하는 작업.
하나의 파티션을 하위 디렉터리처럼 쓰는 것을 마운트라 한다.
# mount /dev/sda1 /m.p(mount point)
# unmout /dev/sda1 or /m.p
[실습]
# mkdir /mnt/cdrom/ /linuxtest/
/mnt/cdrom/ 에는 testfile1 을, /linuxtest/ 에는 testfile2 를 생성
# touch /mnt/cdrom/testfile1 /linuxtest/testfile2
VMware 프로그램에서 CD-ROM에 이미지 삽입
# ls -l /dev/hd*
ls: cannot access /dev/hd*: 그런 파일이나 디렉터리가 없습니다
=> 원래는 hd3 가 cdrom 전용 하드였는데 CentOS 6 으로 올라오면서 hd 는 없어졌다.
# ls -l /dev/cdrom
lrwxrwxrwx 1 root root 3 2014-12-01 13:38 /dev/cdrom -> sr0
=> /dev/cdrom 에 보니 sr0 으로 심볼릭 링크 되어있는 것 확인할 수 있다.
# mount /dev/cdrom /mnt/cdrom
mount: block device /dev/sr0 is write-protected, mounting read-only
=> #mount /dev/sr0 과 같은 명령어이며 /mnt/cdrom 디렉터리에 읽기 전용으로 마운트 되었다.
- 교재 108p, 마운트 되어 있는 상태 보여주는 명령어
# mount
/dev/sdb7 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sdb1 on /boot type ext4 (rw)
/dev/sdb6 on /home type ext4 (rw)
/dev/sdb2 on /usr type ext4 (rw)
/dev/sdb5 on /var type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
vmware-vmblock on /var/run/vmblock-fuse type fuse.vmware-vmblock (rw,nosuid,nodev,default_permissions,allow_other)
/dev/sr0 on /mnt/cdrom type iso9660 (ro)
=> 하지만 보기 불편하다.
보기 좋은 다른 명령어
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb7 7.6G 316M 6.9G 5% /
tmpfs 504M 72K 504M 1% /dev/shm
/dev/sdb1 190M 26M 155M 15% /boot
/dev/sdb6 190M 18M 163M 10% /home
/dev/sdb2 5.7G 3.1G 2.3G 58% /usr
/dev/sdb5 1.9G 175M 1.7G 10% /var
/dev/sr0 3.8G 3.8G 0 100% /mnt/cdrom
# ls -l /mnt/cdrom
합계 562
-r--r--r-- 2 root root 14 2014-10-24 22:59 CentOS_BuildTag
-r--r--r-- 2 root root 212 2013-11-27 18:36 EULA
-r--r--r-- 2 root root 18009 2013-11-27 18:36 GPL
dr-xr-xr-x 2 root root 534528 2014-10-24 23:16 Packages
-r--r--r-- 2 root root 1354 2014-10-20 00:59 RELEASE-NOTES-en-US.html
-r--r--r-- 2 root root 1706 2013-11-27 18:36 RPM-GPG-KEY-CentOS-6
-r--r--r-- 2 root root 1730 2013-11-27 18:36 RPM-GPG-KEY-CentOS-Debug-6
-r--r--r-- 2 root root 1730 2013-11-27 18:36 RPM-GPG-KEY-CentOS-Security-6
-r--r--r-- 2 root root 1734 2013-11-27 18:36 RPM-GPG-KEY-CentOS-Testing-6
-r--r--r-- 1 root root 3165 2014-10-24 23:17 TRANS.TBL
dr-xr-xr-x 3 root root 2048 2014-10-24 23:17 images
dr-xr-xr-x 2 root root 2048 2014-10-24 23:12 isolinux
dr-xr-xr-x 2 root root 4096 2014-10-24 23:17 repodata
=> 마운트 했기 때문에 아까 생성한 testfile1 이 보이질 않는다. 언마운트 하면 다시 보인다.
# umount /dev/sr0
=> 혹은 # umount /mnt/cdrom
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb7 7.6G 316M 6.9G 5% /
tmpfs 504M 72K 504M 1% /dev/shm
/dev/sdb1 190M 26M 155M 15% /boot
/dev/sdb6 190M 18M 163M 10% /home
/dev/sdb2 5.7G 3.1G 2.3G 58% /usr
/dev/sdb5 1.9G 175M 1.7G 10% /var
# ll /mnt/cdrom
합계 0
-rw-r--r-- 1 root root 0 2014-12-01 14:17 testfile1
=> 언마운트 하니 다시 tesetfile1 이 보여지는 것을 확인할 수 있다.
[실습]
내가 만든 파티션을 /mnt/cdrom에 마운트
# fdisk -l /dev/sda
Disk /dev/sda: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x1f71f85f
Device Boot Start End Blocks Id System
/dev/sda1 1 65 522081 83 Linux
# mount /dev/sda1 /mnt/cdrom
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb7 7.6G 316M 6.9G 5% /
tmpfs 504M 72K 504M 1% /dev/shm
/dev/sdb1 190M 26M 155M 15% /boot
/dev/sdb6 190M 18M 163M 10% /home
/dev/sdb2 5.7G 3.1G 2.3G 58% /usr
/dev/sdb5 1.9G 175M 1.7G 10% /var
/dev/sda1 486M 2.3M 458M 1% /mnt/cdrom
/mnt/cdrom/ 에 testfile3 를 생성한뒤 언마운트 하여 이 파일이 정확히 어디에 생성되는지 확인
# touch /mnt/cdrom/testfile3
# umount /dev/sda1
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb7 7.6G 316M 6.9G 5% /
tmpfs 504M 72K 504M 1% /dev/shm
/dev/sdb1 190M 26M 155M 15% /boot
/dev/sdb6 190M 18M 163M 10% /home
/dev/sdb2 5.7G 3.1G 2.3G 58% /usr
/dev/sdb5 1.9G 175M 1.7G 10% /var
=> 언마운트 된 것 확인
해당 파티션을 /linuxtest 에 재 마운트 시켜 testfile3 의 존재를 확인
# ll /linuxtest
합계 0
-rw-r--r-- 1 root root 0 2014-12-01 14:17 testfile2
# mount /dev/sda1 /linuxtest
# ll /linuxtest/
합계 12
drwx------ 2 root root 12288 2014-12-01 14:07 lost+found
-rw-r--r-- 1 root root 0 2014-12-01 14:37 testfile3
=> 파티션에 testfile3 에 있는걸 확인가능
동시에 2곳에 마운트 시키기
# mount /dev/sda1 /mnt/cdrom
# ll /mnt/cdrom
합계 12
drwx------ 2 root root 12288 2014-12-01 14:07 lost+found
-rw-r--r-- 1 root root 0 2014-12-01 14:37 testfile3
새로운 testfile4 생성
# touch /mnt/cdrom/testfile4
# ll /linuxtest/
합계 12
drwx------ 2 root root 12288 2014-12-01 14:07 lost+found
-rw-r--r-- 1 root root 0 2014-12-01 14:37 testfile3
-rw-r--r-- 1 root root 0 2014-12-01 14:40 testfile4
=> /mnt/cdrom/ 에 만든 파일이 /linuxtest/ 에도 있다. 같은 파티션을 다른 곳에 마운트 시키면 공유된다.
하지만 잘 사용하지 않는다.
[실습]
Extened partition 및 logical partition 만들기
# fdisk /dev/sda
...
Command (m for help): p
...
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 2
First cylinder (66-130, default 66):
Using default value 66
Last cylinder, +cylinders or +size{K,M,G} (66-130, default 130): +300M
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (66-104, default 66):
Using default value 66
Last cylinder, +cylinders or +size{K,M,G} (66-104, default 104):
=> 남은 용량을 모두 쓸 맨 마지막 파티션은 사이즈를 적지 말고 그냥 엔터를 누른다.
Using default value 104
Command (m for help):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: 장치나 자원이 동작 중.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
=> The new table will be used at the next reboot : 재시작 해야 적용됨
=> 이 메세지가 나오면 재시작 필요.
포맷 명령어가 안되는 것을 확인할 수 있다.
# mkfs.ext4 /dev/sda5
mke2fs 1.41.12 (17-May-2010)
Could not stat /dev/sda5 --- 그런 파일이나 디렉터리가 없습니다
The device apparently does not exist; did you specify it correctly?
재부팅
# init 6
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb7 7.6G 316M 6.9G 5% /
tmpfs 504M 72K 504M 1% /dev/shm
/dev/sdb1 190M 26M 155M 15% /boot
/dev/sdb6 190M 18M 163M 10% /home
/dev/sdb2 5.7G 3.1G 2.3G 58% /usr
/dev/sdb5 1.9G 176M 1.7G 10% /var
=> 마운트 된 것이 없어졌다. 즉 mount 명령어를 통한 마운트는 필요할 때 잠깐 쓰는 방법.
# mount /dev/sda1 /mnt/cdrom
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb7 7.6G 316M 6.9G 5% /
tmpfs 504M 72K 504M 1% /dev/shm
/dev/sdb1 190M 26M 155M 15% /boot
/dev/sdb6 190M 18M 163M 10% /home
/dev/sdb2 5.7G 3.1G 2.3G 58% /usr
/dev/sdb5 1.9G 175M 1.7G 10% /var
/dev/sda1 486M 2.3M 458M 1% /mnt/cdrom
# mount /dev/sda5 /linuxtest/
mount: you must specify the filesystem type
=> sda1은 마운트 되지만 sda5는 운트 안됨. 포맷 되지 않았다(filesystem type을 결정하라)는 에러
# mkfs.ext4 /dev/sda5
...
# mount /dev/sda5 /linuxtest/
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb7 7.6G 316M 6.9G 5% /
tmpfs 504M 72K 504M 1% /dev/shm
/dev/sdb1 190M 26M 155M 15% /boot
/dev/sdb6 190M 18M 163M 10% /home
/dev/sdb2 5.7G 3.1G 2.3G 58% /usr
/dev/sdb5 1.9G 175M 1.7G 10% /var
/dev/sda1 486M 2.3M 458M 1% /mnt/cdrom
/dev/sda5 289M 2.1M 271M 1% /linuxtest
=> 정상적으로 마운트 된 것을 확인할 수 있다.
* mount시 유의사항
1. mount point 는 임의의 디렉터리여야 한다.
사용자 및 시스템과 관련된 디렉터리를 mount point로 지정해서는 절대 안된다.
2. umount 명령 시 경로는 현재 마운트된 디렉터리만 아니면 어떤 곳이든 상관 없다.
3. 한개의 파티션은 반드시 한개의 mount point 만 사용한다.
4. 마운트시 작업할 대상은 반드시 파티션(Primary, Logical)만 대상이 된다.
하드디스크와 확장파티션(Extended)은 작업대상이 될 수 없다.
ex 2)
# cd /mnt/cdrom
# umount /mnt/cdrom
umount: /mnt/cdrom: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
=> 마운트된 디렉터리에선 umount가 되지 않는다.
[문제]
기존에 작업했던 mp 및 하드를 제거하고
새롭게 ide 하드와 mp를 만들어서
방금 전에 했던 작업을 해보세요
primary 500M -> /linuxtext
logical 200M -> /mnt/cdrom
시스템 종료, 기존 하드디스크 삭제 및 새로운 하드디스크 추가
부팅
현재 마운트 된 것이 없는 것 확인
# df -h
새롭게 잘 추가 되었나 확인
# fdisk -l
# fdisk /dev/sda
...
Command (m for help): p
...
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-130, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130): +500M
=> Primary partition 생성 완료
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 2
First cylinder (66-130, default 66):
Using default value 66
Last cylinder, +cylinders or +size{K,M,G} (66-130, default 130):
Using default value 130
=> 2번에 남은 용량 모두를 Extended partition으로 생성 완료
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (66-130, default 66):
Using default value 66
Last cylinder, +cylinders or +size{K,M,G} (66-130, default 130): +200M
=> Extended partition 중 200M를 Logical partition으로 생성 완료
Command (m for help): p
...
Device Boot Start End Blocks Id System
/dev/sda1 1 65 522081 83 Linux
/dev/sda2 66 130 522112+ 5 Extended
/dev/sda5 66 91 208813+ 83 Linux
Command (m for help): w
The partition table has been altered!
# mkfs.ext4 /dev/sda1
# mkfs.ext4 /dev/sda5
# mount /dev/sda1 /linuxtest
# mount /dev/sda5 /mnt/cdrom
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb7 7.6G 316M 6.9G 5% /
tmpfs 504M 72K 504M 1% /dev/shm
/dev/sdb1 190M 26M 155M 15% /boot
/dev/sdb6 190M 18M 163M 10% /home
/dev/sdb2 5.7G 3.1G 2.3G 58% /usr
/dev/sdb5 1.9G 175M 1.7G 10% /var
/dev/sda1 486M 2.3M 458M 1% /linuxtest
/dev/sda5 194M 1.8M 182M 1% /mnt/cdrom
'Study > CentOS' 카테고리의 다른 글
[20] 분실된 root 비밀번호 재설정, grub 암호설정 ps, top, pstree, kill, who, write, wall, skill, inittab, uname, file (0) | 2015.03.28 |
---|---|
[19] partition, mkfs, mount 실습 (0) | 2015.03.28 |
[17] rpm(2), yum (0) | 2015.03.28 |
[16] rpm(1) (0) | 2015.03.28 |
[15] gzip, bzip2, tar, man (0) | 2015.03.28 |