毎度忘れるのでメモ
まず、デスクトップ環境のキーボード・ショートカットを(使っていない&操作を奪われるので)削除
設定 > キーボード・ショートカット
そして、vscode のキーボード・ショートカットを設定: cursorColumnSelect
矩形ペーストは、矩形コピーした直後のIカーソルが複数表示されている状態で貼り付けすればよい
参考
- https://www.atmarkit.co.jp/ait/articles/1805/11/news022.html
私的メモと日常
毎度忘れるのでメモ
まず、デスクトップ環境のキーボード・ショートカットを(使っていない&操作を奪われるので)削除
設定 > キーボード・ショートカット
そして、vscode のキーボード・ショートカットを設定: cursorColumnSelect
矩形ペーストは、矩形コピーした直後のIカーソルが複数表示されている状態で貼り付けすればよい
1 2 3 4 5 6 7 |
$ uname -a ; lsb_release -a Linux ***** 4.4.0-109-lowlatency #132-Ubuntu SMP PREEMPT Tue Jan 9 20:43:47 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux LSB Version: core-9.20160110ubuntu0.2-amd64:core-9.20160110ubuntu0.2-noarch:printing-9.20160110ubuntu0.2-amd64:printing-9.20160110ubuntu0.2-noarch:security-9.20160110ubuntu0.2-amd64:security-9.20160110ubuntu0.2-noarch Distributor ID: Ubuntu Description: Ubuntu 16.04.6 LTS Release: 16.04 Codename: xenial |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# x86_64-w64-mingw32-gcc sudo apt install gcc-mingw-w64-x86-64 # x86_64-w64-mingw32-g++ sudo apt install g++-mingw-w64-x86-64 # x86_64-w64-mingw32-gnat sudo apt install gnat-mingw-w64-x86-64 # i686-w64-mingw32-gfortran sudo apt install gfortran-mingw-w64-x86-64 # x86_64-w64-mingw32-windres # i686-w64-mingw32-gcc sudo apt install gcc-mingw-w64-i686 # i686-w64-mingw32-g++ sudo apt install g++-mingw-w64-i686 # i686-w64-mingw32-gnat sudo apt install gnat-mingw-w64-i686 # i686-w64-mingw32-gfortran sudo apt install gfortran-mingw-w64-i686 # i686-w64-mingw32-windres |
~/golang/
に展開~/go/
で行う.bashrc
:
1 2 3 4 |
# golang export PATH=$PATH:$HOME/golang/bin export GOPATH=$HOME/go export PATH=$PATH:$GOPATH/bin |
1 2 |
$ go version go version go1.13 linux/amd64 |
1 2 3 4 |
$ cd go/hello-walk $ GOOS=windows GOARCH=amd64 go get github.com/lxn/walk $ GOOS=windows GOARCH=386 go get github.com/lxn/walk $ go get github.com/akavel/rsrc |
hello-walk.go
そのまんま使用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
package main import ( "strings" "github.com/lxn/walk" . "github.com/lxn/walk/declarative" // . ドットをつけるとパッケージ名を省略して呼び出せる ) func main() { var inTE, outTE *walk.TextEdit MainWindow{ Title: "SCREAMO", MinSize: Size{600, 400}, Layout: VBox{}, Children: []Widget{ HSplitter{ Children: []Widget{ TextEdit{AssignTo: &inTE}, TextEdit{AssignTo: &outTE, ReadOnly: true}, }, }, PushButton{ Text: "SCREAM", OnClicked: func() { outTE.SetText(strings.ToUpper(inTE.Text())) }, }, }, }.Run() } |
下記のマニフェストは <trustInfo>
セクションを付けてあり
管理者権限での実行用にしてある
Linux では Windows のユーザーアカウント制御 (UAC; User Account Control) 関係ないので通常のユーザーで実行です
hello-walk.manifest
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator"/> </requestedPrivileges> </security> </trustInfo> <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="Hogehoge" type="win32"/> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/> </dependentAssembly> </dependency> <application xmlns="urn:schemas-microsoft-com:asm.v3"> <windowsSettings> <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2, PerMonitor</dpiAwareness> <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">True</dpiAware> </windowsSettings> </application> </assembly> |
amd64
を 386
に変える
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$ # リソースファイル .syso を生成, 拡張子が合っていればOK $ GOOS=windows GOARCH=amd64 rsrc -manifest hello-walk.manifest -o rsrc.syso $ # マニフェストのファイル名を変更するのはやめてシンボリックリンク $ ln -s hello-walk.manifest hello-walk.exe.manifest $ # ビルド, ソースファイルを指定しないこと, リソースは結合してくれる $ GOOS=windows GOARCH=amd64 go build -ldflags="-H windowsgui" -o hello-walk.exe $ # linux では実行エラーになる wine が古いかも $ wine --version wine-3.0.4 $ wine hello-walk.exe 002e:fixme:process:SetProcessPriorityBoost (0xffffffffffffffff,1): stub |
して動作した
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ sudo apt-get remove winehq-stable ### Ubuntu 19.04 $ sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ disco main' ### Ubuntu 18.04 $ sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main' ### Ubuntu 16.04 $ sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ xenial main' $ sudo apt-get update $ sudo apt-get install --install-recommends winehq-stable $ wine --version wine-4.0.1 |
Download: https://sevenzip.osdn.jp/download.html
選択: ダウンロード, .7z, 32ビット, 7-Zip Extra: 7z形式のライブラリ、インストーラ用のSFXモジュール、FAR Manager用のプラグイン
File: 7z920_extra.7z
このファイルを展開して 7zS.sfx を取り出す
1 |
$ sudo apt install p7zip-full |
1 2 3 |
;!@Install@!UTF-8! ExecuteFile="Setup_1-0-0.exe" ;!@InstallEnd@! |
1 2 |
$ 7z a ./temp.7z ./Setup_1-0-0.exe ./prg/ ./data/ $ cat ./7zS.sfx ./config.txt ./temp.7z > ./setup.exe |
Synology DiskStation DS218j 2ベイ NAS キット デュアルコアCPU搭載
説明書に従ってハードディスク2台を取り付け
2TB HDD WD 3.5″ Red Package, HDD1 (上), HDD2 (下)
LANケーブル接続、電源ON
http://192.168.11.28/ にアクセスすると下記へリダイレクトされる
http://192.168.11.28:5000/web_index.html
[Setup]
Install DiskStation Manager (DSM)
[Install Now]
10分程待つ
Create your administrator account
Server name: my-server
Username: user-example
Password: ******
[Next]
DSM Update & Maintenance
[on] Install the important updates of DSM automatically
installation schedule Wed,Sat 00:30
[on] Run S.M.A.R.T. tests
[on] Enable bad sector warning for drives Number of bad sectors: 50
[Next]
Set up QuickConnect
Email address: info@example.com
Password: ******
Region: Japan
QuickConnect ID: example-id
QuickConnect Is Ready
http://QuickConnect.to/example-id
ゲストユーザーを有効にして、パスワードを無効にする
Control Panel
User > Advanced
[off] Minimal password length
[Apply]
User
guest [Edit]
Password: “Set empty”
[on] Disallow the user to change account password
[off] Disable this account
[OK]
ゲストユーザーでアクセス可能な共有フォルダを作成
Shared Folder
[Create]
Name: share
[on] Enable Recycle bin
[off] Restrict access to administrators only
[Next]
[off] Encrypt this shared folder
[Next]
[Apply]
Edit Shared Folder
share guest [on] Read/Write
[OK]
設定は以上で終了
注意:万が一を考えて これを試す場合は本番データーを入れる前にしましょう
ハードディスクを2台共に取り出して
Ubuntu がインストールされた PC にまず1台接続
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
$ sudo fdisk -l Disk /dev/sdc: 1.8 TiB, 2000398934016 bytes, 3907029168 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 Disklabel type: dos Disk identifier: 0x55e1b199 デバイス 起動 Start 最後から セクタ Size Id タイプ /dev/sdc1 2048 4982527 4980480 2.4G fd Linux raid 自動検出 /dev/sdc2 4982528 9176831 4194304 2G fd Linux raid 自動検出 /dev/sdc3 9437184 3907015007 3897577824 1.8T f W95 拡張領域 (LBA) /dev/sdc5 9453280 3906822239 3897368960 1.8T fd Linux raid 自動検出 $ sudo mdadm --assemble --run /dev/md5 /dev/sdc5 mdadm: /dev/md5 has been started with 1 drive (out of 2). # If busy and skipping: # $ sudo mdadm --assemble --run /dev/md5 /dev/sdc5 # $ sudo mdadm: /dev/sdc5 is busy - skipping # $ sudo mdadm --stop --scan # $ sudo mdadm --assemble --run /dev/md5 /dev/sdc5 $ sudo vgchange -ay /run/lvm/lvmetad.socket: connect failed: そのようなファイルやディレクトリはありません WARNING: Failed to connect to lvmetad. Falling back to internal scanning. 1 logical volume(s) in volume group "vg1000" now active $ sudo mount /dev/vg1000/lv mount/a $ ls mount/a @S2S @download aquota.group photo @SynologyApplicationService @eaDir aquota.user share @appstore @synologydrive homes synoquota.db @database @tmp music video $ sudo umount mount/a $ sudo vgchange -an vg1000 /run/lvm/lvmetad.socket: connect failed: そのようなファイルやディレクトリはありません WARNING: Failed to connect to lvmetad. Falling back to internal scanning. 0 logical volume(s) in volume group "vg1000" now active $ sudo mdadm --misc --stop /dev/md5 mdadm: stopped /dev/md5 $ sudo fdisk -l Disk /dev/sda: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0x000098f3 デバイス 起動 Start 最後から セクタ Size Id タイプ /dev/sdc1 2048 4982527 4980480 2.4G fd Linux raid 自動検出 /dev/sdc2 4982528 9176831 4194304 2G fd Linux raid 自動検出 /dev/sdc3 9437184 3907015007 3897577824 1.8T f W95 拡張領域 (LBA) /dev/sdc5 9453280 3906822239 3897368960 1.8T fd Linux raid 自動検出 |
エラーが報告されていますが、ひとまずは、2台共に保存したデーターを確認できました
そして、ハードディスクを PC から外して、元のように接続して電源を入れると
ビープ音が鳴り止みません…
管理画面にログイン
http://192.168.11.28:5000/
Storage Manager > Storage Pool
Action > Repair
[Next]
[OK]
すると下記のような表示が出てチェックには長い時間を要しました
Repairing (Checking parity consistency 1.28%)
参考:
https://phantom37383.blog.fc2.com/blog-entry-1961.html
https://qiita.com/ngsw/items/f66d71996904c75d66ca
http://pissedoffadmins.com/os/mount-unknown-filesystem-type-lvm2_member.html
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/logical_volume_manager_administration/vg_activate
Windows10で作業
QuickConnect で接続
Package Center を開く
Cloud Station Server をインストールしようとしたところ Drive をアンインストールするよう指示が出た
インストールして共有している share が使えるように設定する
Cloud Station Server [Install]
[Open]
Settings
share [Enabled]
Number of Versions 32
[OK]
Overview
Cloud Station Drive [Download Now]
ダウンロードした Cloud Station Drive をインストール
SSL 証明書に関する警告が出るので
今回は「とにかく処理する」を選ぶ
同期タスク > 作成 > share [OK]
ゴミ箱機能を有効にしていなかった為
次にやるとき忘れそうなのでメモ…無いことを願う
念の為&必ず
NAS から取り出した元のディスクに対しては操作は行わず
ハードディスクの複製を行って複製ディスクに対して作業をすること
準備
NAS からハードディスクを取り出す
対象の NAS IODATA LAN DISK HDL-GX320R
背面のネジを2個外し
天井と底板をスライドして外す
側面の金属板を両側共に外す
ハードディスクの複製
取り出した元ハードディスクと未使用のハードディスクを2台共に PC に接続
Ultimate Boot CD のディスクから起動
メニュー: HDD > Partition Management > GParted
接続しているハードディスクのデバイス番号を確認する
1 |
# fdisk -l |
NAS から取り出した元ハードディスクの複製を作成する
操作を間違えるとディスクの内容が消えてなくなるので注意!
下記では元 /dev/sdb から複製先 /dev/sda へ実行している
1 |
# dd if=/dev/sdb of=/dev/sda bs=512 conv=noerror,sync |
複製が終わったらシャットダウンして 元ハードディスクを外す
所要時間 SATA 接続で 320GB 4.5時間
消してしまったファイルの救出
ここからは複製したディスクに対して作業を行う
救出したファイルを入れる為の USBハードディスクを接続
再度 Ultimate Boot CD のディスクから起動
パティションをマウントして救出したいファイルの有ったはずのパティションを探す
1 2 3 4 |
# mount /dev/md1 /media/md1 # mount /dev/md2 /media/md2 # mount /dev/md5 /media/md5 # mount /dev/md6 /media/md6 *今回はこれ |
PhotoRec を実行
USBメモリーから Desktop にコピーして実行した
1 2 |
# cd /root/Desktop/testdisk-7.0 # ./photorec_static |
目的のパティションを選択
/dev/md6
パティションの種類は ext3/4 を選択
Free を選択して 削除したファイルを救出の対象にする
救出したファイルの保存先を選択
USBハードティスクのマウントポイント /media/sdh1/190321
キー C で開始
所要時間 5時間 パティションサイズ 296.7GB SATA 接続 から USB 接続へ
その他
RAID の md デバイスの解除や設定の方法
1 2 3 4 |
# mdadm --misc --stop /dev/md1 # mdadm --misc --stop /dev/md2 # mdadm --misc --stop /dev/md5 # mdadm --misc --stop /dev/md6 |
1 2 3 4 |
# mdadm --assemble /dev/md1 /dev/sda1 # mdadm --assemble /dev/md2 /dev/sda2 # mdadm --assemble /dev/md5 /dev/sda5 # mdadm --assemble /dev/md6 /dev/sda6 |
参考