WSL上のUbuntuからWindows側のファイルにアクセスする方法

はじめに_

以下の手順でWindows 10のWSLを使ってUbuntuをインストールしているとする。

Ubuntuの起動_

VcxSrv(XLaunch)の起動_

gnome-terminalを利用するので、まず、VcxSrv(XLaunch)を起動する。

デスクトップにあるアイコン「XLaunch」をクリックする。すると以下のウィンドウが開く。「Multiple windows」を選択し、「次へ」をクリックする。

「Start no client」を選択し、「次へ」をクリックする。

「次へ」をクリックする。

「完了」をクリックする。

デスクトップ右下のアイコンにXLaunchがあればちゃんと起動している。

gnome-terminalの起動_

gnome-terminalの利用で設定したgnome-terminalを起動する。

Ubuntuターミナルを起動し、ターミナル上で以下を起動する。

% gterm &

Windows上のファイルへのアクセス方法_

UbuntuからはアクセスできるWindowsのドライブ(CドライブとかDドライブとか)は以下のコマンドで確認できる。私の環境ではCドライブとDドライブが存在するので以下のように表示される。

% df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs          454G  114G  341G  25% /
none            454G  114G  341G  25% /dev
none            454G  114G  341G  25% /run
none            454G  114G  341G  25% /run/lock
none            454G  114G  341G  25% /run/shm
none            454G  114G  341G  25% /run/user
cgroup          454G  114G  341G  25% /sys/fs/cgroup
C:\             454G  114G  341G  25% /mnt/c
D:\             449G  314G  136G  70% /mnt/d

「C:\」というのがWindowsのCドライブであり、Ubuntuからみると「/mnt/c」というディレクトリとして存在している(アクセスできる)

WindowsのCドライブに移動してみる。

% cd /mnt/c
% ls

cd, ls, mv, cpなどを使ってディレクトリの移動(フォルダの移動)などを行うことができる。Linuxコマンドについて詳しくは以下のページを参照のこと。

課題1のSQLite3データベースファイルのアクセスについて_

LETUSよりreport1.dbと 01_create_table.sql をダウンロードし、以下の手順でUbuntuのディレクトリにコピーする。

  • WindowsのCドライブ上に「TUS_IP1」というフォルダを作成する。フォルダ名は半角文字にすること(右下のIMEのアイコンが「A」になっている状態で入力する。「あ」になっていたら全角文字なので「半角/全角」キーを押し切り替えること)
  • 作成したTUS_IP1にダウンロードしたreport1.dbと 01_create_table.sql を移動させる。
  • Ubuntuを起動する。
  • アクセスできるか確認する。うまくいかない場合はWindows側で上述の手順ができているかを確認する。
    % ls -1 /mnt/c/TUS_IP1 (以下のように表示されたらOK)
    01_create_table.sql
    report1.db
    
  • 作業ディレクトリを作成する。
    % cd 
    % mkdir -p ~/Report1
    % cd ~/Report1
    % cp /mnt/c/TUS_IP1/* ./
    % ls -1 (以下のように表示されたらOK)
    01_create_table.sql
    report1.db
    

% データベース操作に失敗したときのためにデータベースファイルのバックアップを取る

% cp -p report1.db report1.db.org
  • データベースにアクセスしてみる。
    % sqlite3 report1.db 
    SQLite version 3.22.0 2018-01-22 18:45:57
    Enter ".help" for usage hints.
    sqlite> .tables
    assignments    lectures       students     
    departments    registrations  teachers  
    
    sqlite> .schema students
    CREATE TABLE students (
     s_id char(10),
     s_name char(30) NOT NULL,
     d_id  int NOT NULL,
     e_year int NOT NULL,
     PRIMARY KEY (s_id),
     FOREIGN KEY (d_id) REFERENCES departments(d_id),
     CHECK (e_year > 1881)
     );
    
    sqlite> .quit   
    

Ubuntu上で提出用Zipファイルを作成する_

前提条件

  • 解答が書き込まれているWordファイルがWindowsのCドライブ上に「TUS_IP1」というフォルダに20201105_HW1.docxという名前で保存されているとする。
  • 上で示したように作業ディレクトリを作成し、report1.db上で課題の内容を実行しているとする。
  1. 20201105_HW1.docxを作業ディレクトリにコピーする。
    % cd ~/Report1
    % cp /mnt/c/TUS_IP1/20201105_HW1.docx ./
    % ls -1
    01_create_table.sql  
    20201105_HW1.docx    (注:ファイル名が表示されていたらコピー成功)
    report1.db
    report1.db.org
    
  2. zipコマンドがあるか確認し、なければインストールする。
    % which zip
    /usr/bin/zip    (注:このようにインストール先が表示していればOK)
    
    (注:インストール先が表示されていない場合は以下のコマンドでインストール)
    % sudo apt install zip  
    
  3. zipファイルを作成する
    % zip Report1.zip 20201105_HW1.docx report1.db
      adding: 20201105_HW1.docx (deflated 14%)
      adding: report1.db (deflated 98%)
    
    % ls -1
    01_create_table.sql
    20201105_HW1.docx
    Report1.zip      (注:このファイルが作成されていることを確認する)
    report1.db
    report1.db.org
    
    % unzip -l Report1.zip  (注:ZIPファイルの中身を確認する。lengthは人によって違うのでこの例のとおりでなくてもよい)
    Archive:  Report1.zip
      Length      Date    Time    Name
    ---------  ---------- -----   ----
        21854  2020-11-05 14:21   20201105_HW1.docx
        53248  2020-11-05 14:00   report1.db
    ---------                     -------
        75102                     2 files
    
  4. WindowsのCドライブ「TUS_IP1」フォルダにZIPファイルをコピーする
    % cp Report1.zip /mnt/c/TUS_IP1/
    

戻る_