rsync를 이용 라즈베리파이에 USB 외장하드 ROOT 마운트 (Raspberry Pi)



  •  라즈베리파이는 SD카드를 저상소로 사용합니다
  •  SD카드 특성상 일정회수 이상 write하면 수명을 다하는데요 서버로 오래 운영하기에는 불안함 느낌이 들어 외장하드를 root로 사용하는 방법을 찾아 봤습니다
  •  리눅스 시스템에 대해 아는게 없어 애를 먹고있는 중에 [횡수] 라즈베리 파이.. HDD로 루트 마운트 성공 글이 있어 참고해서 시도해 봤습니다
  •  위 글을 작성하신분은 시스템을 잘 아는 분이셔서 그런지 간단한 명령어들로 적어주셔서 제가 실제 적용하는데 시간이 좀걸렸습니다
  •  이 블로그에 작성한 내용은 참고한 글에 있는 명령어를 포함하고 제가 추가한 명령을포함해 익숙하지 않은 분들도 도움이 될 수 있도록 정리를 해봤습니다


  • 부팅은 SD카드로하고 저장소는 마운트된 외장하드를 이용하게 됩니다


  • 구성 환경
    • 500G 외장하드 (외부 전원 사용)
    • SD카드 8G
    • 라즈베리파이 B





  1. 라즈베리파이가 USB 외장하드를 인식했다는 조건으로 시작합니다
    1. 대부분 자동으로 인식합니다


  2. root 계정으로 로그인


  3. fdisk를 이용해서 디스크 파시션 생성 (파티션 구분만 합니다. 포맷은 이후에 진행)
    1. 저는 파티션을 2개로 나눴습니다. 약 5G swap영역, 나머지 모두 ext4영역
    2. $ fdisk /dev/sda 명령 설정된 파티션을 삭제

      root@raspberrypi:/# fdisk /dev/sda

      Command (m for help): d                        <---- 삭제 명령

      Partition number (1-4): 1


      Command (m for help): d

      Selected partition 2


      Command (m for help): d

      No partition is defined yet!                        <---- 다 삭제 되었다는 안내


      Command (m for help): 




  4. 디스크 파티션을 구분 (용량을 설정함)

    위 명령에서 이어 계속 fdisk를 실행하고 있는 상태 입니다

    Command (m for help): 
    n                        <---- 새 파티션 생성 명령
    Partition type:
       p   primary (0 primary, 0 extended, 4 free)
       e   extended
    Select (default p): p                        <---- p타입으로 명령
    Partition number (1-4, default 1): 1
    First sector (2048-976773167, default 2048): 2048                        <---- 파티션 시작값을 적음
    Last sector, +sectors or +size{K,M,G} (2048-976773167, default 976773167): 9767731                        <---- 피티션 끝 값을 적음

    시작 값과 끝 값으로 용량이 정해 집니다

    Command (m for help): n                        <---- 다시한번 새로운 파티션을 만드는 명령
    Partition type:
       p   primary (1 primary, 0 extended, 3 free)
       e   extended
    Select (default p): p                        <---- p타입으로 명령
    Partition number (1-4, default 2): 2
    First sector (9767732-976773167, default 9767732): 9767732                        <---- 두번째 파티션 시작 위치
    Last sector, +sectors or +size{K,M,G} (9767732-976773167, default 976773167): 976773167                        <---- 두번째 파티션 끝나는 위치

    Command (m for help): w                        <---- 저장 (fdisk종료됨)
    The partition table has been altered!

    Calling ioctl() to re-read partition table.

    WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
    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.

    root@raspberrypi:/# 




  5. 구분된 파티션을 확인
    1. root@raspberrypi:/# fdisk /dev/sda
      sda   sda1  sda2        <--------- 이렇게 3개가 생겼음
      sda는 라즈베리파이가 인식한 외장하드
      sda1는 2048부터 9767731까지 설정한 부분
      sda2는 9767732 부터 976773767까지 설정한 부분

    2. $fdisk /dev/sda를 실행해서 p명령을 하면 내부적으로 나눠진 파티션 sda1, sda2를 볼수 있습니다

      root@raspberrypi:/# fdisk /dev/sda

      Command (m for help): p                        <---- 현재 디스크 정보 출력

      Disk /dev/sda: 500.1 GB, 500107862016 bytes
      255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
      Units = sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disk identifier: 0xa4b57300

         Device Boot      Start         End      Blocks   Id  System
      /dev/sda1            2048     9767731     4882842   83  Linux                        <---- 디스크의 첫번째 파티션
      /dev/sda2         9767732   976773167   483502718   83  Linux                        <---- 디스크의 두번째 파티션

      Command (m for help): 




  6. 파티션 포맷 
    1. swap로 포맷
      $ mkswap /dev/sda1 

      root@raspberrypi:/# mkswap /dev/sda1

      Setting up swapspace version 1, size = 4882836 KiB

      no label, UUID=4fd3b952-e23e-40eb-8ecc-66cea9a23c14


    2. ext4로 포맷
      $ mkfs.ext4 /dev/sda2

      root@raspberrypi:/# mkfs.ext4 /dev/sda2

      mke2fs 1.42.5 (29-Jul-2012)

      Filesystem label=

      OS type: Linux

      Block size=4096 (log=2)

      Fragment size=4096 (log=2)

      Stride=0 blocks, Stripe width=0 blocks

      30220288 inodes, 120875679 blocks

      6043783 blocks (5.00%) reserved for the super user

      First data block=0

      Maximum filesystem blocks=0

      3689 block groups

      32768 blocks per group, 32768 fragments per group

      8192 inodes per group

      Superblock backups stored on blocks:

              32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

              4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,

              102400000


      Allocating group tables: done

      Writing inode tables: done

      Creating journal (32768 blocks): done

      Writing superblocks and filesystem accounting information: done


      root@raspberrypi:/#




  7. rsync를 이용해서 새로 만들어진 파티션에 모든 파일을 옮김

    1. $ mkdir /newfs 
      $ mount /dev/sda2 /newfs
      아래 모든 명령을 실행

      rsync -av bin /newfs

      rsync -av dev /newfs

      rsync -av home /newfs

      rsync -av lost+found /newfs

      rsync -av mnt /newfs

      rsync -av opt /newfs

      rsync -av root /newfs

      rsync -av sbin /newfs

      rsync -av srv /newfs

      rsync -av tmp /newfs

      rsync -av var /newfs

      rsync -av boot /newfs

      rsync -av etc /newfs

      rsync -av lib /newfs

      rsync -av media /newfs

      rsync -av proc /newfs

      rsync -av run /newfs

      rsync -av selinux /newfs

      rsync -av sys /newfs                        <---- 해야되는지 확실하게 모름

      rsync -av usr /newfs

       


    2. 추가 rsync 설명
      -a 는 archive mode (심볼릭 링크, 속성, 퍼미션, 소유권 등 보존)
      -v 진행상황을 상세히 보여줌


  8. 12시간걸림
    옮기는데 오류가 많이나는데 왜 나는지 파악은 안되었습니다 그로인해 시간이 오래 걸리는 것으로 보입니다

  9. 부팅 설정 변경

    1. vi /boot/cmdline.txt

      dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/sda2 rootfstype=ext4 elevator=deadline rootwait

      처럼 root=/dev/sda2 로 하면 끝 

    2. 원본

      dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait 




  10. swap 설정
    vi /etc/fstab에 아래 내용 추가

    /dev/sda1       swap                    swap    defaults        0 0 




  11. 모든 설정을 마치고 재부팅

  12. 용량 확인을 위해 df -h로 확인




리눅스의 전체적인 환경을 모르고 설정 내용만 따라해서 이게 제대로 된것인지에 대한 판단은 안서있는 상태입니다

이 상태로 계속 사용해 보면서 문제가 있는지는지 파악해 봐야될거 같습니다






참고


신고





Posted by 파란물
보물창고/Programming2012.11.17 00:10










VirtualBox + Ubunto VirtualBox Guest Addtion 설치 안될때(버추얼4.2.4 박스 우분투12.04)





 버추얼박스 4.2.4에서 우분투 12.04버전 설치 후 바로 VirtualBox Guest Addtion이 설치가 안돼 구글링으로 찾아 해결 후 정리 했습니다





 

  sudo atp-get upgrade

  sudo atp-get update


  sudo apt-get install virtualbox-ose-guest-dkms

  sudo apt-get install virtualbox-ose-guest-x11

  sudo apt-get install virtualbox-ose-guest-utils





이후에 VirtualBox Guest Addtion을 설치해 보세요




참고 사이트

http://whatwant.tistory.com/431

http://askubuntu.com/questions/22743/how-do-i-install-guest-additions-in-virtualbox/22745#22745






신고





Posted by 파란물
보물창고/Big Data2012.11.14 21:12












하둡 스터디하면서 어느 버전으로해야 될지 찾아해매다 하나둘 찾아보고 설치 테스트해본 목록을 정리했습니다



테스트는 

Pseudo-distributed mode 

hadoop-example-1.0.4.jar 파일 실행하는것으로 확인했습니다

다른 더 많은 기능이 정상 작동하는지도 좀더 테스트 해본 후 업데이트 해 보겠습니다



2012년 11월 13일


하둡, 우분투, 자바, 버추얼박스 테스트 성공한 버전

hadoop, Ubuntu, Java, Virtualbox



우분투 - 12.04 LTS 64bit desktop   다운로드

JavaSE - 6.0.37 Linux 64bit   다운로드

Virtualbox - 4.2.4   다운로드

하둡 - 1.0.4   다운로드



참고

hadoop에서 지원하는 Java버전을 안내하고 있는 페이지 입니다 ( OpenJdk에서는 안된다고 합니다)

http://wiki.apache.org/hadoop/HadoopJavaVersions




신고





Posted by 파란물
보물창고/Programming2011.07.13 03:19






윈도우7운영체제에 VMware 7.0.1 버전에 우분투 10.10 이 설치되어 있는 환경 입니다

VMware에 설치되어 있는 우분투 리눅스 운영 체제에서 숫자만 받는 파이썬 서버가 돌고 이 서버 아이피 주소를 외부에서 접근하는 방법 입니다





일단 VMware설정 입니다
VMware에 기본값으로 리눅스를 설치하면 네트워크가 NAT로 설정되어 설치가 됩니다 
저는 외부에서 접근하기 위해 브릿지 설정으로 네트워크를 하나더 만들었습니다
원래 있던 NAT네트웍 설정을 지우지 않고
Add...를 클릭해서 네트워크를 bridged로 하나더 추가합니다
위 스샷은 Network Adapter 2로 네트워크가 추가 완료된 모습입니다

vaware의 네트워크 설정에 대한 더 자세한 설명 보기

 


 


 
VMware 설정에서 네트워크가 추가되면 리눅스가 바로 알아챕니다
오른쪽 위에 위아래 화살표 아이콘을 클릭하면 새로 추가된 Auto eth1이 보이고 이걸 선택해서 리눅스의 네트웍을 변경합니다


 

 
이제 리눅스에서 ifconfig 명령어로 eth1에 할당된 아이피 주소를 확인합니다
(저는 공유기를 사용중이여서 외부에서 이 아이피를 접근하는데는 문제가 조금 될수 있습니다 고려해 주세요) 



 

 

from socket import *

def getNumber():

    HOST = '192.168.0.11'

    PORT = 30000

    sock = socket(AF_INET, SOCK_STREAM)

    sock.bind((HOST,PORT))

    sock.listen(1)

    conn, addr = sock.accept()

    sock.close()

    return conn.recv(32)

 
 
파이썬 서버 코딩 부분 입니다
위에서 확인된 아이피 주소를 여기에 적어서 서버를 돌립니다


 


윈도우 설정이 있어야 합니다
제어판\네트워크 및 인터넷\네트워크 연결 에서
VMnet8 의 속성을 확인합니다
여기서 VMware Bridge Protocol의 체크박스를 체크한후 확인을 누릅니다
(참고한 블로그 http://clansim.tistory.com/117



 
 

import java.io.*;

import java.net.*;

public class client {

        public static void main(String[] args) throws IOException

        {

               try {

                       // 실행시에 호스트 이름과 해당 포트를 명시해야 .     

                       // 인자로부터 호스트 이름과 포트번호를 얻어냄

                       //String host = "1.1.1.3";

                       String host = "192.168.0.11";

                       int port = Integer.parseInt("30000");

                       System.out.println(host + " : " + port);

 

                       while(true){

                              // 소켓 클래스 객체를 생성, 생성시 해당 서버와 접속을 시도함.

                              Socket s = new Socket(host, port);

 

                              // OutputStreamReader 클래스를 이용하여, Writer 얻어냄.

                              PrintWriter toServer =

                                      new PrintWriter(new OutputStreamWriter(s.getOutputStream()));

                              // 키보드에서 데이터를 읽어내기 위한 Reader 생성     

                              BufferedReader fromUser =

                                      new BufferedReader(new InputStreamReader(System.in));

 

                              // 화면으로 데이터를 출력하기 위한 Writer 생성

                              final PrintWriter toUser =

                                      new PrintWriter(new OutputStreamWriter(System.out));

 

                              // 현재, 연결된 정보를 화면에 표시

                              toUser.println("Connected to " + s.getInetAddress() + ":"+ s.getPort());

                              toUser.flush();

 

                              // 사용자로부터 데이터의 입력을 받고, 이를 서버로 보낸다.

                              String line;

                              line = fromUser.readLine();

                              toServer.println(line);

                              toServer.flush();

                              // 소켓 접속을 끊는다.

                              s.close();

                              toUser.println("Connection closed by client.");

                              toUser.flush();

                       }

               } catch (Exception e) {

                       System.err.println(e);

               }

        }

}



윈도우에서 접속한 자바 클라이언트 소스 입니다
원본은 네이버 지식인인지 블로그인지에서 따왔습니다;





 이렇게 설정하면 이제 윈도우에서 VMware 리눅스에 아이피 주소로 접근 가능합니다

 


신고





Posted by 파란물









리눅스에서 무료로 사용 가능한 오피스 프로그램 입니다
윈도우 버전과 맥 버전 모두 있습니다
(3.3.0 버전)

또 다른 무료 오피스 소개 페이지 가기
(IBM 심포니 - 오픈 오피스가 베이스로 개발된 오픈 오피스 입니다 이 역시 윈도우, 리눅스, 맥 에서 사용할 수 있습니다)
http://paranwater.tistory.com/111









실행하면 처음 뜨는 화면 입니다








워드(word)








엑셀








파워 포인트(ppt)








그리기 (Draw)








데이터 베이스 (DB)










수식







오픈 오피스 소개 페이지 (OpenOffice)
http://ko.openoffice.org/  - 한글
http://www.openoffice.org/ -  영문 


오픈 오피스 다운로드 페이지 - 한글 
http://openoffice.or.kr/main/page.php?id=download 
(윈도우 버전, 리눅스 버전, 맥 버전 모두 있습니다) 


윈도우 버전 다운로드 링크
http://download.services.openoffice.org/files/localized/ko/3.3.0/OOo_3.3.0_Win_x86_install-wJRE_ko.exe  

리눅스 버전 다운로드 링크
http://download.services.openoffice.org/files/localized/ko/3.3.0/OOo_3.3.0_Linux_x86_install-rpm_ko.tar.gz

맥버전 다운로드 링크
http://download.services.openoffice.org/files/localized/ko/3.3.0/OOo_3.3.0_MacOS_x86_install_ko.dmg






신고





Posted by 파란물

티스토리 툴바