mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-30 00:31:14 +00:00
64564a54d4
Update documentation with focus on enabling openssh in SerenityOS and on the proper usage of sftp client to transfer files.
92 lines
3.6 KiB
Markdown
92 lines
3.6 KiB
Markdown
# Transferring files from QEMU to your host machine
|
|
|
|
## Method 1: WebServer
|
|
Serenity has a built-in web server which extends to your host machine.
|
|
|
|
Open a new terminal and use the following command to start a WebServer instance for the current working directory:
|
|
|
|
```console
|
|
ws .
|
|
```
|
|
|
|
Then we just open `localhost:8000` on our host machine :^)
|
|
|
|
![](WebServer_localhost.png)
|
|
|
|
**NOTE:** Due to the fact that some browsers download unrecognized files as plain text, you may want to use something like `wget` to download the file **as is** instead. Otherwise the file may appear corrupted when the system tries to load it.
|
|
|
|
## Method 2: Mount the disk image
|
|
|
|
Another way is to mount Serenity's `_disk_image` to your host machine by using the following command on *nix systems (or inside WSL):
|
|
|
|
```console
|
|
cd "Build/${SERENITY_ARCH}"
|
|
mkdir mnt
|
|
sudo mount -t ext2 _disk_image mnt
|
|
```
|
|
|
|
## Method 3: Archiving tool with ext2 support
|
|
|
|
Some archiving tools, like [7-Zip](https://www.7-zip.org/), are capable of directly opening ext2 images like Serenity's `_disk_image`. With these, you can open the disk image like any other archive and extract the files you need.
|
|
|
|
For WSL users: If you have the image on your native WSL drive (recommended), this drive can be opened in Explorer by manually opening `\\wsl$` (not visible in the Network tab!) and then the "network share" corresponding to your distro.
|
|
|
|
## Method 4: Enable OpenSSH on host and use sftp client on SerenityOS
|
|
|
|
- Setup OpenSSH server on your host.
|
|
For windows: Google is your friend (https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse)
|
|
For linux: Google is your friend.
|
|
- Ensure that you already have a working SerenityOS working build.
|
|
```console
|
|
$ Meta/serenity.sh rebuild-world
|
|
```
|
|
- To enable OpenSSH package from SerenityOS: (initial directory is SerenityOS ROOT_DIR)
|
|
|
|
```console
|
|
cd Ports
|
|
cd openssh
|
|
./package.sh
|
|
cd ../..
|
|
Meta/serenity.run
|
|
```
|
|
- From within SerenityOS, check that you have a working sftp app:
|
|
|
|
```console
|
|
courage:~ $ sftp
|
|
```
|
|
The expected response will be:
|
|
|
|
```console
|
|
courage:~ $ sftp
|
|
usage: sftp [-46aCfNpqrv] [-B buffer_size] [-b batchfile] [-c cipher]
|
|
[-D sftp_server_path] [-F ssh_config] [-i identity_file]
|
|
[-J destination] [-l limit] [-o ssh_option] [-P port]
|
|
[-R num_requests] [-S program] [-s subsystem | sftp_server]
|
|
destination
|
|
```
|
|
- Assume that you have a working OpenSSH server as mentioned earlier, with an IP address of 192.168.0.11.
|
|
- Assume that you have a valid user on that host with account name user1.
|
|
- Assume that you are currently inside the folder from which you want to transfer the file(s) from.
|
|
- Local
|
|
User: anon
|
|
- Remote
|
|
User: user1
|
|
IP Address: 192.168.0.11
|
|
- Connect to remote server via sftp
|
|
|
|
```console
|
|
courage:~ $ sftp user1@192.168.0.11
|
|
The authenticity of host '(192.168.0.11)' can't be established.
|
|
ECDSA key finger print is SHA256:Iav!m/E0cHJBnzSk0hJEZnBZ2F3LBL4wxhyv4nrfPtU.
|
|
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
|
|
|
|
user1@'s password:
|
|
Connected to 192.168.0.11
|
|
|
|
```
|
|
- By this time, you have successfully connected and logged on to the remote host.
|
|
- You can get more information by typing ` help `.
|
|
- The most often used (simplified) sftp commands are ` ls `, ` cd `, ` put [filename] `, ` get [filename] `, and ` quit `. I said simplified since the actual commands have many more options.
|
|
- Be aware that there will be a time you would think that nothing is happening since the cursor just stares back at you. It is always waiting for your next instruction. Typing ` quit ` or ` bye ` will close the program.
|
|
- Congratulations. Pat yourself at the back.
|