debig
6월 20, 2012, 10:53오전
1
먼저 윈도우 7을 깔았읍니다.
원래 노트북에는 우분투(버전 9 인것같은데) 가 있는상태에 출고되는 노트북입니다.
그냥 윈도우7을 깔아보니, 원래320기가 하드인데, 160정도만 깔수있다고 하며 윈7을 깔더군요…
뭐 우분투때문이려니 했습니다.
윈7이 잘깔린것 같아. 우분투 12.04를 usb로 깔기 시작했습니다.
이것도 잘깔린것 같습니다.
그런데, 부팅을 하니 무조건 윈7으로 넘어가더이다. 순서를 윈7깔고 나중에 우분투를 깐것인데도 말입니다.
설치로 사용했던 usb를 꽃은 상태에서 부팅하면 부팅선택화면이 나와서 우분투가 실행이 되는데…
이제 무엇을 어떻게 해야하지요…
원래 공장에서 나온 하드에 우분투가 있어서 그런것일까요?
하드로 윈7과, 우분투를 멀티부팅하게끔 하려면 어찌 해야 하나요?
다시 깔려고 usb꽃아도 설치화면은 안나오고…그러네요…
왜? 멀티부팅이 안되고 윈7으로만 넘어갈까요? 우분투를 나중에 깔았음에도…
usb로 우분투 설치하시는 분들이 자주 실수하는 부분인데요.
우분투는 라이브모드로 usb에 설치할 수도 있는 관계로… 처음 설치할때… GRUB부트로더를
부팅용 USB에 설치해버리는 것입니다.
부트로더는 부팅용 USB가 아니라 실제 사용할 디스크인 하드디스크의 MBR에 설치하셔야 되는데 말입니다.
일단 USB로 부팅하신 후에…
#아래는 첫번째 하드디스크를 보여줍니다.
for f in /dev/sd?; do sudo hdparm -i $f &>/dev/null && hd0=$f && echo $f && break; done
#결과는 /dev/sda와 같은 형태로 출력됩니다.
sudo grub-install $hd0
debig
6월 20, 2012, 12:40오후
3
그런데 아래부분의 설명은 잘…이해가 …
for f 가 뭐죠?
그리고 우분투가 깔린파티션이 어딘지를 아는방법은 무엇인지요? 헛갈려서 확실히 알고 싶어서요…
#아래는 첫번째 하드디스크를 보여줍니다.
for f in /dev/sd?; do sudo hdparm -i $f &>/dev/null && hd0=$f && echo $f && break; done
#결과는 /dev/sda와 같은 형태로 출력됩니다.
첫번째 디스크는 /dev/sda
첫번째 파티션은 /dev/sda1
두번째 디스크는 /dev/sdb
첫번째 파티션은 /dev/sdb1
이것이 리눅스에서 사용하는 장치명입니다.
그런데 이 장치명은 바이오스 설정에 따라 순서가 바뀔 수 있기 때문에…고정된 값은 아닙니다.
for f 이하 명령은 쉘스크립트 명령으로… 터미널을 열어서
그대로 입력하시면 됩니다.
usb가 아닌 첫번째 하드디스크를 검색해서 화면에 출력해주는 쉘스크립트입니다.
GRUB이 어디 설치 되었는지 모르시겠다면?
for f in /dev/sd*; do dd if=$f bs=512 count=1 2>/dev/null |grep GRUB &>/dev/null && echo $f; done
이 명령에 의해 GRUB부트로더가 설치된 곳을 알 수 있습니다.
우분투가 어느 파티션에 설치 되었는지 알고 싶으시면?
sudo blkid
결과로 TYPE="ext4"로 나오는 곳입니다.
쉽게는 sudo blkid|grep ext4
debig
6월 20, 2012, 1:18오후
5
어렵네요…
for f 만 빼고 그대로 프롬프트에서 넣어주면 되는것인지…
아이구…
명령프롬프트에 for어쩌구 저쩌구 되어 있는 것을 그대로 입력하시라는 겁니다.
쉘이라는 것은 커널(운영체제)와 사용자혹은 사용자프로그램 중간에서 매개역할을 합니다.
그리고, 기본적으로 사용자가 무언가 명령을 내릴때에는… 쉘프로그램에서 명령을 하게 됩니다.
명령줄이라고 부르는 곳에서 무언가를 입력하고, 엔터를 치면… 그것은 곧바로… 쉘프로그램에게 전달되며…
쉘프로그램이 이를 번역해서 실행하는 것입니다.
쉘스크립트라는 것은 일종의 사용자프로그램으로써 쉘프로그램이 이 파일을 번역해서 실행해 줍니다.
쉘스크립트는 만들기에 따라서 단순한 실행명령일 수도 있고, 복잡한 프로그램 형태일 수도 있습니다.
윈도우즈에서는 command.com이나 cmd.exe가 바로 쉘프로그램입니다. 한글로는 명령 프롬프트라고 불리죠.
그리고, xxx.BAT나 xxx.CMD파일이 바로 배치파일인데…
이것이 바로 쉘스크립트입니다.
우분투 에서는 /bin/bash가 기본쉘로 사용되는 프로그램이며,
터미널을 실행시키면… 자동으로 실행되면서 "사용자@컴퓨터이름:~$"와 같은 프롬프트를 출력합니다.
여기서 입력하는 모든것은 실제 쉘프로그램에 전달되는 것입니다.
예를들어 ls라고 입력하면 그냥 알아서 ls파일이 실행되는것이 아니라…
/bin/bash라는 프로그램이 ls라는 명령줄을 읽어서…
PATH환경변수에서 프로그램을 찾아보고…
ls라는 프로그램이 있으면 이것을 실행해주는 것입니다.
debig
6월 20, 2012, 5:10오후
8
친절하신 설명 감사드립니다.
근데 아직 grub 이 하드에 설치가 안되었는지 별 반응이 없네요…
말씀하신 아래
for f in /dev/sd?; do sudo hdparm -i $f &>/dev/null && hd0=$f && echo $f && break; done
쉘명령어를 통째로 복사해서 프롬프트에 넣어줬거든요…
너무 무식했나요? 설마 done 같은 것은 쓰지말라는것은 아니시죠?
세미콜론으로 나누자니…
혹시 hdparm 명령이 없는 것은 아닐까요?
sudo apt-get install hdparm 하신 후 해보세요.