add the fields to both table quote
and sales_order
via a setup script in your module.
Then add an event in your module (see below)
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="sales_model_service_quote_submit_before">
<observer name="quote_submit_before" instance="Vendor\Module\Observer\QuoteSubmitBefore" />
</event>
</config>
Finally save the quote data against your order
class QuoteSubmitBefore implements ObserverInterface
{
/**
* @param Observer $observer
* @return void
*/
public function execute(Observer $observer)
{
$quote = $observer->getQuote();
$order = $observer->getOrder();
$order->setData('field_custom', $quote->getData('field_custom'));
}
}