ZFS 오류 복구 4 (정확히는 5)
ZFS 오류 복구 3 (정확히는 4)

시게이트 ST3000DM001 (/dev/sdb)가 하다 더 맛이 갔다.
지난번까지는 HGST HDN724030ALE640로 교체했지만,
이번에는 TOSHIBA DT01ACA300 모델로 교체했다.
과정은 전과 같음.

by 시험さま | 2016/12/05 09:32 | 컴퓨터 | 트랙백 | 덧글(0)
Bash here strings
# Here Strings
$ cat <<<asdf
asdf

# Process substitution
$ cat < <(echo asdf)
asdf
$ cat <(echo asdf)
asdf

$ echo asdf | cat
asdf

by 시험さま | 2016/07/11 13:04 | 컴퓨터 | 트랙백 | 덧글(0)
ZFS 오류 복구 3 (정확히는 4)
하드 디스크 6개 짜리 RAID-Z2 볼륨에서 네 번째로 디스크 문제가 생겼다.
2013년 4월에 Seagate Barracuda ST3000DM001 모델 6개로 구성했는데
만 2년이 지난 (보증기간이 딱 지난) 2015년 6월부터 하나씩 문제가 생기더니 최근 1년 사이에 4개째다.

처음 두 개는 같은 모델 여분의 디스크로 교체하다가 뭔가 아니다 싶어서
이후부터는 다른 모델로 교체했다 (HGST HDN724030ALE640).

오늘 생긴 문제는 디스크가 죽는 수준은 아니고
배드섹터 전단계의 섹터가 8개 나왔다는 SMART 경고가 메일로 날아온 것이었다.

접속해서 살펴본 SMART 정보는 아래와 같았다.

$ sudo smartctl -a /dev/sdd
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.4.0-22-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.14 (AF)
Device Model:     ST3000DM001-1CH166
Serial Number:   
W1F2***P
LU WWN Device Id: 5 ****** *********
Firmware Version: CC29
User Capacity:    3,000,592,982,016 bytes [3.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-2, ACS-3 T13/2161-D revision 3b
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Fri May 20 09:33:47 2016 KST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x82) Offline data collection activity
                                        was completed without error.
                                        Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0) The previous self-test routine completed
                                        without error or no self-test has ever
                                        been run.
Total time to complete Offline
data collection:                (  584) seconds.
Offline data collection
capabilities:                    (0x7b) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new
                                        command.
                                        Offline surface scan supported.
                                        Self-test supported.
                                        Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine
recommended polling time:        (   1) minutes.
Extended self-test routine
recommended polling time:        ( 334) minutes.
Conveyance self-test routine
recommended polling time:        (   2) minutes.
SCT capabilities:              (0x3085) SCT Status supported.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   119   099   006    Pre-fail  Always       -       215018960
  3 Spin_Up_Time            0x0003   095   094   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       111
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   066   060   030    Pre-fail  Always       -       51590300588
  9 Power_On_Hours          0x0032   070   070   000    Old_age   Always       -       26806
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       110
183 Runtime_Bad_Block       0x0032   100   100   000    Old_age   Always       -       0
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   100   000    Old_age   Always       -       0 0 0
189 High_Fly_Writes         0x003a   099   099   000    Old_age   Always       -       1
190 Airflow_Temperature_Cel 0x0022   063   057   045    Old_age   Always       -       37 (Min/Max 30/40)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       78
193 Load_Cycle_Count        0x0032   100   100   000    Old_age   Always       -       326
194 Temperature_Celsius     0x0022   037   043   000    Old_age   Always       -       37 (0 21 0 0 0)
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       8
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       8
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       26789h+20m+37.089s
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       23185738315
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       201664198103

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.



경험상 이 모델은 믿을 수 없으므로, 문제의 소지가 발견된 순간 바로 교체했다.

(이 모델의 유독 높은 오류발생률은 이미 유명하다.
 CSI: Backblaze – Dissecting 3TB Drive Failure
    https://www.backblaze.com/blog/3tb-hard-drive-failure/ )

$ sudo zpool status
  pool: tank
 state: ONLINE
  scan: scrub repaired 0 in 6h11m with 0 errors on Sun May 15 07:11:19 2016
config:

        NAME                                 STATE     READ WRITE CKSUM
        tank                                 ONLINE       0     0     0
          raidz2-0                           ONLINE       0     0     0
            sda                              ONLINE       0     0     0
            sdb                              ONLINE       0     0     0
            ata-ST3000DM001-1CH166_W1F2***8  ONLINE       0     0     0
            ata-ST3000DM001-1CH166_W1F2***P  ONLINE       0     0     0
            sde                              ONLINE       0     0     0
            ata-ST3000DM001-1CH166_W1F2***E  ONLINE       0     0     0

errors: No known data errors
$ sudo zpool offline
tank ata-ST3000DM001-1CH166_W1F2***P
$ sudo zpool status
  pool:
tank
 state: DEGRADED
status: One or more devices has been taken offline by the administrator.
        Sufficient replicas exist for the pool to continue functioning in a
        degraded state.
action: Online the device using 'zpool online' or replace the device with
        'zpool replace'.
  scan: scrub repaired 0 in 6h11m with 0 errors on Sun May 15 07:11:19 2016
config:

        NAME                                 STATE     READ WRITE CKSUM
       
tank                                 DEGRADED     0     0     0
          raidz2-0                           DEGRADED     0     0     0
            sda                              ONLINE       0     0     0
            sdb                              ONLINE       0     0     0
            ata-ST3000DM001-1CH166_W1F2***8  ONLINE       0     0     0
            ata-ST3000DM001-1CH166_W1F2***P  OFFLINE      0     0     0
            sde                              ONLINE       0     0     0
            ata-ST3000DM001-1CH166_W1F2***E  ONLINE       0     0     0

errors: No known data errors

$ sudo hdparm -Y /dev/sdd

/dev/sdd:
 issuing sleep command

[ 문제 생긴 하드디스크 제거하고, 새 하드디스크 끼움 ]

$ sudo sgdisk -R /dev/sdd /dev/sde
The operation has completed successfully.
$ sudo sgdisk -G /dev/sdd
The operation has completed successfully.
$ sudo zpool replace
tank ata-ST3000DM001-1CH166_W1F2***P /dev/sdd
$ sudo zpool status
  pool:
tank
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will
        continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since Fri May 20 09:51:54 2016
    169M scanned out of 7.60T at 9.93M/s, 222h49m to go
    26.7M resilvered, 0.00% done
config:

        NAME                                   STATE     READ WRITE CKSUM
       
tank                                   DEGRADED     0     0     0
          raidz2-0                             DEGRADED     0     0     0
            sda                                ONLINE       0     0     0
            sdb                                ONLINE       0     0     0
            ata-ST3000DM001-1CH166_W1F2***8    ONLINE       0     0     0
            replacing-3                        OFFLINE      0     0     0
              ata-ST3000DM001-1CH166_W1F2***P  OFFLINE      0     0     0
              sdd                              ONLINE       0     0     0  (resilvering)
            sde                                ONLINE       0     0     0
            ata-ST3000DM001-1CH166_W1F2***E    ONLINE       0     0     0

errors: No known data errors
$ sudo zpool online /dev/sdd
missing device name
usage:
        online <pool> <device> ...
$ sudo zpool online tank /dev/sdd
$ sudo zpool status
  pool: tank
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will
        continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since Fri May 20 09:52:49 2016
    114M scanned out of 7.60T at 12.7M/s, 174h25m to go
    17.7M resilvered, 0.00% done
config:

        NAME                                   STATE     READ WRITE CKSUM
        tank                                   DEGRADED     0     0     0
          raidz2-0                             DEGRADED     0     0     0
            sda                                ONLINE       0     0     0
            sdb                                ONLINE       0     0     0
            ata-ST3000DM001-1CH166_W1F2***8    ONLINE       0     0     0
            replacing-3                        DEGRADED     0     0     0
              ata-ST3000DM001-1CH166_W1F2***P  OFFLINE      0     0     0
              sdd                              ONLINE       0     0     0  (resilvering)
            sde                                ONLINE       0     0     0
            ata-ST3000DM001-1CH166_W1F2***E    ONLINE       0     0     0

errors: No known data errors
$ sudo smartctl -a /dev/sdd
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.4.0-22-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     HGST Deskstar NAS
Device Model:     HGST HDN724030ALE640
Serial Number:    PK************
LU WWN Device Id: 5 ****** *********
Firmware Version: MJ8OA5E0
User Capacity:    3,000,592,982,016 bytes [3.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS T13/1699-D revision 4
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Fri May 20 10:03:08 2016 KST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x80) Offline data collection activity
                                        was never started.
                                        Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0) The previous self-test routine completed
                                        without error or no self-test has ever
                                        been run.
Total time to complete Offline
data collection:                (   24) seconds.
Offline data collection
capabilities:                    (0x5b) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new
                                        command.
                                        Offline surface scan supported.
                                        Self-test supported.
                                        No Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine
recommended polling time:        (   1) minutes.
Extended self-test routine
recommended polling time:        ( 454) minutes.
SCT capabilities:              (0x003d) SCT Status supported.
                                        SCT Error Recovery Control supported.
                                        SCT Feature Control supported.
                                        SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000b   100   100   016    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0005   100   100   054    Pre-fail  Offline      -       0
  3 Spin_Up_Time            0x0007   100   100   024    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0012   100   100   000    Old_age   Always       -       1
  5 Reallocated_Sector_Ct   0x0033   100   100   005    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000b   100   100   067    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0005   100   100   020    Pre-fail  Offline      -       0
  9 Power_On_Hours          0x0012   100   100   000    Old_age   Always       -       0
 10 Spin_Retry_Count        0x0013   100   100   060    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       1
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       1
193 Load_Cycle_Count        0x0012   100   100   000    Old_age   Always       -       1
194 Temperature_Celsius     0x0002   153   153   000    Old_age   Always       -       39 (Min/Max 25/39)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0022   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0008   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x000a   200   200   000    Old_age   Always       -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

[ ... 몇 시간 뒤 ... ]

$ sudo zpool status
  pool: tank
 state: ONLINE
  scan: resilvered 1.26T in 6h5m with 0 errors on Fri May 20 15:58:10 2016
config:

        NAME                                 STATE     READ WRITE CKSUM
        tank                                 ONLINE       0     0     0
          raidz2-0                           ONLINE       0     0     0
            sda                              ONLINE       0     0     0
            sdb                              ONLINE       0     0     0
            ata-ST3000DM001-1CH166_W1F2***8  ONLINE       0     0     0
            sdd                              ONLINE       0     0     0
            sde                              ONLINE       0     0     0
            ata-ST3000DM001-1CH166_W1F2***E  ONLINE       0     0     0



헌 디스크 분리하고, 새 디스크 다는 과정에서 생긴 dmesg 로그는 아래와 같았다.
훌륭하게 된 건지는 모르겠고, 리눅스 가동중인 상태에서도 교체는 그럭저럭 가능했다.

그나마 4칸짜리 하드디스크랙(앤디코 하드랙 EasySTOR 340SS)을 설치해뒀기에 가능한 일이었다.
전에 PC 케이스의 내장 HDD 자리에 달려있던 디스크가 죽었을때는 어쩔 수 없이 전원 끄고 작업했다.

[ 2480.379574] ata6.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6
[ 2480.379593] ata6.00: waking up from sleep
[ 2480.379602] ata6: hard resetting link
[ 2480.875513] ata6: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 2485.879314] ata6.00: qc timeout (cmd 0xef)
[ 2485.879325] ata6.00: failed to enable AA (error_mask=0x4)
[ 2485.879340] ata6.00: revalidation failed (errno=-5)
[ 2485.879352] ata6: hard resetting link
[ 2487.827261] ata6: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 2487.828588] ata6.00: configured for UDMA/133
[ 2487.828608] ata6: EH complete
[ 2498.547835] ata6: exception Emask 0x10 SAct 0x0 SErr 0x4090000 action 0xe frozen
[ 2498.547853] ata6: irq_stat 0x00400040, connection status changed
[ 2498.547865] ata6: SError: { PHYRdyChg 10B8B DevExch }
[ 2498.547877] ata6: hard resetting link
[ 2499.274910] ata6: SATA link down (SStatus 0 SControl 300)
[ 2504.274764] ata6: hard resetting link
[ 2504.594763] ata6: SATA link down (SStatus 0 SControl 300)
[ 2504.594773] ata6: limiting SATA link speed to 1.5 Gbps
[ 2509.594595] ata6: hard resetting link
[ 2509.914603] ata6: SATA link down (SStatus 0 SControl 310)
[ 2509.914613] ata6.00: disabled
[ 2509.914627] ata6: EH complete
[ 2509.914639] ata6.00: detaching (SCSI 5:0:0:0)
[ 2509.915756] sd 5:0:0:0: [sdd] Synchronizing SCSI cache
[ 2509.915801] sd 5:0:0:0: [sdd] Synchronize Cache(10) failed: Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[ 2509.915805] sd 5:0:0:0: [sdd] Stopping disk
[ 2509.915818] sd 5:0:0:0: [sdd] Start/Stop Unit failed: Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[ 2517.525330] ata6: exception Emask 0x10 SAct 0x0 SErr 0x4040000 action 0xe frozen
[ 2517.525351] ata6: irq_stat 0x00000040, connection status changed
[ 2517.525363] ata6: SError: { CommWake DevExch }
[ 2517.525376] ata6: hard resetting link
[ 2527.546060] ata6: softreset failed (device not ready)
[ 2527.546076] ata6: hard resetting link
[ 2529.897990] ata6: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 2529.899553] ata6.00: ATA-8: HGST HDN724030ALE640, MJ8OA5E0, max UDMA/133
[ 2529.899559] ata6.00: 5860533168 sectors, multi 0: LBA48 NCQ (depth 31/32), AA
[ 2529.901185] ata6.00: configured for UDMA/133
[ 2529.901196] ata6: EH complete
[ 2529.901471] scsi 5:0:0:0: Direct-Access     ATA      HGST HDN724030AL A5E0 PQ: 0 ANSI: 5
[ 2529.901829] sd 5:0:0:0: [sdd] 5860533168 512-byte logical blocks: (3.00 TB/2.73 TiB)
[ 2529.901831] sd 5:0:0:0: Attached scsi generic sg3 type 0
[ 2529.901839] sd 5:0:0:0: [sdd] 4096-byte physical blocks
[ 2529.901920] sd 5:0:0:0: [sdd] Write Protect is off
[ 2529.901925] sd 5:0:0:0: [sdd] Mode Sense: 00 3a 00 00
[ 2529.901952] sd 5:0:0:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 2529.924141] sd 5:0:0:0: [sdd] Attached SCSI disk

by 시험さま | 2016/05/20 10:44 | 컴퓨터 | 트랙백(1) | 덧글(0)
Ubuntu 14.04 LTS -> 16.04 LTS 업그레이드
업무상 잡용도로 혼자 쓰는 우분투 서버를 운영한다.
루트파일시스템으로 btrfs 파일시스템을 쓰고 잡 백업 용도로 zfs raid-z2 볼륨을 구성해 쓴다.

처음엔 Ubuntu 12.04를 설치해서 한두해 쓰다가 몇 달 전에 14.04로 업그레이드했고,
이번에 다시 16.04로 업그레이드했다.

14.04 LTS -> 16.04 LTS 업그레이드하며 겪은 일을 생각나는대로 간단히 적어둔다.

업그레이드는 $ sudo do-release-upgrade -d 식으로 했다.
아직 14.04 -> 16.04 업그레이드가 정식으로 오픈되지 않은 상태이므로 -d 옵션을 줘야 했다.
운영중인 시스템에 이렇게 실험적인 업그레이드를 시도한 것은 btrfs snapshot 기능을 믿었기 때문이다.

btrfs snapshot을 이용한 안전한 do-release-upgrade 실험
    http://chanik.egloos.com/4099097

업그레이드는 위 글에 나온 식으로 @_16.04, @home_16.04 snapshot을 만들고
그 스냅샷으로 부팅한 상태에서 진행했다. 하다가 꼬이면 그냥 스냅샷을 날려버리고 원복할 생각이었다.

12.04 LTS -> 14.04 LTS 때와 달라진 점은 Ubuntu 16.04 LTS가 zfs를 커널 자체에서 지원하게 된 것이다.
14.04에서 http://zfsonlinux.org/ 리포로부터 설치해서 쓰던 zfs 모듈이 16.04에서는 커널 자체모듈로 대체되고,
zfsutils-linux 패키지도 http://zfsonlinux.org/ 리포의 것이 아닌, 우분투 자체 리포의 것을 써야 했다.

업그레이드 전에는 http://zfsonlinux.org/ 리포를 꺼야 했고,
업그레이드 뒤에는 자동으로 zfs 볼륨이 올라오지 않는 현상 때문에 아래와 같이
zfsutils-linux 패키지를 자체 리포의 것으로 교체해야 했다.

ZFS Pools not mounted 16.04
    http://askubuntu.com/questions/768179/zfs-pools-not-mounted-16-04

$ sudo apt-get remove zfs-doc
$ sudo apt-get install zfsutils-linux


그리고, remove 할 때 zfs-auto-snapshot 패키지도 함께 사라져서 아래와 같이 다시 설치했다.

$ wget https://github.com/zfsonlinux/zfs-auto-snapshot/archive/master.zip
$ unzip master.zip
$ cd zfs-auto-snapshot-master
$ sudo make install


그냥 설치했다가 "/bin/sh: 1: zfs-auto-snapshot: not found" 오류를 겪고 나서,
make install 전에 etc/zfs-auto-snapshot.cron.frequent 스크립트를 아래와 같이 수정해야 했다.

PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin"

*/15 * * * * root zfs-auto-snapshot -q -g --label=frequent --keep=4  //


12.04 LTS -> 14.04 LTS 때와 달라진 점 또 한 가지는,
16.04 LTS에서는 python 2를 없애버려도 된다는 것이다.
아래와 같이 했다.

Ubuntu 16.04 LTS 파이썬2 제거
    http://chanik.egloos.com/4112679


끝으로, PostgreSQL 버전이 9.3 -> 9.5로 바뀌었으므로 데이터를 새 버전으로 이전해야 했다.
지난 번 12.04 LTS -> 14.04 LTS 업그레이드때도 해야 했던 작업이었고 아래 글을 참조했다.

Upgrading PostgreSQL 9.1 to 9.3 in Ubuntu
    http://nixmash.com/postgresql/upgrading-postgresql-9-1-to-9-3-in-ubuntu/

위 글의 명령대로 하면 너무 느리기도 하고 중간에 오류도 생겨서, 아래와 같이 좀 수정된 명령을 썼다.
( 그리고, 내가 관리하는 DB는 테이블이 너무 많고 데이터도 많아서 변환중에 오류를 뿜었다.
 /etc/postgresql/9.3/main/postgresql.conf 을 임시로 수정해서
 max_locks_per_transaction = 640 정도로 임시설정하고 다시 변환해야 했다)

$ sudo service postgresql stop
$ sudo pg_dropcluster --stop 9.5 main
$ sudo pg_upgradecluster -k -m upgrade 9.3 main
$ sudo service postgresql start 9.5
$ pg_dropcluster --stop 9.3 main

ㅇ "-m upgrade" means using pg_upgrade instead of pg_dump & pg_restore,
ㅇ "-k" means using hard links instead of file copying (so it can be used only if old DB and new DB is in the same partition). Manual page states that "-k" is merely passed to the pg_upgrade comand.

by 시험さま | 2016/05/09 18:37 | 트랙백 | 덧글(0)
Ubuntu 16.04 LTS 파이썬2 제거
14.04 -> 16.04 로 do-release-upgrade -d 방식으로 업그레이드하면
python2와 python3가 공존하는 형태로 설치된다.

python2를 없애고 python3만 남겨 쓰기 위해 아래와 같이 했다.


https://wiki.ubuntu.com/XenialXerus/ReleaseNotes

Python 3

Python2 is not installed anymore by default on the server, cloud and the touch images, long live Python3! Python3 itself has been upgraded to the 3.5 series.

If you have your own programs based on Python 2, fear not! Python 2 will continue to be available (as the python package) for the foreseeable future. However, to best support future versions of Ubuntu you should consider porting your code to Python 3. Python/3 has some advice and resources on this.


http://askubuntu.com/questions/761106/how-to-remove-python-2-in-16-04

# apt purge python2.7-minimal

이 상태에서 python을 실행하면 조용히 python3가 실행되는 것이 아니고 무슨 헛소리가 나온다.
아래와 같이 해 줘야 비로소 python 명령으로 자연스럽게 python3을 실행할 수 있다.

https://linuxconfig.org/how-to-change-from-default-to-alternative-python-version-on-debian-linux

# update-alternatives --install /usr/bin/python python /usr/bin/python3.5 1


by 시험さま | 2016/04/29 09:20 | 컴퓨터 | 트랙백 | 핑백(1) | 덧글(0)
Btrfs send/receive
500GB 하드디스크 두 개에 Btrfs RAID1 볼륨으로 루트파일시스템이 설치되어 있는 상태인데
이 부트파티션을 다른 테스트PC로 간단히 복제해 쓰고 싶어서 했던 작업 기록.
작업 며칠 뒤에 편집하고 재구성한 것이라서 기록이 좀 미비하다.
설치되어 있던 배포판은 CentOS-7.

볼륨 구성은 아래와 같다.

$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 465.8G  0 disk
├sda1   8:1    0   500M  0 part
├sda2   8:2    0 457.4G  0 part /home/chanik/a
└sda3   8:3    0   7.9G  0 part [SWAP]
sdb      8:16   0 465.8G  0 disk
└sdb1   8:17   0 457.4G  0 part

$ sudo fdisk -l
Disk /dev/sda: 500.1 GB, 500107862016 bytes, 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 label type: dos
Disk identifier: 0x000724aa

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048   960258047   479616000   83  Linux
/dev/sda3       960258048   976773119     8257536   82  Linux swap / Solaris

Disk /dev/sdb: 500.1 GB, 500107862016 bytes, 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 label type: dos
Disk identifier: 0x000a6749

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048   959234047   479616000   83  Linux

sda1은 원래는 /boot 용도였지만 지금은 쓰지 않는 파티션.
sda2는 sdb1과 함께 Btrfs RAID1 볼륨. CentOS-7 설치된 상태.
sda3은 SWAP 파티션.

$ sudo btrfs fi df /
Data, RAID1: total=99.00GiB, used=98.39GiB
System, RAID1: total=32.00MiB, used=16.00KiB
Metadata, RAID1: total=1.00GiB, used=401.73MiB
GlobalReserve, single: total=144.00MiB, used=0.00

$ sudo btrfs fi show /
Label: 'cl_dev-xt'  uuid: 8352dc38-bf60-4ecd-a84e-452f67c9b78b
        Total devices 2 FS bytes used 98.78GiB
        devid    1 size 457.40GiB used 100.03GiB path /dev/sda2
        devid    2 size 457.40GiB used 100.03GiB path /dev/sdb1


#
# 원본 Btrfs 파티션 마운트
#

$ mkdir a
$ sudo mount /dev/sda2 a
$ cd a
$ ls -l
drwxr-xr-x. 1 root root 1326 Nov  9 14:02 boot
drwxr-xr-x. 1 root root   12 Nov  6 19:02 home
dr-xr-xr-x. 1 root root  188 Nov 13 20:31 root


#
# 각 서브볼륨에 대해 snapshot 을 작성하고, snapshot 들을 읽기전용으로 변경
# 읽기전용이 아니면 send 시도할때 오류가 생긴다.
#

$ sudo btrfs subvolume snapshot boot boot_
$ sudo btrfs subvolume snapshot root root_
$ sudo btrfs subvolume snapshot home home_

$ sudo btrfs subvolume snapshot -r boot boot_
$ sudo btrfs subvolume snapshot -r root root_
$ sudo btrfs subvolume snapshot -r home home_

$ ls -l
drwxr-xr-x. 1 root root 1326 Nov  9 14:02 boot
drwxr-xr-x. 1 root root 1326 Nov  9 14:02 boot_
drwxr-xr-x. 1 root root   12 Nov  6 19:02 home
drwxr-xr-x. 1 root root   12 Nov  6 19:02 home_
dr-xr-xr-x. 1 root root  188 Nov 13 20:31 root
dr-xr-xr-x. 1 root root  188 Nov 13 20:31 root_

$ cd ..


#
# - 새 하드디스크 /dev/sdc 연결하고 파티션테이블 레이아웃 복제 (새 디스크도 500GB 짜리)
# - /dev/sdc3에 SWAP 파티션 생성
# - /dev/sdc2에 Btrfs 파일시스템 생성 (원본은 RAID1볼륨이지만 새 볼륨은 단일디스크 볼륨)
#

$ sudo sfdisk -d /dev/sda | sudo sfdisk /dev/sdc
$ sudo mkswap /dev/sdc3
$ sudo mkfs.btrfs /dev/sdc2


#
# 새로 만든 Btrfs 파티션을 마운트하고 마운트 디렉토리로 이동
#

$ mkdir c
$ sudo mount /dev/sdc2 c
$ cd c


#
# 원본 Btrfs 서브볼륨들에 대해 만들어둔 읽기전용 스냅샷을 하나씩 send 하고
# 새로 만든 Btrfs 파티션에서 receive.
#

$ for v in ../a/*_; do sudo btrfs send $v | sudo btrfs receive .; done


#
# 이제 새 디스크의 새 Btrfs 파티션에 서브볼륨들이 복제된 상태다.
# 원본은 RAID1 볼륨이었으나 새 볼륨은 단일디스크 볼륨이며, 내용물은 동일한 상태가 된다.
# 각 서브볼륨 이름을 변경하고, 읽기전용 속성도 풀어준다.
#

$ sudo mv boot_ boot
$ sudo mv root_ root
$ sudo mv home_ home
$ sudo btrfs property set -ts boot ro false
$ sudo btrfs property set -ts root ro false
$ sudo btrfs property set -ts home ro false


#
# 새 볼륨의 boot/grub2/grub.cfg 파일 적당히 편집하고
# chroot해서 grub2-install 등도 해 준다.
# 이제 새 디스크에 부트파티션의 Btrfs 볼륨이 복제되었고 grub2도 설치되었으므로
# 새 PC로 가져가서 부팅용으로 쓰면 된다.
#
# 해보니 일단 부팅은 잘 되는데,
# 일부 패키지들의 실행파일 setuid 비트가 제대로 옮겨지지 않아서 자잘한 문제가 생겼다.
# 이를테면, hostnamectl로 기기명을 변경해도 재부팅하면 다시 원래대로 되돌아가버린다든지..
#
# 아래 명령으로 전체 패키지를 재설치시켜서 해결했다. 물론 시간이 좀 걸린다.
#

$ sudo yum reinstall `rpm -qa`


by 시험さま | 2015/12/01 10:34 | 컴퓨터 | 트랙백 | 덧글(0)
P5QL-EM 보드, Marvell 88SE6121
Asus P5QL-EM 보드에서 CentOS7을 잠시 돌려보면서 눈에 띈 점을 적어둔다.

P5QL-EM 보드에는 사우스브리지 ICH10에서 제공되는 SATA 3Gbps 포트 6개 말고도
Marvell 88SE6121콘트롤러를통해제공되는eSATA 3Gbps 포트 1개 및 PATA 포트 한 개가 더 있다.

이 콘트롤러에는 두 가지 드라이버 중 하나를 골라 쓸 수 있다.
하나는 pata_marvell, 또하나는 ahci.

pata_marvell은 SATA 및 PATA 포트 모두를 쓰게 해 주지만 eSATA hot plug 기능이 안 된다.
ahci를 쓰게 되면 eSATA hot plug가 가능해지지만(직접 확인하지는 않음) PATA 포트를 지원하지 않는다.

기본상태로는 88SE6121 드라이버로 pata_marvell 모듈이 쓰이게 된다.
ahci 모듈을 쓰려면 ahci.marvell_enable=1 커널 옵션을 주어야 하며,
/etc/default/grub 파일에 아래와 같이 추가하면 된다.

# * use ahci instead of pata_marvell for 88SE6121 SATA II / PATA controller.
#   this will enable eSATA hot plug at the cost of disabling the PATA port.
# * for booting on eSATA without hot plug, use pata_marvell.ko and
#   just include the pata_marvell module into the initramfs by creating
#   /etc/modules-load.d/pata_marvell.conf
GRUB_CMDLINE_LINUX="ahci.marvell_enable=1 rhgb quiet"


ahci 드라이버를 쓰면 아래와 같은 메시지가 나온다.

[    0.765629] ahci 0000:02:00.0: Disabling your PATA port. Use the boot option 'ahci.marvell_enable=0' to avoid this.
[    0.765638] ahci 0000:02:00.0: controller can't do NCQ, turning off CAP_NCQ
[    0.765639] ahci 0000:02:00.0: controller can't do PMP, turning off CAP_PMP
[    0.765641] ahci 0000:02:00.0: masking port_map 0x7 -> 0x3
[    0.765667] ahci: SSS flag set, parallel bus scan disabled
[    0.765705] ahci 0000:02:00.0: AHCI 0001.0000 32 slots 3 ports 3 Gbps 0x3 impl IDE mode
[    0.765708] ahci 0000:02:00.0: flags: 64bit stag led slum part


[참고] Linux에서의 88SE6121 SATA 포트 특징.
          (pata_marvell, ahci 뭘 쓰든 마찬가지로 나온다)

  - SATA 3.0Gbps
  - NCQ 미지원
  - PMP 미지원

[참고2] Linux IDE (PATA) driver problem workaround for Marvell 88SE6111, 88SE6121, 88SE6145
    https://en.wikipedia.org/wiki/List_of_Marvell_Technology_Group_chipsets#Linux_IDE_.28PATA.29_driver_problem_workaround_for_Marvell_88SE6111.2C_88SE6121.2C_88SE6145

by 시험さま | 2015/11/18 19:14 | 컴퓨터 | 트랙백 | 덧글(0)
IPMSB 플래시칩 교체로 바이오스 복구 (BIOS recovery)
IPMSB 보드를 쓴 PC가 몇 대 있느데,
그 가운데 한 놈에 바이오스 업데이트를 하다가 실수로 엉뚱한 버전을 입혀서
PC가 화면도 안 나오는 상태로 죽어버렸다.
이미지 크기가 안 맞는다는 둥 하는 경고 메시지가 나왔는데 그걸 무시한 것이 화근이었다.

세계적으로 많이 쓰이는 OEM 보드인 것 같은데,
인터넷을 뒤져도 별다른 해결방법이 나오지 않았고
국내수입사 홈페이지 FAQ를 보니 아래와 같은 안내가 나왔다.

바이오스 업데이트 실패후 복구 방법이 있나요?

바이오스 업데이트를 실패했다면 전문적인 장비로 복구를 해야합니다.
개인소비자께서 업데이트는 어려우므로 고객센터로 문의를 주셔야합니다.

보드를 분해해서 고객센터로 가려다,
문득 옛날에 쓰던 플래시칩 교체방법이 생각나서 간단히 해결할 수 있었다.

이 방법은 동일모델의 보드가 하나 더 있고 플래시칩에 소켓형식으로 분리가 가능할 때만 쓸 수 있는 방법이다.
보드를 살펴보니 플래시칩처럼 생긴 칩이 보였다.



대충 알아볼 수 있는 "winbond 250328" 로 검색해보니 다행히도 플래시칩이 맞았다.
아래와 같이 했다.


1. 전원을 분리한 상태에서, 문제가 생긴 보드의 플래시칩을 뽑아내고
    정상동작하는 동일보드의 플래시칩을 가져다 꽂는다.
    꽂는다기보다는 소켓위에 올려놓고 살짝만 눌러서 단자가 연결만 되게 하는 것이 이후 작업상 편하다.
  ( 이 때 꽂는 방향에 유의해야 한다. 거꾸로 꽂으면 칩에 타버릴 수 있다.
    칩의 한 쪽에 파인 자국이 있으므로 그것을 힌트삼아 적어두거나 사진을 찍어두는 것이 좋다 )

2. 전원연결하고 도스 부팅한다. 정상동작하는 바이오스가 제공되었으므로 보드가 살아날 것이다.

3. 도스부팅상태에서 (지금 살짝 꽂혀있는 다른 보드로부터 온) 바이오스칩을 제거하고
    문제가 생긴 원래의 바이오스칩으로 바꿔 꽂는다. 이 작업을 편하게 하기 위해 칩을 살짝만 끼운 것이다.

4. 정상동작하는 버전의 바이오스를 업데이트한다.
    문제가 생겼던 칩에 정상 바이오스가 입혀졌으니 재부팅하면 부팅이 잘 될 것이다.


그냥 디스켓이나 CD/DVD 갈아끼우는 기분으로 하면 된다.
다만, 동작중인 보드 표면 가까이에서 하는 작업이므로 혹시라도 플래시칩의 핀이나
(제거를 위해 사용할 수 있는) 드라이버 등의 금속 공구가 보드 패턴이나 각종 칩의 다리를 건드려
합선시키는 일이 생기지 않도록 긴장감은 유지해야 한다.


이런 동작이 가능한 이유는,
플래시칩에 전원이 공급되는 것은 아래의 두 경우 뿐이기 때문일 것이다.

  ㅇ 부팅초기에 칩에서 바이오스를 읽어들일 때 ==> 읽기 동작만 일어날 것이다
  ㅇ 바이오스 업데이트할 때 ==> 읽기와 쓰기가 모두 일어나는 경우가 많다

일단 POST 단계를 지나고 OS 부트로더로 제어가 넘어가고 나면
더이상 플래시칩에 전원이 제공되지 않으므로
동작중인 보드에서 플래시칩을 교체하는 일이 가능해지는 것이다.

( Windows 동작중에 바이오스 플래싱을 지원하는 프로그램이 제공되는 경우도 많은데,
  이 경우엔 플래싱이 일어나는 동안에만 칩에 전원이 제공되는 것이라 보면 될 것이다 )

사실 오래전부터 흔히 알려져 있는 방법인데,
요즘은 플래시칩이 소켓 형태로 분리되지 않고 납땜되어 있는 경우가 많아서
모든 보드에 적용하기는 어렵다.

by 시험さま | 2015/11/17 12:41 | 컴퓨터 | 트랙백 | 덧글(0)
PostgreSQL adminpack extention 설치
pgAdmin 사용중 DB 접속할 때마다 자꾸만 팝업 안내창이 뜨길래
PostgreSQL adminpack extention을 설치했다.


주의: 모든 db에 대해 CREATE EXTENSION adminpack; 실행해야 한다고 함.
     그렇게 해줘야 pgAdmin III 에서 DB접속시 경고가 사라진다.

$ cat /etc/centos-release
CentOS Linux release 7.1.1503 (Core)
$ sudo yum install postgresql-contrib
$ rpm -ql postgresql-contrib
/usr/share/pgsql/extension/adminpack--1.0.sql
/usr/share/pgsql/extension/adminpack.control
$ sudo -u postgres psql
psql (9.2.13)
Type "help" for help.

postgres=# select * from pg_extension;
 extname | extowner | extnamespace | extrelocatable | extversion | extconfig | e
xtcondition
---------+----------+--------------+----------------+------------+-----------+--------------
 plpgsql |       10 |           11 | f              | 1.0        |           |
(1 row)

postgres=# CREATE EXTENSION adminpack;
CREATE EXTENSION
postgres=# select * from pg_extension;
  extname  | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition
-----------+----------+--------------+----------------+------------+-----------+--------------
 plpgsql   |       10 |           11 | f              | 1.0        |           |
 adminpack |       10 |           11 | f              | 1.0        |           |
(2 rows)

postgres=# \c xtdata
You are now connected to database "xtdata" as user "postgres".
xtdata=# select * from pg_extension;
 extname | extowner | extnamespace | extrelocatable | extversion | extconfig | e
xtcondition
---------+----------+--------------+----------------+------------+-----------+--------------
 plpgsql |       10 |           11 | f              | 1.0        |           |
(1 row)

xtdata=# CREATE EXTENSION adminpack;
CREATE EXTENSION
xtdata=# select * from pg_extension;
  extname  | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition
-----------+----------+--------------+----------------+------------+-----------+--------------
 plpgsql   |       10 |           11 | f              | 1.0        |           |
 adminpack |       10 |           11 | f              | 1.0        |           |
(2 rows)

xtdata=# CREATE EXTENSION adminpack;
CREATE EXTENSION
xtdata=# \q
$

Ubuntu 14.04, Postgresql-9.3 에서도 아래와 같이 비슷하게 하면 됨.


$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.3 LTS
Release:        14.04
Codename:       trusty
$ sudo apt-get install postgresql-contrib
$ dpkg-query -L postgresql-contrib-9.3 | grep adminpack
/usr/share/postgresql/9.3/extension/adminpack--1.0.sql
/usr/share/postgresql/9.3/extension/adminpack.control
/usr/lib/postgresql/9.3/lib/adminpack.so
$ sudo -u postgres psql
psql (9.3.10)
Type "help" for help.

postgres=# select * from pg_extension;
 extname | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition
---------+----------+--------------+----------------+------------+-----------+--------------
 plpgsql |       10 |           11 | f              | 1.0        |           |
(1 row)

postgres=# CREATE EXTENSION adminpack;
CREATE EXTENSION
postgres=# select * from pg_extension;
  extname  | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition
-----------+----------+--------------+----------------+------------+-----------+--------------
 plpgsql   |       10 |           11 | f              | 1.0        |           |
 adminpack |       10 |           11 | f              | 1.0        |           |
(2 rows)

postgres=# \c xtdata
You are now connected to database "xtdata" as user "postgres".
xtdata=# select * from pg_extension;
 extname | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition
---------+----------+--------------+----------------+------------+-----------+--------------
 plpgsql |       10 |           11 | f              | 1.0        |           |
(1 row)

xtdata=# CREATE EXTENSION adminpack;
CREATE EXTENSION
xtdata=# select * from pg_extension;
  extname  | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition
-----------+----------+--------------+----------------+------------+-----------+--------------
 plpgsql   |       10 |           11 | f              | 1.0        |           |
 adminpack |       10 |           11 | f              | 1.0        |           |
(2 rows)

xtdata=# \q
$


그런데, CentOS5의 postgresql84 에서는 아래와 같이 좀 달랐음.

- Setting Up pgAdmin Server Instrumentation
    http://www.gistutor.com/postgresqlpostgis/6-advanced-postgresqlpostgis-tutorials/32-setting-up-pgadmin-server-instrumentation.html

- An almost idiot's guide to Install and Upgrade to PostgreSQL 8.4 with Yum
    http://www.postgresonline.com/journal/archives/144-An-almost-idiots-guide-to-Install-and-Upgrade-to-PostgreSQL-8.4-with-Yum.html

$ lsb_release -a
LSB Version:    :core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-ia32:printing-4.0-noarch
Distributor ID: CentOS
Description:    CentOS release 5.11 (Final)
Release:        5.11
Codename:       Final
$ sudo yum install postgresql84-contrib
$ rpm -ql postgresql84-contrib | grep adminpack
/usr/lib64/pgsql/adminpack.so
/usr/share/pgsql/contrib/adminpack.sql
/usr/share/pgsql/contrib/uninstall_adminpack.sql
$ sudo -u postgres psql
psql (8.4.20)
도움말을 보려면 "help"를 입력하십시오.

postgres=# select * from pg_extension;
오류:  "pg_extension" 이름의 릴레이션(relation)이 없습니다
줄 1: select * from pg_extension;
                    ^
postgres=# CREATE EXTENSION adminpack;
오류:  구문 오류, "EXTENSION" 부근
줄 1: CREATE EXTENSION adminpack;
             ^
postgres=# \q
$ sudo -u postgres psql -f /usr/share/pgsql/contrib/adminpack.sql
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
$

by 시험さま | 2015/11/12 12:56 | 컴퓨터 | 트랙백 | 덧글(0)
ASUS P5E3 Premium WiFi-AP
[1] 특징 간단 정리

ㅇ X48 칩셋 + ICH9R
ㅇ 노스브리지와 사우스브리지는 DMI로 연결되어 있다 (1GB/s full duplex)
ㅇ X48
    * PCIe 2.0 x16 포트 두 개 지원
ㅇ ICH9R
    * VT-d 지원
    * PCIe 1.1 포트 6개 지원
       - Ports 1-4 can be statically configured as 4x1, or 1x4
          ( 보드상의 x1 슬롯과 x16 슬롯 (동작은 x1 or x4)에 쓰이는 듯 )
       - Ports 5 and 6 can only be usedas two x1 ports
          ( JMB363과 Marvel 88E8056 NIC가 하나씩 쓰고 있는 듯 )

ㅇ SATA 3Gbps * 6 : ICH9R
ㅇ eSATA 3Gbps * 2 : JMB363


[2] AzureWave AW-NA830 - ASUS P5E3 Premium WiFi-AP 보드의 WiFi 어댑터 (USB)

AzureWave AW-NA830
    https://wikidevi.com/wiki/AzureWave_AW-NA830
    (참고: https://wikidevi.com/wiki/AzureWave_Wireless_Adapters )

802-11bgn 지원.
두 개의 RP-SMA 커넥터를 쓴다.
Ralink의 RT2770 / RT2720 두 개의 칩을 쓴다(?)

Probable Linux driver
rt2800usb (in backports) or rt2870sta
(see also passys)

Windows driver
see MediaTek's website



비표준 커넥터를 통해 메인보드에 USB 연결되어 있다.
( http://www.techspot.com/articles-info/89/images/Image_16.jpg )
( http://www.phoronix.com/image-viewer.php?id=asus_p5e3_premium&image=asus_p5e3p_wifi_lrg )


$ lsusb
Bus 001 Device 002: ID 0b05:1742 ASUSTek Computer, Inc. 802.11n Network Adapter




by 시험さま | 2015/11/05 09:34 | 컴퓨터 | 트랙백 | 덧글(0)
< 이전페이지 다음페이지 >