리눅스 파일 시스템을 업그레이드해야 하지만 시스템에 문제가 생길까 봐 걱정되시나요? 완전한 재설치 없이 ext2 또는 ext3 파일 시스템을 ext4로 변환하는 방법을 알려드립니다.
리눅스 파일 시스템의 역사
만약 당신이 예의를 차린다면, ext3 파일 시스템은 2001년에 등장한 꽤 괜찮은 파일 시스템이라고 생각할 것입니다. 하지만 그보다 더 오래된 ext2 파일 시스템은 1993년에 만들어졌으니, 골동품이라는 단어 외에는 다른 표현을 찾기 어려울 정도입니다. 컴퓨터 용어로 ext3는 오래된 물건이고, ext2는 고고학적 유물이라 할 수 있습니다.
리눅스 세계에서 가장 최신의 파일 시스템은 ext4입니다. 2008년에 출시되었으며, 더 빠르고, 조각화될 가능성이 적으며, 더 큰 파일 시스템과 대용량 파일을 처리할 수 있습니다. 또한 파일 날짜 스탬프가 더 정확하며, 전체적으로 더 빠릅니다. 훨씬 더 빠르죠.
그럼, 업그레이드해 볼까요?
잠깐 생각해 봅시다. 사실, 당신은 아마 파일 시스템을 업그레이드하고 싶지 않을 수도 있습니다.
대신, 전체 리눅스 시스템을 업그레이드하는 것이 더 나을 수 있습니다. 업그레이드란, 중요한 데이터를 백업하고, 시스템을 깨끗하게 지운 다음, 최신 배포판을 다시 설치하고, 데이터를 복원하는 것을 의미합니다. 즉, 모든 것을 새로 시작하는 것입니다. 업데이트된 소프트웨어와 최신 파일 시스템이 적용된 최신 리눅스 배포판을 사용하는 것이 여러모로 이점이 많습니다.
만약 당신의 하드웨어가 최신 리눅스 버전을 감당할 수 없다면, 루분투, 리눅스 라이트, 또는 크런치뱅++와 같은 가벼운 배포판을 고려해 볼 수 있습니다. 하지만 현재 사용하는 리눅스를 계속 써야만 하는 상황이라면, 여전히 주의해야 할 점들이 있습니다.
파일 시스템을 ext4로 업그레이드하려면, 커널 버전 2.6.28 이상을 사용해야 합니다. 만약 해당 버전의 커널 또는 더 최신 버전이 없다면, 먼저 커널을 업그레이드해야 합니다.
경고: 커널 버전 요구 사항을 충족하지 않고 이 작업을 시도하면 안 됩니다. 시스템이 부팅되지 않을 수 있습니다. 계속하기 전에 반드시 사용 중인 커널 버전을 확인하십시오.
또한, 현재 사용 중인 리눅스 버전의 설치 디스크를 준비해 두는 것이 좋습니다. 파일 시스템 업그레이드는 위험한 작업이 될 수 있습니다.
백업은 안전망입니다. 어떤 작업을 하기 전에 다른 저장 매체에 데이터 백업을 해두고, 이전 리눅스 설치 디스크를 사용할 수 있는지 확인하세요. 심각한 문제가 발생하면 이전 리눅스를 다시 설치하고 데이터를 복원할 수 있습니다.
또한 파일 시스템 업그레이드를 하려면 최신 리눅스 배포판의 라이브 CD/DVD가 필요합니다. 이것도 준비해 두시기 바랍니다.
참고로, 이 글은 2009년 4월에 출시된 우분투 Jaunty Jackalope 설치를 사용하여 작성되었으며, 파일 시스템으로 ext3를 사용했습니다.
아직도 함께 하시겠습니까?
존 웨인은 “용기는 두렵지만, 그래도 안장에 앉는 것이다”라고 말했습니다. 저는 당신의 용기를 존경합니다.
가장 먼저 해야 할 일은 `uname` 명령을 사용하여 커널 버전을 확인하는 것입니다. `uname` 명령은 다양한 시스템 정보를 표시할 수 있습니다.
이전 리눅스 컴퓨터에서 터미널 창을 열고 다음 명령을 입력하세요: `uname -r`. 그런 다음 Enter 키를 누르세요.
uname -r
이 컴퓨터의 리눅스 버전은 커널 버전 2.6.28-11을 사용하고 있으므로 커널 버전 요구 사항을 충족했습니다.
만약 이 요구 사항을 충족하지 못했다면 지금 중단해야 합니다. 비슷한 버전으로는 충분하지 않습니다. 이 커널 버전 번호와 같거나 더 높은 버전을 사용해야 합니다.
이제 `blkid` 명령을 사용하여 디스크 식별자를 확인합니다. 이 명령은 시스템의 블록 장치를 식별합니다.
blkid
이 시스템에는 `/dev/sda1`에 마운트된 파일 시스템(sda1)이 있는 단일 하드 드라이브(sda)가 있습니다. 이것은 ext3 파일 시스템입니다. 이것이 바로 우리가 변환할 파일 시스템입니다.
스왑이라는 파일 시스템도 있지만, 지금은 신경 쓰지 않아도 됩니다.
라이브 CD로 재부팅
라이브 CD를 넣고 컴퓨터를 재부팅합니다. 컴퓨터가 CD에서 부팅되도록 하려면, 재부팅하는 동안 특정 키를 눌러야 할 수도 있습니다. 눌러야 하는 키는 부팅 과정 초기에 표시됩니다. 서두르세요! 기회는 오래가지 않습니다. 놓치면 재부팅하고 다시 시도하십시오.
라이브 CD 환경으로 부팅했을 때, 실수로 설치를 시작하지 않도록 주의하세요. 시간을 들여서 제공되는 옵션을 읽어보고, “Try DistributionName”과 비슷한 내용의 옵션을 선택하세요.
루트 권한 얻기
터미널 창을 열고 다음 명령을 입력합니다. 이렇게 하면 루트 권한을 얻게 되므로, 모든 명령 앞에 `sudo`를 붙일 필요가 없습니다.
sudo bash
명령 프롬프트가 변경된 것을 확인하세요. 이제 루트 권한을 가지고 있으므로, 신중하게 작업해야 합니다.
파일 시스템 재확인
현재 리눅스 환경에서 파일 시스템이 어떻게 보이는지 확인하기 위해, 파일 시스템을 다시 한번 식별해야 합니다.
fdisk -l
다음과 비슷한 결과가 표시될 것입니다.
이전 단계에서 sda1으로 식별한 파일 시스템이 라이브 CD 리눅스에서도 발견되고 인식되었습니다. 이것이 첫 번째 작은 성공입니다.
두 번째 성공은 파일 시스템을 변환하는 것입니다.
파일 시스템 변환
여기에는 ext2에서 ext4로 변환하는 명령과 ext3에서 ext4로 변환하는 명령 두 가지가 있습니다. 해당하는 명령을 정확하게 사용해야 합니다!
ext2에서 ext4로 변환하려면 다음 명령을 사용하세요.
tune2fs -O extents,uninit_bg,dir_index,has_journal /dev/sda1
ext3에서 ext4로 변환하려면 다음 명령을 사용하세요.
tune2fs -O extents,uninit_bg,dir_index /dev/sda1
별다른 일이 일어나지 않는 것처럼 보일 수 있어서 약간 실망스러울 수도 있습니다. 명령 프롬프트로 돌아갈 것입니다. 혹시 출력 메시지가 보인다면 오류 메시지일 가능성이 큽니다. 따라서 여기서는 좋은 소식이 없습니다.
파일 시스템 점검
오류가 없다고 표시되더라도, 파일 시스템 전체에 문제가 없는지 확인하는 것이 좋습니다. `e2fsck`라는 명령을 사용하여 확인합니다. 이 명령은 파일 시스템의 무결성을 확인하는 데 사용되는 도구입니다. 또한 발견된 문제를 복구하려고 시도할 수도 있습니다. `e2fsck` 도구는 ext2, ext3 및 ext4 파일 시스템과 함께 작동합니다.
`-p`(preen) 옵션은 `e2fsck`가 오류 복구를 시도하도록 하고, `-f`(force) 옵션은 파일 시스템이 깨끗하게 보이더라도 `e2fsck`가 파일 시스템을 검사하도록 합니다.
e2fsck -pf /dev/sda1
보고된 오류가 없습니다. 이제 파일 시스템을 마운트할 수 있습니다.
파일 시스템 마운트
변환된 파일 시스템이 제대로 작동하도록 하려면, 파일 시스템 테이블(fstab)과 grub 부트로더를 조정해야 합니다. 그러기 위해서는 파일 시스템을 마운트해야 합니다. `/mnt`에 마운트하겠습니다. 이전 단계에서 파일 시스템을 sda1으로 식별했으므로, 명령은 다음과 같습니다.
mount -t ext4 /dev/sda1 /mnt
이제 마운트되었으므로 파일 시스템을 나열할 수 있어야 합니다. 확인해 보겠습니다. 파일 시스템의 루트는 마운트 지점인 `/mnt`에 있습니다.
ls /mnt
고무적입니다. 예상대로 작동하는 것 같습니다.
fstab 편집
이제 `fstab` 파일을 편집하고, `ext3`(또는 변환한 파일 시스템이 ext2인 경우 `ext2`)에 대한 참조를 `ext4`로 변경해야 합니다.
이 예에서 사용된 라이브 CD에는 `nano` 편집기가 있습니다. 간단한 편집기이므로 이 편집기를 사용하겠습니다. 만약 라이브 CD에서 `nano`를 사용할 수 없다면, CD의 리눅스 배포판에 포함된 다른 편집기를 사용하면 됩니다.
nano /mnt/etc/fstab
`nano` 편집기 창이 나타납니다. “ext3” 또는 “ext2” 문자열이 나타나는 부분을 찾아 “ext4″로 변경해야 합니다. 이 예에서는 강조 표시된 `ext3`가 한 번 나타났습니다.
ext3가 ext4로 대체되었습니다.
파일을 저장하고 편집기를 종료해야 합니다. `nano`에서 Ctrl+O는 파일을 저장하고, Ctrl+X는 편집기를 닫습니다.
Grub 업그레이드
우리가 `/mnt`에 sda1 파일 시스템을 마운트했기 때문에, 파일 시스템의 모든 디렉토리 경로가 평소보다 한 단계 더 깊어졌습니다. 이것이 우리가 `nano`에 제공한 경로가 일반적인 `/etc/fstab`이 아닌 `/mnt/etc/fstab`인 이유입니다.
Grub은 특정 위치에서 무언가를 찾을 것으로 예상하므로, 파일 시스템이 정상적으로 마운트된 것처럼 보이게 해야 합니다. 파일 시스템의 루트는 `/mnt`가 아니라 `/`에 있어야 합니다. `chroot` 명령을 사용하면 명령 셸을 실행하고 사용할 루트 포인트를 지정할 수 있습니다.
우리가 사용할 명령은 다음과 같습니다.
chroot /mnt
명령 프롬프트가 변경된 것을 확인하세요.
이제 `update-grub` 명령을 실행하여 grub이 `fstab` 파일을 읽고 스스로 재구성하도록 할 수 있습니다.
update-grub
grub이 스스로 재구성되었다면, 하드 드라이브에 grub의 새 인스턴스를 설치해야 합니다. 이 작업은 파일 시스템 `sda1`이 아니라 하드 드라이브 `sda`에서 해야 합니다. 즉, “1”을 포함하지 않고 “sda”만 입력합니다.
grub-install /dev/sda
리눅스 재부팅
시스템을 재부팅하고 라이브 CD를 제거합니다. 시스템이 재부팅되면 터미널 창을 열고 다음 명령을 입력하세요.
blkid
보시다시피, 파일 시스템이 이제 ext4 파일 시스템으로 변경되었습니다.
이 글에서 조사한 시스템은 재부팅하는 데 너무 오래 걸려서(10분 이상) 문제가 발생하여 다시 복구되지 않을 것이라고 생각했습니다.
아마도 가상 머신이었기 때문일 수도 있고, 첫 번째 부팅 중에 파일 시스템 변환이 진행되었기 때문일 수도 있습니다. 어쨌든, 인내심이 승리했고 결국 다시 나타났습니다. 만약 당신의 컴퓨터도 유사한 작업을 수행한다면, 조금 기다려 보세요. 모든 것이 사라진 것은 아닐 수도 있습니다.
이후의 재부팅은 평소처럼 빠르게 진행되었습니다.
리눅스 업그레이드를 고려하세요
결국 해냈습니다. 하지만 여전히 최신 파일 시스템에서 이전 리눅스 릴리스를 사용하는 불안정한 하이브리드 시스템이 남았습니다.
최신 파일 시스템으로 옮기는 것이 중요하고 하드웨어에서 이를 지원한다면, 현재 사용 중인 리눅스 배포판을 업그레이드하는 것이 최선의 방법입니다. 그렇게 함으로써 얻을 수 있는 보안 및 소프트웨어의 추가적인 이점을 누릴 수 있습니다.
하지만 다른 방법이 없고 때로는 원하는 옵션이 없다면, 이 단계를 통해 파일 시스템을 업그레이드할 수 있습니다.