/boot 디렉터리의 일부 파일을 지우고서 부팅이 안 됩니다. 개인 폴더와 파일에 접근이라도 안 될까요?

부팅할 때마다 /boot 에 0 byte 남았다고 뜨길래 인터넷 검색을 해서 해결방밥을 찾아보다 대략 다음과 비슷하게 했습니다.
cd /boot
sudo rm 3.11
그리고 purge 명령어도 썼던 것 같습니다.

그리고 컴퓨터를 껐다가 다시 켜니 메모리 테스트만 계속 뜨더라구요. 그래서 인터넷으로 검색해서 live cd로 부팅 후 MBR, GRUB 복구나 커널 재설치 이것 저것 찾아보고 시도해보긴 했는데 제대로 되는 게 없더라구요. 메모리 테스트 화면 대신에 뭐를 찾을 수 없어서 부팅이 안 된다는 화면으로 바뀐 게 다 입니다.

설치 환경은 우분투 13.10 64비트에서 14.04로 업데이트 했구요. 320GB HDD가 하나 달린 노트북에 설치했고, 우분투 단독 설치입니다. 처음에 설치할 때 암호화를 했구요. 그래서 부팅시마다 암호화를 해제해야 부팅이 됩니다. 그리고 설치시 암호화를 선택하면 HDD 파티션을 임의로 나눌 수가 없어서 자동으로 분할했구요.

현재 fdisk -l 명령어를 입력하면
device boot start end blocks id system
/dev/sda1 * 2048 499711 248832 83 linux
/dev/sda2 501758 625141759 312320001 5 extended
/dev/sda5 501760 625141759 312320000 83 linux
이렇게 뜹니다.

그리고 uname -a를 입력하면
Linux ubuntu 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
이렇게 뜹니다.

그리고 14.04 live cd로 부팅해보면 왼쪽에 HDD 모양이 두개 뜨는데요. 하나는 255 MB Volume 이구요. 하나는 318 GB Volume 인데 318 GB 볼륨에는 자물쇠 모양이 있고, 클릭하면 Passphrase를 입력하라고 뜨고, 입력하면 들어가집니다. 그런데 /home 의 제 계정에 들어가보면 Acess-Your-Private-Date.desktop README.txt 이런 파일 2개만 있네요.(그냥 들어가면 권한이 없다고 뜨길래 sudo nautilus 로 노틸러스를 root 권한으로 띄워서 들어가본 겁니다.)
처음에 설치할 때 ‘개인 폴더 암호화’ 선택했구요. 설치하고 처음으로 부팅하고, 로그 인 했을 때 사용자 폴더를 암호화할거냐고 다시 한 번 물었던 것 같은데 오래돼서 잘 기억은 안 나는데 그때 암호화를 했었던 것 같습니다. 암호화키 같은 건 따로 안 넣었던 것 같고, 제 계정 비밀번호만 쳤던 것 같네요.
그 때 그렇게 해서 접근이 안 되는 것 같은데요. [size=150:2l5uhjae][b:2l5uhjae]부팅은 안 되더라도 개인 폴더와 파일에 접근이라도 안 될까요?[/b:2l5uhjae][/size:2l5uhjae] 그럼 외장 하드 디스크 드라이브에 옮기고 우분투 재설치하면 될 것 같은데요.

318 GB Volume 으로 들어가서 /boot 에 들어가보면 grub 폴더 하나 있구요. grub 폴더 안에 fonts i386-pc locale 3개의 폴더가 있고, gfxblacklist.txt grub.cfg grubenv unicode.pf2 4개의 파일이 있습니다.

그리고 255 MB Volume 으로 들어가보면 grub 폴더와 memtest86+.bin memtest86+.elf memtest86+_multiboot.bin 이렇게 3개의 파일이 있습니다. 그리고 grub 폴더에 들어가보면 위와 마찬가지로 fonts i386-pc locale 3개의 폴더가 있고, gfxblacklist.txt grub.cfg grubenv unicode.pf2 이렇게 4개의 파일이 있습니다.

sudo -s
mount /dev/sda1 /mnt
mount --bind /dev /mnt/dev
이렇게 해봤는데 mount: mount point /mnt/dev does not exist 라고 뜨더라구요.
이건 mkdir로 해결했습니다.

sudo chroot /mnt
chroot: failed to run command ‘/bin/bash’: No such file or directory

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo sed ‘s/trusty/saucy/g’ -i /etc/apt/sources.list.d/yannubuntu-boot-repair-trusty.list
sudo apt-get update
sudo apt-get install -y boot-repair && (boot-repair &)
이런식으로 해서 boot-repair로 복구하는 방법도 해봤는데 설치는 됐는데 복구를 진행하니까 MBR 지우라고 떠서 지우고, 그 다음거에서 오류가 나더라구요.

Super Grub2 Disk로도 복구를 시도해봤는데 이건 그나마 메모리 테스트 화면은 더 이상 안 뜨는데 뭐를 찾을 수 없다는 메시지가 뜨면서 부팅이 안 되더라구요.

sudo grub-install /dev/sda
하면
grub-install: error: failed to get canonical path of ‘/cow’.
라고 뜨더라구요.

지금 라이브 씨디로 부팅해 놓고 한글 입력도 안 돼서 http://www.branah.com/korean 여기서 한글로 변환해서 올립니다.ㅡㅡ;

sudo -s

apt-get install linux-image-3.13.0-24-generic-pae
패키지 목록을 읽는 중입니다… 완료
의존성 트리를 만드는 중입니다
상태 정보를 읽는 중입니다… 완료
E: linux-image-3.13.0-24-generic-pae 패키지를 찾을 수 없습니다
E: ‘linux-image-3.13.0-24-generic-pae’ 정규식에 해당하는 패키지가 없습니다

update-grub

/usr/sbin/grub-probe: error: failed to get canonical path of `/cow’.

sudo grub-install --root-directory=/mnt /dev/sda

Installing for i386-pc platform.
Installation finished. No error reported.

암호화된 파티션을 감지했습니다. 당신의 파티션들을 해독한 후에 다시 시도하십시오. (https://help.ubuntu.com/community/Encry … eDirectory) 이것은 이 기능이 활성화 됩니다.

https://launchpad.net/~kernel-ppa/+archive/ubuntu/ppa

ppa:kernel-ppa/ppa

댓글은 달지만, 제가 틀릴지도 모릅니다. 제 의견에 동의할 수 없으면 실행하지 마세요. 위험할 수 있으니까요.

2가지 이슈가 있습니다. 시스템이 복구 가능한가? 안되면, 개인 파일이라도 구해낼 수 있을까?
첫번째도 두번째도 해봐야 안다는 것이 제 답변입니다. 보통의 경우라면 chroot를 이용하면 복구 가능할 것으로 믿어집니다. 근데, encrytion을 해 놓으셔서 encryption 없을 때의 해법이 먹힐지 저도 모릅니다. 저는 그런 것 안해 봤습니다. 일단 시도해 보고 싶으시다면 해 보시길 바랍니다.

전제할 것은 rm 13.1 하셨다니, 모든 kernel file들을 지우셨습니다. kernel update가 되면서 /boot partition (/dev/sda1)이 가득 찬 것으로 보입니다. 그러면, kernel packge를 dpkg로 지우고 적어도 1개의 version은 남겨 놓아어야 하는데 모두 지우셨습니다. 실제로 /boot에 그것들이 없다고 하셨구요. 그러니, 복구는 kernel package 들을 가져다가 심는 방법으로 해야한다고 저는 생각합니다. boot-repair나 grub-install이 먹힐 리가 없습니다. kernel을 모두 지우고 나서 왠 grub?

(1) 일단 부팅이 안되니, live USB로 부팅합니다. (우분투 체험하기로 들어가야겠죠?)

(2) 일단, [url=http://kernel.ubuntu.com/~kernel-ppa/mainline/:dr8ch1w5]Ubuntu kernel ppa[/url:dr8ch1w5]에서 자신이 쓰던 version과 가장 가까운 kernel을 받습니다. 3개의 package를 받아야 합니다. 다음은 예제입니다. 다른 version일 경우, 이름이 유사한 것 3개를 받아서 hard disk의 /home 아래에 넣어 두세요. Hard disk의 /home입니다. live USB의 /home이 아닙니다. /home의 permission 때문에 write를 못핳 수도 있습니다. (chmod o+w /home)
linux-headers-3.13.11-03131105-generic_3.13.11-03131105.201407181735_amd64.deb
linux-headers-3.13.11-03131105_3.13.11-03131105.201407181735_all.deb
linux-image-3.13.11-03131105-generic_3.13.11-03131105.201407181735_amd64.deb

(3) 이제 hard disk의 root가 되어야 hard disk에 kernel을 설치할 수 있습니다. 즉, chroot입니다.
우선, nautilus에서 hard disk를 click하여 passphrase를 물어보거든 입력하여 열쇄 보양을 없애야 합니다. 그리고 hard disk를 열어 보세요. 그리고 터미널을 열고 다음을 수행합니다.

[code:dr8ch1w5]
$ umount /dev/sda1 => boot partition을 unmount합니다.
[/code:dr8ch1w5]
이제 /media/ubuntu/ 아래에 있는 folder 이름을 보세요. 이것이 hard disk가 moount 된 위치입니다. 아마도 6c82fb78-2930-d9a8-d928-281281213bcf9 이런식으로 매우 깁니다. 이것은 하나의 예제이며, 찾아내야 합니다. 즉, hard disk의 root는 /media/ubuntu/6c82fb78-2930-d9a8-d928-281281213bcf9에 mount된 상태입니다. 사실 이 긴 16진법 숫자는 root partition의 UUID입니다. 이제 chroot를 위한 작업을 시작합니다.

[code:dr8ch1w5]
$ sudo mount --bind /dev /media/ubuntu/UUID/dev
$ sudo mount --bind /sys /media/ubuntu/UUID/sys
$ sudo mount --bind /proc /media/ubuntu/UUID/proc
$ sudo mount /dev/sda1 /media/ubuntu/UUID/boot
$ sudo chroot /media/ubuntu/UUID
#/
[/code:dr8ch1w5]

이제 /media/ubuntu/UUID , 즉 hard disk volume이 root가 되었으며, 터미널의 프롬프트 모양도 "#/"으로 바뀌었을 것입니다.

(4) Hard disk의 home folder에 받아 놓은 package 들을 설치합니다.

[code:dr8ch1w5]

cd /home

dpkg -i linux-headers*.deb linux-image*.deb

update-grub

[/code:dr8ch1w5]
마지막의 update-grub이 필요한지 아닌지 기억이 가물가물 합니다. 바로 위의 dpkg에서 update-grub을 자동으로 했던 것 같기도 하고 아닌것 같기도 하고 그러네요. 하면 또다시 할 필요는 없죠. (뭐 또해도 됩니다.) dpkg에서 error가 나지 않기를 바랍니다. 보통의 경우, error가 없지만, encryption을 했기 때문에 문제가 있을 수 있습니다. error message가 없었다면 kernel 설치는 끝났습니다.

(5) 이제 할일 다했습니다. mount했던 것들 unmount하고 다시 부팅해 보아야죠.

[code:dr8ch1w5]

exit

$ sudo umount /dev /media/ubuntu/UUID/dev
$ sudo umount /media/ubuntu/UUID/sys
$ sudo umount /media/ubuntu/UUID/proc
$ sudo umount /media/ubuntu/UUID/boot
[/code:dr8ch1w5]
이제 다시 부팅하세요. 이번에는 live USB가 아니라 hard disk로 부팅합니다. 이것이 일반적으로 하는 방식입니다. 그런데 encryption 한 경우 다를 수 있습니다. 그래서 저는 모릅니다. 행운을 빕니다.

부팅에 성공했다면, 다행이고 더 이상 나갈 필요 없구요. 개인 파일을 건질 수 있는냐하는 문제죠? 당연히 전 해본 적이 없습니다. 저는 겁나서 full disk encryption은 못하거든요. 게다가 개인 폴더를 또다시 encrytion을 걸어 놓으셨으니… 이것을 어떻게 풀어내는지 해보지도 않은 제가 어찌 알겠습니까? 하지만, 대충 이런 식으로… 의견만 말씀드립니다.

(1) 하드 디스크 부팅에 실패했으니, 또 live USB로 부팅합니다.
(2) 터미널을 열고, 위 요령에 따라 chroot합니다. 즉, hard disk의 root가 되는 것이죠.
(3) root user이니 /home/username에 진입할 수 있을 것입니다.
(4) 여기서 "su username" command을 줍니다. username의 사용자가 되는 것입니다.
(5) 이제 방법을 찾아 보세요. 저는 모릅니다. 무슨 안내 창이 뜨거나, /home/username 아래에 안내문이 있거나, 뭔가가 있겠죠. 그게 상식이잖아요? 그 안내에 따라 보세요.

역시 행운을 빕니다. 이번에도 안되면 저도 모릅니다.

https://help.ubuntu.com/community/Encry … omatically

일단 rm으로 /boot를 모두 지우셨으니, 당연히 GRUB의 모듈들도 삭제되었고, GRUB설정파일도 삭제 되었겠죠.
하지만, 이런 명령으로는 MBR에 있는 GRUB의 부트로더는 날아가지 않습니다. 그리고
모듈들은 /boot에만 존재하는 것이 아니니 접근이 가능합니다.
만일, 부팅용 USB나 시디롬이 있다면, 어렵지 않습니다.

일단 부팅용 미디어로 부팅하실 때, 사용해보기를 선택해서, 라이브 모드로 진입하세요.
그리고 난 후, gparted로 /boot 파티션의 크기를 좀 늘리시고, chroot로 일련의 작업을 하세요.

[code:1zokh130]#임시로 사용할 디렉토리 생성
mkdir root

#루트 파티션을 찾아서 마운트
for dev in /dev/sd[a-z][0-9]; do sudo mount $dev root; if [ -x root/sbin/init ]; then echo $dev; break; fi; sudo umount root ; done

#해당 파티션으로 chroot
for bdev in /proc /sys /dev /dev/pts; do sudo mount -B $bdev root$bdev; done
sudo chroot root

#chroot 내에서 GRUB 복구
mount /boot
grub-install --boot-directory=/boot /dev/sda
update-grub

#chroot 내에서 리눅스 이미지 복구
apt-get update
apt-get install linux-generic

#chroot 종료
umount /boot
exit

바인딩 제거

sudo umount root/{dev/pts,dev,sys,proc}

언마운트

sudo umount root[/code:1zokh130]

만일 부가 부팅장치가 없지만, 우분투 CD이미지 파일이 있다면,
GRUB에서 해당 ISO파일로 라이브모드로 진입이 가능합니다.
일단 GRUB으로 정상적으로 진입이 불가할테니, Recovery Shell모드로 떨어질 것입니다.
그러면 다음의 일련의 작업으로 부팅을 해보세요.

[code:1zokh130]set prefix=(hd0,1)/usr/lib/grub
normal
insmod fat
insmod ntfs
insmod ext2
set isofile="/downloads/ubuntu-14.04-desktop-amd64.iso"
search -s -f "$isofile"
insmod loopback
loopback lo "$isofile"
linux (lo)/casper/vmlinuz.efi boot=casper root=/dev/shm toram iso-scan/filename="$isofile" noeject noprompt
initrd (lo)/casper/initrd.lz
boot
[/code:1zokh130]

이렇게 라이브 모드로 진입 후, 첫번째 솔루션으로 해결하세요.

그리고, 우분투 사용자라면 필수 유틸이라 할 수 있는 우분투트윅을 설치하셔서, 제니터로, 오래된 커널을 제거하시는게 좋습니다.
그러면 이와 같은 사태는 벌어지지 않죠.

[code:1zokh130]sudo add-apt-repostory ppa:tualatrix/ppa
sudo apt-get update && sudo apt-get install ubuntu-tweak
ubuntu-tweak&
[/code:1zokh130]