기본적으로 3TB 정도 되는 대용량이면 파티션 테이블을 GPT 로 구성되느데..
문제는 pogoplug 의 부트로더인 uboot 에서 GPT 를 인식 하지 못 하는듯...
다행히 GPT 는 MBR 영역은 비워 두므로 gptsync 를 이용해 파티션 정보를 MBR 에 적어 줄 수 있음.
이렇게 되면 MBR 만 인식 하는 시스템에서는 MBR 파티션이 있는 하드로 인식 될거고, GPT 를 인식 하는 시스템에서는 GPT 파티션이 온전히 인식 됨.
이때 MBR 에서 인식 할 수 없는 2TB 이상 파티션은 MBR 에는 기록 되지 않음.
그러므로 MBR 로 인식 되는 파티션에다가 Archlinux 를 설치 해야 함.
(정확히는 pogoplug series4 용 Archlinux 의 kernel image 인 uImage 가 위치할 장소만 해당 됨. 하지만 pogoplug series4 용 Archlinux 는 root file system 과 kernel image 를 동일 파티션에다가 때려 박아놨기 때문에 결국 그게 그거임..)
파티션 작업은 우분투 live CD 로 부팅 해서 작업 하였음.
원래 통으로 ntfs 로 쓰던 하드인데 원래의 ntfs partition 은 크기를 줄이고 ext3 partition 추가후 자료 옮기고 이전 ntfs partition 은 지우고... 등등 작업으로 파티션 구조가 복잡해 진 상태임.
파티션 1 : 없음... (-_-)
파티션 2 : linux 는 여기 설치 할 거임. (ext3)
파티션 3 : data 영역으로 쓸 거임. (ext3)
파티션 4 : swap 영역으로 쓸 거임. (swap)
1. 파티션 준비
일단 GPT 의 상태를 보면,
# parted /dev/sda unit s print (GPT 테이블)
Current GPT partition table:
# Start LBA End LBA Type
Number Start End Size File system Name Flags
2 264192s 33818623s 33554432s ext3
4 33818624s 38012927s 4194304s linux-swap(v1)
3 38012928s 5860532223s 5822519296s ext3 Ba
==> GPT 를 인식하는 kernel 입장에서 봤을 때 2번째 partition 이 linux boot files system 이 위치할 장소 임.
# gptsync /dev/sda
실행 해서 MBR 테이블 생성 후 MBR 의 상태를 보면,
# fdisk -l /dev/sdg (MBR 테이블)
Device Boot Start End Blocks Id System
/dev/sdb1 1 264191 132095+ ee GPT
Partition 1 does not start on physical sector boundary.
/dev/sdb2 * 264192 33818623 16777216 83 Linux
/dev/sdb3 33818624 38012927 2097152 82 Linux swap / Solaris
==> MBR 만 인식 하는 uboot 입장에서 봤을 때 2번째 partition 이 uImage 가 위치 한 장소임.
2. pogoplug series4 용 Archlinux 설치 (pogoplug mobile 도 동일하게 사용 가능)
http://archlinuxarm.org/platforms/armv5/pogoplug-series-4
에 있는 installation 대로 설치 하되 ppv4-install.sh 에서 아래 부분 수정.
usb 0:1 을 usb 0:2 으로 수정
ide 0:1 을 ide 0:2 으로 수정
==> uboot 에서 uImage 위치 장소는 0번 device 의 1번 파티션 에서 2번 파티션으로 변경.
/dev/sda1 을 /dev/sda2 으로 수정
==> kernel 의 boot file system 은 1번 파티션에서 2번 파티션으로 변경.
!! 주의 : 하드 디스크의 구성 상황에 따라 잘 맞춰 줘야 함
결국 pogoplug 의 firmware 를 변경 하는 risky 한 작업은 순전히
ppv4-install.sh 를 실행 할 때 발 생 하는 거고 이렇게 uboot script 수정 부분은
잘못 하면 벽돌이 될 수 있지...
다만 alarm_revert 부분만 살아 있게 잘 수정 하면 설령 실패 하더라도
usb (fat32 포맷에 revert 디렉토리) 꼽는 걸로 복원이 가능 함.
이후 Archlinux 설정들...
- 사용자 계정 추가
passwd [name]
- 시간
- sudo 권한
visudo 실행
# %sudo ALL=(ALL) ALL
부분의 주석 처리 해제
groupadd sudo
vi /etc/group
sudo:x:1001:[name]
- samba
vi /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
server string = pogo
netbios name = pogo
security = user
null passwords = yes
map to guest = bad user
log file = /var/log/samba/%m.log
max log size = 50
dns proxy = no
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=131072 SO_SNDBUF=131072 SO_KEEPALIVE
disable netbios = yes
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
[homes]
browseable = yes
read only = no
valid users = %S
기존에 samba user 추가 하던 smbpasswd 가 deprecated 된것 같음.
대신 아래 명령어로 samba user 추가.
pbdedit -a -u [name]
systemctl start smbd nmbd
systemctl enable smbd nmbd
이제 pogoplug 의 주소로 접근해 보면 [name] 디렉토리 보이고 접근 될 거임.
- ftp
vi /etc/vsftpd
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
passwd_chroot_enable=YES
vi /etc/passwd
[name]:x:1000:1000::/home/./[name]:/bin/bash
// 저기 . 찍힌 위치가 해당 id 로 ftp 접속 했을 때 root directory 가 됨.
systemctl start vsftpd
systemctl enable vsftpd
- hdd 절전
vi /etc/conf.d/hd-idle
START_HD_IDLE=true
HD_IDLE_OPTS="-a sda -i 300 -l /var/log/hd-idle.log"
systemctl start hd-idle
systemctl enable hd-idle
- torrent
systemctl start transmission
systemctl stop transmission
vi /var/lib/transmission/.config/transmission-daemon/settings.json
"download-dir": "/mnt/data/torrent",
"incomplete-dir": "/mnt/data/torrent",
"rpc-whitelist": "127.0.0.1, 192.168.*.*",
"rpc-whitelist-enabled": true,
"watch-dir": "/mnt/data/torrent",
"watch-dir-enabled": true
systemctl start transmission
systemctl enable transmission
==> 이제 /mnt/data/torrent 에 torrent 파일 넣으면 자동으로 받아 질 거임.
webui 접속
1) browser 에서 "http://pogoplug's ip:9091/transmission" 으로 접속
2) 409: conflict 에러 하면 나올 거임.
화면 최하단에 X-Transmission-Session-Id: SwnfFIUTEE12DLmAKwEo7qjaX92Je67bxg1akevokYdfI14H 같은게 나옴.
3) 이제 "http://pogoplug's ip:9091/SwnfFIUTEE12DLmAKwEo7qjaX92Je67bxg1akevokYdfI14H" 로 접속하면
web ui 가 나옴.
- pogoplug 원 서비스 이용 하기
1) pacman -U http://dl.dropbox.com/u/15043728/pogoplug-3.3.0-1-arm.pkg.tar.xz
2) vi /etc/pogoplug.conf
vfsdir0=plugdata,/mnt/data
3) systemctl start pogoplug.service
4) http://my.pogoplug.com --> 활성화
5) cp /usr/local/cloudengines/bin/hbplug.conf /etc/pogoplug.conf
6) cat /etc/pogoplug.conf 해서 마지막 줄에 svcid 가 있는 것 확인 해야 함.
- static ip 설정
CONNECTION='ethernet'
DESCRIPTION='A basic static ethernet connection using iproute'
INTERFACE='eth0'
IP='static'
ADDR='192.168.219.11'
NETMASK='255.255.255.0'
GATEWAY='192.168.219.1'
DNS=('1.214.68.2 61.41.153.2')
- fstab
사용 하드의 3번 파티션이 결국 주 data 저장 장소가 됨.
이것을 부팅 할 때 mount 시키기 위한 거임.
추가한 사용자 [name] 의 home directory 에도 동일 하게 mount 시키기 위해 아래와 같이 함.
swap 파티션 역시 부팅 때 자동으로 swap 장소로 사용 되게 하기위해 역시 fstab 에 추가 함.
# <file system> <dir> <type> <options> <dump> <pass>
/dev/sda4 none swap defaults 0 0
/dev/sda3 /mnt/data ext3 defaults 0 2
/mnt/data /home/[name]/data none bind
- S.M.A.R.T
pacman -Sy smartmontools
sudo smartctl -a /dev/sda
- 기타 짜지부리 한 것들...
alias ls='ls --color=auto'
alias ll='ls -al'
alias vi='vim'
PATH=$PATH:$HOME/bin
pacman -Sy vim
pacman -Sy htop
pacman -Sy mc
pacman -Sy gcc
pacman -Sy make